@alisio/core 0.1.0-alpha.20 → 0.1.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/active.d.ts +19 -0
- package/dist/agents/active.js +41 -0
- package/dist/agents/capabilities.d.ts +26 -0
- package/dist/agents/capabilities.js +120 -0
- package/dist/agents/create-agent-skill.d.ts +11 -0
- package/dist/agents/create-agent-skill.js +60 -0
- package/dist/agents/definitions.d.ts +88 -0
- package/dist/agents/definitions.js +404 -0
- package/dist/agents/draft.d.ts +41 -0
- package/dist/agents/draft.js +133 -0
- package/dist/agents/service.d.ts +57 -0
- package/dist/agents/service.js +86 -0
- package/dist/agents/templates.d.ts +8 -0
- package/dist/agents/templates.js +102 -0
- package/dist/application.d.ts +7 -0
- package/dist/application.js +33 -0
- package/dist/commands/catalog.js +13 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +7 -1
- package/package.json +2 -2
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { AgentNotFoundError, AgentScopeStore, agentScopeDir } from "./definitions.js";
|
|
2
|
+
/** Applies the project-over-global precedence and marks both sides of an override. */
|
|
3
|
+
export function mergeAgentScopes(project, global) {
|
|
4
|
+
const projectIds = new Set(project.map((a) => a.id));
|
|
5
|
+
const globalIds = new Set(global.map((a) => a.id));
|
|
6
|
+
const byName = (a, b) => a.name.localeCompare(b.name) || (a.scope === b.scope ? 0 : a.scope === "project" ? -1 : 1);
|
|
7
|
+
return [
|
|
8
|
+
...project.map((a) => (globalIds.has(a.id) ? { ...a, overridesGlobal: true } : a)),
|
|
9
|
+
...global.map((a) => (projectIds.has(a.id) ? { ...a, overriddenByProject: true } : a)),
|
|
10
|
+
].sort(byName);
|
|
11
|
+
}
|
|
12
|
+
export class AgentDefinitionService {
|
|
13
|
+
options;
|
|
14
|
+
stores = {};
|
|
15
|
+
constructor(options) {
|
|
16
|
+
this.options = options;
|
|
17
|
+
this.stores.global = new AgentScopeStore("global", agentScopeDir("global", options), options.now);
|
|
18
|
+
if (options.workspace)
|
|
19
|
+
this.stores.project = new AgentScopeStore("project", agentScopeDir("project", options), options.now);
|
|
20
|
+
}
|
|
21
|
+
/** Scopes available here: `project` only with a workspace. */
|
|
22
|
+
get scopes() {
|
|
23
|
+
return this.stores.project ? ["project", "global"] : ["global"];
|
|
24
|
+
}
|
|
25
|
+
/** The scope new agents default to: the project when a workspace is open. */
|
|
26
|
+
get defaultScope() {
|
|
27
|
+
return this.stores.project ? "project" : "global";
|
|
28
|
+
}
|
|
29
|
+
dir(scope) {
|
|
30
|
+
return this.store(scope).dir;
|
|
31
|
+
}
|
|
32
|
+
store(scope) {
|
|
33
|
+
const store = this.stores[scope];
|
|
34
|
+
if (!store)
|
|
35
|
+
throw new Error(`The ${scope} scope is not available without a workspace`);
|
|
36
|
+
return store;
|
|
37
|
+
}
|
|
38
|
+
async list() {
|
|
39
|
+
const [project, global] = await Promise.all([
|
|
40
|
+
this.stores.project?.list() ?? Promise.resolve([]),
|
|
41
|
+
this.store("global").list(),
|
|
42
|
+
]);
|
|
43
|
+
return mergeAgentScopes(project, global);
|
|
44
|
+
}
|
|
45
|
+
async get(scope, id) {
|
|
46
|
+
const all = await this.list();
|
|
47
|
+
return all.find((a) => a.scope === scope && a.id === id);
|
|
48
|
+
}
|
|
49
|
+
async create(scope, input) {
|
|
50
|
+
const created = await this.store(scope).create(input);
|
|
51
|
+
return this.settle(created.id, scope, created.path, true);
|
|
52
|
+
}
|
|
53
|
+
async update(scope, id, input) {
|
|
54
|
+
const updated = await this.store(scope).update(id, input);
|
|
55
|
+
return this.settle(updated.id, scope, updated.path, true);
|
|
56
|
+
}
|
|
57
|
+
async delete(scope, id) {
|
|
58
|
+
const store = this.store(scope);
|
|
59
|
+
const existing = await store.get(id);
|
|
60
|
+
if (!existing)
|
|
61
|
+
throw new AgentNotFoundError(scope, id);
|
|
62
|
+
const deleted = await store.delete(id);
|
|
63
|
+
const live = (await this.reload()) && !this.isLoaded(existing.path);
|
|
64
|
+
return { result: deleted, live };
|
|
65
|
+
}
|
|
66
|
+
/** Asks the runtime registry to rediscover agent files (false: nothing could reload). */
|
|
67
|
+
async reload() {
|
|
68
|
+
if (!this.options.registry)
|
|
69
|
+
return false;
|
|
70
|
+
try {
|
|
71
|
+
return await this.options.registry.reload();
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Whether the runtime registry has `path` loaded (false when unknown). */
|
|
78
|
+
isLoaded(path) {
|
|
79
|
+
return !!this.options.registry?.loadedPaths()?.includes(path);
|
|
80
|
+
}
|
|
81
|
+
async settle(id, scope, path, mustBeLoaded) {
|
|
82
|
+
const reloaded = await this.reload();
|
|
83
|
+
const result = (await this.get(scope, id));
|
|
84
|
+
return { result, live: reloaded && this.isLoaded(path) === mustBeLoaded };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predefined starting points for new agents, shared by the web Agents window (served by
|
|
3
|
+
* `GET /api/agents/templates`) and the TUI `/agents` manager. A template never chooses a model:
|
|
4
|
+
* the editor starts from the active one.
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentTemplateInfo } from "@alisio/sdk";
|
|
7
|
+
export declare const AGENT_TEMPLATES: readonly AgentTemplateInfo[];
|
|
8
|
+
export declare function agentTemplate(id: string): AgentTemplateInfo | undefined;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
const lines = (...parts) => parts.join("\n");
|
|
2
|
+
export const AGENT_TEMPLATES = [
|
|
3
|
+
{
|
|
4
|
+
id: "code-reviewer",
|
|
5
|
+
name: "Code Reviewer",
|
|
6
|
+
description: "Reads a diff or a set of files and reports bugs, risky changes and missing tests, ordered by severity.",
|
|
7
|
+
instructions: lines("You are a meticulous code reviewer working inside the user's repository.", "", "- Start from the change under review (git diff, the files named by the user) and read the surrounding code before judging it.", "- Report correctness bugs first, then security and data-loss risks, then maintainability. Skip pure style nits unless asked.", "- For every finding give the file and line, why it is a problem, and a concrete fix.", "- Say explicitly when you found nothing serious; never invent issues to fill a report.", "- Do not edit files unless the user asks you to apply a fix."),
|
|
8
|
+
reasoning: { effort: "high", summary: "auto" },
|
|
9
|
+
text: { format: { type: "text" }, verbosity: "medium" },
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
id: "test-writer",
|
|
13
|
+
name: "Test Writer",
|
|
14
|
+
description: "Adds focused tests for existing behavior or a new change, following the project's test framework and conventions.",
|
|
15
|
+
instructions: lines("You write automated tests for this project.", "", "- Detect the test framework, file layout and helpers already in use and follow them.", "- Test observable behavior at module boundaries; avoid snapshots that only restate the implementation.", "- Cover the happy path, edge cases and failure modes. Keep each test small and named after the behavior it proves.", "- Run the tests you add and report the command and its result. If a test fails because of a real bug, say so instead of weakening the assertion."),
|
|
16
|
+
reasoning: { effort: "medium", summary: "auto" },
|
|
17
|
+
text: { format: { type: "text" }, verbosity: "low" },
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: "refactoring-assistant",
|
|
21
|
+
name: "Refactoring Assistant",
|
|
22
|
+
description: "Improves the structure of existing code in small, behavior-preserving steps verified by the test suite.",
|
|
23
|
+
instructions: lines("You refactor code without changing its behavior.", "", "- Before editing, explain the smell you are addressing and the target shape in a few lines.", "- Work in small steps; run the relevant tests after each meaningful step.", "- Keep public interfaces stable unless the user agrees to change them, and update every caller when they do change.", "- Do not mix refactoring with feature work or formatting churn.", "- Finish with a short summary of what moved where and how it was verified."),
|
|
24
|
+
reasoning: { effort: "high", summary: "auto" },
|
|
25
|
+
text: { format: { type: "text" }, verbosity: "medium" },
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: "documentation-writer",
|
|
29
|
+
name: "Documentation Writer",
|
|
30
|
+
description: "Writes and updates READMEs, guides and API docs that match the code as it is today.",
|
|
31
|
+
instructions: lines("You write clear technical documentation for this project.", "", "- Read the code first; document what it actually does, not what it was meant to do.", "- Lead with the task the reader wants to accomplish, then details. Prefer short sections, lists and runnable examples.", "- Keep commands, flags and configuration keys exact, and keep every translated copy of a page in sync.", "- Flag behavior that looks wrong instead of documenting it as intended."),
|
|
32
|
+
reasoning: { effort: "low", summary: "auto" },
|
|
33
|
+
text: { format: { type: "text" }, verbosity: "medium" },
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: "security-auditor",
|
|
37
|
+
name: "Security Auditor",
|
|
38
|
+
description: "Looks for vulnerabilities such as injection, secret leaks, unsafe defaults and weak access control, with evidence.",
|
|
39
|
+
instructions: lines("You audit code for security problems.", "", "- Trace untrusted input from where it enters (HTTP, CLI arguments, files, environment) to where it is used.", "- Look for injection, path traversal, unsafe deserialization, missing authorization, secrets in code or logs, and insecure defaults.", "- Rate every finding (critical, high, medium, low) and include the exploit path, the affected code and a fix.", "- Distinguish confirmed issues from hypotheses. Never run destructive commands or exfiltrate data while testing."),
|
|
40
|
+
reasoning: { effort: "high", summary: "detailed" },
|
|
41
|
+
text: { format: { type: "text" }, verbosity: "high" },
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "debugger",
|
|
45
|
+
name: "Bug Triage & Debugger",
|
|
46
|
+
description: "Reproduces a reported failure, isolates the root cause and proposes the smallest safe fix.",
|
|
47
|
+
instructions: lines("You debug problems reported by the user.", "", "1. Restate the symptom and gather facts: error output, logs, recent changes, versions.", "2. Reproduce it with the smallest possible command or test before changing anything.", "3. Form hypotheses and test them one at a time; record what each experiment ruled out.", "4. Fix the root cause, not the symptom, and add a regression test when the project has tests.", "", "If you cannot reproduce the issue, say what you tried and what information would unblock you."),
|
|
48
|
+
reasoning: { effort: "high", summary: "auto" },
|
|
49
|
+
text: { format: { type: "text" }, verbosity: "medium" },
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: "migration-assistant",
|
|
53
|
+
name: "Migration Assistant",
|
|
54
|
+
description: "Plans and carries out upgrades of frameworks, libraries or APIs across the codebase, one verified batch at a time.",
|
|
55
|
+
instructions: lines("You migrate this codebase from one version, library or API to another.", "", "- Read the official migration notes for the target version when they are available and list the breaking changes that apply here.", "- Inventory every affected call site before editing, then migrate in batches that keep the build green.", "- Run the type checker and tests after each batch and report anything you had to leave behind.", "- Never silence errors with casts or disabled checks just to finish a batch."),
|
|
56
|
+
reasoning: { effort: "high", summary: "auto" },
|
|
57
|
+
text: { format: { type: "text" }, verbosity: "medium" },
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "research-agent",
|
|
61
|
+
name: "Research Agent",
|
|
62
|
+
description: "Investigates a question across the web, documentation and local data, and returns a sourced, structured report.",
|
|
63
|
+
instructions: lines("You are a research assistant.", "", "- Clarify the question and the decision it supports before searching.", "- Gather evidence from several independent sources; prefer primary documentation and data over summaries.", "- Organize the answer as: summary, key findings, evidence (with links or file paths), open questions.", "- Mark uncertainty explicitly and never present a guess as a sourced fact."),
|
|
64
|
+
reasoning: { effort: "medium", summary: "concise" },
|
|
65
|
+
text: { format: { type: "text" }, verbosity: "high" },
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: "customer-support-agent",
|
|
69
|
+
name: "Customer Support Agent",
|
|
70
|
+
description: "Answers customer requests politely, checks the account details it is given and hands off what it cannot resolve.",
|
|
71
|
+
instructions: lines("You help customers resolve their requests.", "", "- Be warm, concise and specific. Confirm what the customer is asking before acting.", "- Use only the account information and tools you are given; never guess balances, orders or personal data.", "- Follow the documented policies. When a request needs a human (refunds above policy, legal or safety issues, angry escalations), say so and summarize the case for the hand-off.", "- End each reply with the next step for the customer."),
|
|
72
|
+
reasoning: { effort: "low", summary: "none" },
|
|
73
|
+
text: { format: { type: "text" }, verbosity: "low" },
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: "devops-assistant",
|
|
77
|
+
name: "DevOps Assistant",
|
|
78
|
+
description: "Helps with deployments, CI pipelines, incident response and infrastructure troubleshooting.",
|
|
79
|
+
instructions: lines("You are a DevOps and site-reliability assistant.", "", "- During an incident, focus on impact and mitigation first, then root cause.", "- Read configuration, pipeline definitions and logs before proposing changes; quote the lines that matter.", "- Prefer reversible, incremental changes. Spell out the exact commands and how to roll them back.", "- Ask before running anything that touches production, deletes resources or rotates credentials."),
|
|
80
|
+
reasoning: { effort: "medium", summary: "auto" },
|
|
81
|
+
text: { format: { type: "text" }, verbosity: "medium" },
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: "meeting-assistant",
|
|
85
|
+
name: "Meeting Assistant",
|
|
86
|
+
description: "Turns meeting transcripts or notes into decisions, action items with owners and a short summary.",
|
|
87
|
+
instructions: lines("You process meeting transcripts and notes.", "", "Produce, in this order:", "1. A summary of three to five sentences.", "2. Decisions made.", "3. Action items as `owner — task — due date` (write `unassigned` or `no date` when missing).", "4. Open questions and risks.", "", "Use only what the transcript says; do not invent owners or dates."),
|
|
88
|
+
reasoning: { effort: "low", summary: "none" },
|
|
89
|
+
text: { format: { type: "text" }, verbosity: "low" },
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: "analytics-agent",
|
|
93
|
+
name: "Analytics Agent",
|
|
94
|
+
description: "Queries data, builds reports and explains trends and anomalies in plain language.",
|
|
95
|
+
instructions: lines("You are a data analyst.", "", "- Confirm the metric definitions, filters and time range before querying.", "- Show the query or computation you used so the result can be reproduced.", "- Explain what changed, by how much, and the most likely drivers; separate correlation from causation.", "- Call out data quality problems (gaps, duplicates, outliers) instead of hiding them."),
|
|
96
|
+
reasoning: { effort: "medium", summary: "auto" },
|
|
97
|
+
text: { format: { type: "text" }, verbosity: "medium" },
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
export function agentTemplate(id) {
|
|
101
|
+
return AGENT_TEMPLATES.find((template) => template.id === id);
|
|
102
|
+
}
|
package/dist/application.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AvailableProviderModel, ModelInfo, ModelProvider, Plugin, PluginCategory, ProviderConfigurationValue, ResolvedProviderModel, RunEvent } from "@alisio/sdk";
|
|
2
|
+
import { AgentDefinitionService } from "./agents/service.ts";
|
|
2
3
|
import { type SettableSettingKey } from "./config.ts";
|
|
3
4
|
import type { ApprovalHandler } from "./core/contracts.ts";
|
|
4
5
|
import { ToolRegistry } from "./core/registry.ts";
|
|
@@ -212,6 +213,12 @@ export declare function createApplication(options?: AppOptions): Promise<{
|
|
|
212
213
|
runner: AgentRunner;
|
|
213
214
|
/** `/btw` side questions: tool-less answers about a session outside its conversation. */
|
|
214
215
|
sideQuestions: SideQuestions;
|
|
216
|
+
/**
|
|
217
|
+
* User agent files (`<workspace>/.agents/agents`, `~/.agents/agents`). Every write asks the
|
|
218
|
+
* subagents plugin (the runtime agent registry) to rediscover through its `/agents reload`
|
|
219
|
+
* verb and reports whether the saved file is loaded; without the plugin nothing reloads.
|
|
220
|
+
*/
|
|
221
|
+
agentDefinitions: AgentDefinitionService;
|
|
215
222
|
herdr: HerdrBridge;
|
|
216
223
|
contextWindow: (model: string) => number | undefined;
|
|
217
224
|
/** Effective context budget + compaction point shared by the runner and the TUI bar. */
|
package/dist/application.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { realpath } from "node:fs/promises";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
import { AgentDefinitionService } from "./agents/service.js";
|
|
4
5
|
import { configFile, configHome, loadConfigWithProvenance, overridesSavedProviderProfile, setConfigValue, setGlobalMcpAllow, setMcpServerEnabled, setProjectPluginEnabled, setProjectSkillEnabled, stateHome, } from "./config.js";
|
|
5
6
|
import { completeText } from "./core/compaction.js";
|
|
6
7
|
import { ToolRegistry } from "./core/registry.js";
|
|
@@ -862,6 +863,38 @@ export async function createApplication(options = {}) {
|
|
|
862
863
|
runner,
|
|
863
864
|
/** `/btw` side questions: tool-less answers about a session outside its conversation. */
|
|
864
865
|
sideQuestions: new SideQuestions({ runner, state: store }),
|
|
866
|
+
/**
|
|
867
|
+
* User agent files (`<workspace>/.agents/agents`, `~/.agents/agents`). Every write asks the
|
|
868
|
+
* subagents plugin (the runtime agent registry) to rediscover through its `/agents reload`
|
|
869
|
+
* verb and reports whether the saved file is loaded; without the plugin nothing reloads.
|
|
870
|
+
*/
|
|
871
|
+
agentDefinitions: new AgentDefinitionService({
|
|
872
|
+
workspace,
|
|
873
|
+
home: homedir(),
|
|
874
|
+
registry: {
|
|
875
|
+
async reload() {
|
|
876
|
+
const handler = plugins.commands.get("agents");
|
|
877
|
+
if (!handler)
|
|
878
|
+
return false;
|
|
879
|
+
await handler("reload");
|
|
880
|
+
return Array.isArray(plugins.pluginState("subagents", "definitions"));
|
|
881
|
+
},
|
|
882
|
+
loadedPaths() {
|
|
883
|
+
let state;
|
|
884
|
+
try {
|
|
885
|
+
state = plugins.pluginState("subagents", "definitions");
|
|
886
|
+
}
|
|
887
|
+
catch {
|
|
888
|
+
return undefined;
|
|
889
|
+
}
|
|
890
|
+
if (!Array.isArray(state))
|
|
891
|
+
return undefined;
|
|
892
|
+
return state
|
|
893
|
+
.map((entry) => entry?.path)
|
|
894
|
+
.filter((path) => typeof path === "string");
|
|
895
|
+
},
|
|
896
|
+
},
|
|
897
|
+
}),
|
|
865
898
|
herdr,
|
|
866
899
|
contextWindow,
|
|
867
900
|
/** Effective context budget + compaction point shared by the runner and the TUI bar. */
|
package/dist/commands/catalog.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { agentCatalogFromState, resolveActiveAgent } from "../agents/active.js";
|
|
1
|
+
import { agentCatalogFromState, agentCommandDescriptors, resolveActiveAgent, } from "../agents/active.js";
|
|
2
2
|
import { formatSideQuestion, SIDE_QUESTION_DESCRIPTION, SIDE_QUESTION_USAGE, } from "../sessions/side-questions.js";
|
|
3
3
|
import { BUILTIN_COMMANDS } from "./builtins.js";
|
|
4
4
|
export { BUILTIN_COMMANDS };
|
|
@@ -259,6 +259,18 @@ export class CommandCatalog {
|
|
|
259
259
|
surfaces: [...ALL],
|
|
260
260
|
execution: "surface",
|
|
261
261
|
});
|
|
262
|
+
// `/agent:<id>` activates a loaded agent (built-ins, project and global agent files).
|
|
263
|
+
if (host?.plugins) {
|
|
264
|
+
let state;
|
|
265
|
+
try {
|
|
266
|
+
state = host.plugins.pluginState?.("subagents", "mainAgents");
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
/* agent contributions are best-effort */
|
|
270
|
+
}
|
|
271
|
+
for (const descriptor of agentCommandDescriptors(agentCatalogFromState(state), taken))
|
|
272
|
+
push(descriptor);
|
|
273
|
+
}
|
|
262
274
|
return surface ? out.filter((c) => c.surfaces.includes(surface)) : out;
|
|
263
275
|
}
|
|
264
276
|
/** A command by name or alias (built-in names and aliases are case-insensitive). */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/** @alisio/core public API: embed the Alisio agent programmatically. */
|
|
2
2
|
export * from "@alisio/sdk";
|
|
3
|
-
export { type ActiveAgent, type AgentPickerItem, activeAgentCatalog, agentCatalogFromState, agentPickerItems, agentRunOptions, BUILTIN_AGENTS, DEFAULT_AGENT_ID, type MainCapableAgentRecord, mainAgentFromRecord, resolveActiveAgent, } from "./agents/active.ts";
|
|
3
|
+
export { type ActiveAgent, AGENT_COMMAND_PREFIX, type AgentPickerItem, activeAgentCatalog, agentCatalogFromState, agentCommandDescriptors, agentCommandName, agentIdFromCommand, agentPickerItems, agentRunOptions, BUILTIN_AGENTS, DEFAULT_AGENT_ID, type MainCapableAgentRecord, mainAgentFromRecord, resolveActiveAgent, } from "./agents/active.ts";
|
|
4
|
+
export { agentModelCapabilities, agentModelLabels, agentModelOptions, DEFAULT_EFFORT_LEVELS, fitAgentSettings, } from "./agents/capabilities.ts";
|
|
5
|
+
export { AGENT_AUTHORING_SKILL_NAMES, CREATE_AGENT_SKILL, } from "./agents/create-agent-skill.ts";
|
|
6
|
+
export { AGENT_ID_PATTERN, AGENT_LIMITS, AGENT_REASONING_SUMMARIES, AGENT_TEXT_FORMATS, AGENT_VERBOSITIES, type AgentFieldError, AgentNotFoundError, AgentScopeStore, agentIdFromName, agentScopeDir, parseAgentFile, RESERVED_AGENT_IDS, slugify, validateAgentDefinitionInput, } from "./agents/definitions.ts";
|
|
7
|
+
export { AGENT_DRAFT_INSTRUCTIONS, AGENT_DRAFT_MAX_DESCRIPTION, type AgentAuthoringGuidance, agentAuthoringGuidance, agentDraftRequest, generateAgentDraft, parseAgentDraft, } from "./agents/draft.ts";
|
|
8
|
+
export { type AgentChange, AgentDefinitionService, type AgentDefinitionServiceOptions, type AgentRegistry, mergeAgentScopes, } from "./agents/service.ts";
|
|
9
|
+
export { AGENT_TEMPLATES, agentTemplate } from "./agents/templates.ts";
|
|
4
10
|
export { type AppOptions, type BuiltinContext, type BuiltinPlugin, createApplication, enabledBuiltins, type PluginCatalogEntry, type PluginCatalogStatus, } from "./application.ts";
|
|
5
11
|
export { BUILTIN_COMMANDS, type BuiltinCommand, CommandCatalog, type CommandExecutionContext, type CommandHost, type CommandResult, type CommandSurface, } from "./commands/catalog.ts";
|
|
6
12
|
export { type Config, type ConfigLoadResult, type ConfigProvenance, configFile, configHome, configSchema, isSettableSettingKey, type LoadedConfig, loadConfig, loadConfigWithProvenance, type McpServerSource, overridesSavedProviderProfile, type SettableSettingInfo, type SettableSettingKey, setConfigValue, setGlobalMcpAllow, setMcpServerEnabled, setProjectPluginEnabled, setProjectSkillEnabled, settableSettings, stateHome, } from "./config.ts";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/** @alisio/core public API: embed the Alisio agent programmatically. */
|
|
2
2
|
export * from "@alisio/sdk";
|
|
3
|
-
export { activeAgentCatalog, agentCatalogFromState, agentPickerItems, agentRunOptions, BUILTIN_AGENTS, DEFAULT_AGENT_ID, mainAgentFromRecord, resolveActiveAgent, } from "./agents/active.js";
|
|
3
|
+
export { AGENT_COMMAND_PREFIX, activeAgentCatalog, agentCatalogFromState, agentCommandDescriptors, agentCommandName, agentIdFromCommand, agentPickerItems, agentRunOptions, BUILTIN_AGENTS, DEFAULT_AGENT_ID, mainAgentFromRecord, resolveActiveAgent, } from "./agents/active.js";
|
|
4
|
+
export { agentModelCapabilities, agentModelLabels, agentModelOptions, DEFAULT_EFFORT_LEVELS, fitAgentSettings, } from "./agents/capabilities.js";
|
|
5
|
+
export { AGENT_AUTHORING_SKILL_NAMES, CREATE_AGENT_SKILL, } from "./agents/create-agent-skill.js";
|
|
6
|
+
export { AGENT_ID_PATTERN, AGENT_LIMITS, AGENT_REASONING_SUMMARIES, AGENT_TEXT_FORMATS, AGENT_VERBOSITIES, AgentNotFoundError, AgentScopeStore, agentIdFromName, agentScopeDir, parseAgentFile, RESERVED_AGENT_IDS, slugify, validateAgentDefinitionInput, } from "./agents/definitions.js";
|
|
7
|
+
export { AGENT_DRAFT_INSTRUCTIONS, AGENT_DRAFT_MAX_DESCRIPTION, agentAuthoringGuidance, agentDraftRequest, generateAgentDraft, parseAgentDraft, } from "./agents/draft.js";
|
|
8
|
+
export { AgentDefinitionService, mergeAgentScopes, } from "./agents/service.js";
|
|
9
|
+
export { AGENT_TEMPLATES, agentTemplate } from "./agents/templates.js";
|
|
4
10
|
export { createApplication, enabledBuiltins, } from "./application.js";
|
|
5
11
|
export { BUILTIN_COMMANDS, CommandCatalog, } from "./commands/catalog.js";
|
|
6
12
|
export { configFile, configHome, configSchema, isSettableSettingKey, loadConfig, loadConfigWithProvenance, overridesSavedProviderProfile, setConfigValue, setGlobalMcpAllow, setMcpServerEnabled, setProjectPluginEnabled, setProjectSkillEnabled, settableSettings, stateHome, } from "./config.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alisio/core",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.21",
|
|
4
4
|
"description": "Embeddable provider-agnostic Alisio agent core: tool loop, context compaction, local tools, MCP, plugin host and SQLite session store. Runs on Node >=22.16 and Bun.",
|
|
5
5
|
"author": "Gustavo Gutiérrez",
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"node": ">=22.16"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@alisio/sdk": "0.1.0-alpha.
|
|
44
|
+
"@alisio/sdk": "0.1.0-alpha.17",
|
|
45
45
|
"@mixmark-io/domino": "2.2.0",
|
|
46
46
|
"@modelcontextprotocol/client": "2.1.0",
|
|
47
47
|
"ajv": "8.20.0",
|