Compare commits

..
Author SHA1 Message Date
Roman Rizzi 5bfe231486 REFACTOR: Move personas into it's own module. 2025-03-27 15:10:53 -03:00
639 changed files with 845651 additions and 3167828 deletions
-3
View File
@@ -1,6 +1,3 @@
< 3.5.0.beta7-dev: cd14b0c0bee0cf63c59b64b6f7213e31a37f11a7
< 3.5.0.beta6-dev: 3e74eea1e5e3143888d67a8d8a11206df214dc24
< 3.5.0.beta3-dev: 09a68414804a1447f52e5d60691ba59742cda9ec
< 3.5.0.beta2-dev: de8624416a15b3d8e7ad350b083cc1420451ccec
< 3.5.0.beta1-dev: bdef136080074a993e7c4f5ca562edc31a8ba756
< 3.4.0.beta4-dev: a53719ab8eb071459f215227421b3ea4987e5f87
-3
View File
@@ -5,6 +5,3 @@ node_modules
evals/log
evals/cases
config/eval-llms.local.yml
# this gets rid of search results from ag, ripgrep, etc
tokenizers/
public/ai-share/highlight.min.js
+20 -22
View File
@@ -14,31 +14,30 @@ GEM
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
uri (>= 0.13.1)
ast (2.4.3)
base64 (0.3.0)
benchmark (0.4.1)
bigdecimal (3.2.2)
ast (2.4.2)
base64 (0.2.0)
benchmark (0.4.0)
bigdecimal (3.1.9)
concurrent-ruby (1.3.5)
connection_pool (2.5.3)
drb (2.2.3)
connection_pool (2.5.0)
drb (2.2.1)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
json (2.12.2)
language_server-protocol (3.17.0.5)
json (2.10.2)
language_server-protocol (3.17.0.4)
lint_roller (1.1.0)
logger (1.7.0)
logger (1.6.6)
minitest (5.25.5)
parallel (1.27.0)
parser (3.3.8.0)
parallel (1.26.3)
parser (3.3.7.1)
ast (~> 2.4.1)
racc
prettier_print (1.2.1)
prism (1.4.0)
racc (1.8.1)
rack (3.1.16)
rack (3.1.12)
rainbow (3.1.1)
regexp_parser (2.10.0)
rubocop (1.77.0)
rubocop (1.74.0)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
@@ -46,12 +45,11 @@ GEM
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.45.1, < 2.0)
rubocop-ast (>= 1.38.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.45.1)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-ast (1.38.1)
parser (>= 3.3.1.0)
rubocop-capybara (2.22.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
@@ -67,13 +65,13 @@ GEM
rubocop-factory_bot (2.27.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rails (2.32.0)
rubocop-rails (2.30.3)
activesupport (>= 4.2.0)
lint_roller (~> 1.1)
rack (>= 1.1)
rubocop (>= 1.75.0, < 2.0)
rubocop-ast (>= 1.44.0, < 2.0)
rubocop-rspec (3.6.0)
rubocop (>= 1.72.1, < 2.0)
rubocop-ast (>= 1.38.0, < 2.0)
rubocop-rspec (3.5.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rspec_rails (2.31.0)
@@ -1,27 +0,0 @@
import { ajax } from "discourse/lib/ajax";
import DiscourseRoute from "discourse/routes/discourse";
import SiteSetting from "admin/models/site-setting";
export default class AdminPluginsShowDiscourseAiFeaturesEdit extends DiscourseRoute {
async model(params) {
const allFeatures = this.modelFor(
"adminPlugins.show.discourse-ai-features"
);
const id = parseInt(params.id, 10);
const currentFeature = allFeatures.find((feature) => feature.id === id);
const { site_settings } = await ajax("/admin/config/site_settings.json", {
data: {
filter_area: `ai-features/${currentFeature.module_name}`,
plugin: "discourse-ai",
category: "discourse_ai",
},
});
currentFeature.feature_settings = site_settings.map((setting) =>
SiteSetting.create(setting)
);
return currentFeature;
}
}
@@ -1,10 +0,0 @@
import { service } from "@ember/service";
import DiscourseRoute from "discourse/routes/discourse";
export default class AdminPluginsShowDiscourseAiFeatures extends DiscourseRoute {
@service store;
async model() {
return this.store.findAll("ai-feature");
}
}
@@ -2,17 +2,8 @@ import DiscourseRoute from "discourse/routes/discourse";
export default class AdminPluginsShowDiscourseAiLlmsEdit extends DiscourseRoute {
async model(params) {
const id = parseInt(params.id, 10);
if (id < 0) {
// You shouldn't be able to access the edit page
// if the model is seeded
return this.router.transitionTo(
"adminPlugins.show.discourse-ai-llms.index"
);
}
const allLlms = this.modelFor("adminPlugins.show.discourse-ai-llms");
const id = parseInt(params.id, 10);
const record = allLlms.findBy("id", id);
record.provider_params = record.provider_params || {};
return record;
@@ -1,10 +1,6 @@
import DiscourseRoute from "discourse/routes/discourse";
export default class DiscourseAiToolsNewRoute extends DiscourseRoute {
beforeModel(transition) {
this.preset = transition.to.queryParams.presetId || "empty_tool";
}
async model() {
return this.store.createRecord("ai-tool");
}
@@ -12,10 +8,10 @@ export default class DiscourseAiToolsNewRoute extends DiscourseRoute {
setupController(controller) {
super.setupController(...arguments);
const toolsModel = this.modelFor("adminPlugins.show.discourse-ai-tools");
controller.set("allTools", toolsModel);
controller.set("presets", toolsModel.resultSetMeta.presets);
controller.set("llms", toolsModel.resultSetMeta.llms);
controller.set("settings", toolsModel.resultSetMeta.settings);
controller.set("selectedPreset", this.preset);
}
}
@@ -1,11 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiEmbeddingsListEditor from "../../../../../discourse/components/ai-embeddings-list-editor";
export default RouteTemplate(
<template>
<AiEmbeddingsListEditor
@embeddings={{@controller.allEmbeddings}}
@currentEmbedding={{@controller.model}}
/>
</template>
);
@@ -0,0 +1,4 @@
<AiEmbeddingsListEditor
@embeddings={{this.allEmbeddings}}
@currentEmbedding={{this.model}}
/>
@@ -1,8 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiEmbeddingsListEditor from "../../../../../discourse/components/ai-embeddings-list-editor";
export default RouteTemplate(
<template>
<AiEmbeddingsListEditor @embeddings={{@controller.model}} />
</template>
);
@@ -0,0 +1 @@
<AiEmbeddingsListEditor @embeddings={{this.model}} />
@@ -1,11 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiEmbeddingsListEditor from "../../../../../discourse/components/ai-embeddings-list-editor";
export default RouteTemplate(
<template>
<AiEmbeddingsListEditor
@embeddings={{@controller.allEmbeddings}}
@currentEmbedding={{@controller.model}}
/>
</template>
);
@@ -0,0 +1,4 @@
<AiEmbeddingsListEditor
@embeddings={{this.allEmbeddings}}
@currentEmbedding={{this.model}}
/>
@@ -1,24 +0,0 @@
import RouteTemplate from "ember-route-template";
import BackButton from "discourse/components/back-button";
import SiteSettingComponent from "admin/components/site-setting";
export default RouteTemplate(
<template>
<BackButton
@route="adminPlugins.show.discourse-ai-features"
@label="discourse_ai.features.back"
/>
<section class="ai-feature-editor__header">
<h2>{{@model.name}}</h2>
<p>{{@model.description}}</p>
</section>
<section class="ai-feature-editor">
{{#each @model.feature_settings as |setting|}}
<div>
<SiteSettingComponent @setting={{setting}} />
</div>
{{/each}}
</section>
</template>
);
@@ -1,6 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiFeatures from "../../../../../discourse/components/ai-features";
export default RouteTemplate(
<template><AiFeatures @features={{@controller.model}} /></template>
);
@@ -1,11 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiLlmsListEditor from "../../../../../discourse/components/ai-llms-list-editor";
export default RouteTemplate(
<template>
<AiLlmsListEditor
@llms={{@controller.allLlms}}
@currentLlm={{@controller.model}}
/>
</template>
);
@@ -0,0 +1 @@
<AiLlmsListEditor @llms={{this.allLlms}} @currentLlm={{this.model}} />
@@ -1,6 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiLlmsListEditor from "../../../../../discourse/components/ai-llms-list-editor";
export default RouteTemplate(
<template><AiLlmsListEditor @llms={{@controller.model}} /></template>
);
@@ -0,0 +1 @@
<AiLlmsListEditor @llms={{this.model}} />
@@ -1,12 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiLlmsListEditor from "../../../../../discourse/components/ai-llms-list-editor";
export default RouteTemplate(
<template>
<AiLlmsListEditor
@llms={{@controller.allLlms}}
@currentLlm={{@controller.model}}
@llmTemplate={{@controller.llmTemplate}}
/>
</template>
);
@@ -0,0 +1,5 @@
<AiLlmsListEditor
@llms={{this.allLlms}}
@currentLlm={{this.model}}
@llmTemplate={{this.llmTemplate}}
/>
@@ -1,11 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiPersonaListEditor from "../../../../../discourse/components/ai-persona-list-editor";
export default RouteTemplate(
<template>
<AiPersonaListEditor
@personas={{@controller.allPersonas}}
@currentPersona={{@controller.model}}
/>
</template>
);
@@ -0,0 +1,4 @@
<AiPersonaListEditor
@personas={{this.allPersonas}}
@currentPersona={{this.model}}
/>
@@ -1,6 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiPersonaListEditor from "../../../../../discourse/components/ai-persona-list-editor";
export default RouteTemplate(
<template><AiPersonaListEditor @personas={{@controller.model}} /></template>
);
@@ -0,0 +1 @@
<AiPersonaListEditor @personas={{this.model}} />
@@ -1,11 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiPersonaListEditor from "../../../../../discourse/components/ai-persona-list-editor";
export default RouteTemplate(
<template>
<AiPersonaListEditor
@personas={{@controller.allPersonas}}
@currentPersona={{@controller.model}}
/>
</template>
);
@@ -0,0 +1,4 @@
<AiPersonaListEditor
@personas={{this.allPersonas}}
@currentPersona={{this.model}}
/>
@@ -1,6 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiSpam from "../../../../discourse/components/ai-spam";
export default RouteTemplate(
<template><AiSpam @model={{@controller.model}} /></template>
);
@@ -0,0 +1 @@
<AiSpam @model={{this.model}} />
@@ -1,16 +0,0 @@
import RouteTemplate from "ember-route-template";
import AiToolEditor from "../../../../../discourse/components/ai-tool-editor";
export default RouteTemplate(
<template>
<section class="ai-persona-tool-editor__current admin-detail pull-left">
<AiToolEditor
@tools={{@controller.allTools}}
@model={{@controller.model}}
@presets={{@controller.presets}}
@llms={{@controller.llms}}
@settings={{@controller.settings}}
/>
</section>
</template>
);

Some files were not shown because too many files have changed in this diff Show More