@stratusagent/core 0.4.0 → 0.7.0
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/index.d.ts +318 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +440 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -37,8 +37,20 @@ export interface AvatarTheme {
|
|
|
37
37
|
*/
|
|
38
38
|
export interface AgentDefinition extends AgentDescriptor {
|
|
39
39
|
avatar?: AvatarTheme;
|
|
40
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* What this agent may call: exact tool names (`fs.read`), toolset globs
|
|
42
|
+
* (`fs.*`), or `*`. Omitted = every registered tool. See
|
|
43
|
+
* `matchesToolAllowlist`, which is the only reading of these entries.
|
|
44
|
+
*/
|
|
41
45
|
tools?: string[];
|
|
46
|
+
/**
|
|
47
|
+
* Skills this agent may load: exact ids (`code-review`), a package's
|
|
48
|
+
* qualified ids (`stratus-plugin-github:*`), or `*`. Omitted = none,
|
|
49
|
+
* matching `credentials` rather than `tools` — a skill silently changing
|
|
50
|
+
* how an agent behaves is worse than an agent that has to be told. See
|
|
51
|
+
* `matchesSkillAllowlist`, which is the only reading of these entries.
|
|
52
|
+
*/
|
|
53
|
+
skills?: string[];
|
|
42
54
|
/** Credential names this agent may resolve. Omitted = none. */
|
|
43
55
|
credentials?: string[];
|
|
44
56
|
}
|
|
@@ -53,6 +65,15 @@ export declare class AgentRegistry {
|
|
|
53
65
|
* scopes.
|
|
54
66
|
*/
|
|
55
67
|
getByName(name: string): AgentDefinition | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Forget an agent, reporting whether one was registered under that id.
|
|
70
|
+
*
|
|
71
|
+
* A roster reload has to be able to *remove*. Re-registering the survivors
|
|
72
|
+
* over a map nothing ever deletes from leaves an agent whose soul file was
|
|
73
|
+
* deleted addressable — by id, and from every channel — for the rest of the
|
|
74
|
+
* daemon's life.
|
|
75
|
+
*/
|
|
76
|
+
unregister(id: string): boolean;
|
|
56
77
|
require(id: string): AgentDefinition;
|
|
57
78
|
list(): AgentDefinition[];
|
|
58
79
|
}
|
|
@@ -160,6 +181,84 @@ export type ToolRisk = 'safe' | 'gated' | 'dangerous';
|
|
|
160
181
|
export declare const DEFAULT_TOOL_RISK: ToolRisk;
|
|
161
182
|
/** The declared risk, or the fail-closed default for a tool that omits it. */
|
|
162
183
|
export declare const resolveToolRisk: (tool: Pick<Tool, "risk"> | undefined) => ToolRisk;
|
|
184
|
+
/**
|
|
185
|
+
* Whether `risk` is at least as risky as `floor`. The ordering lives here,
|
|
186
|
+
* with the type, because two things compare against it — the permission
|
|
187
|
+
* engine deciding what needs a human, and the plugin loader holding a
|
|
188
|
+
* third-party tool to a floor — and a second ordering is a second answer
|
|
189
|
+
* to "is `safe` above or below `gated`".
|
|
190
|
+
*/
|
|
191
|
+
export declare const atLeastAsRisky: (risk: ToolRisk, floor: ToolRisk) => boolean;
|
|
192
|
+
/** `risk`, raised to `floor` when it sits below it. Never lowers anything. */
|
|
193
|
+
export declare const raiseRiskTo: (risk: ToolRisk, floor: ToolRisk) => ToolRisk;
|
|
194
|
+
/**
|
|
195
|
+
* Whether an agent's `tools:` allowlist permits a tool name.
|
|
196
|
+
*
|
|
197
|
+
* Two entry forms, and the glob is why this is a function rather than a
|
|
198
|
+
* `Set.has`: a toolset is the unit an operator thinks in — an agent is
|
|
199
|
+
* given "the filesystem", not four names that must be edited whenever the
|
|
200
|
+
* pack gains a fifth — so `fs.*` selects the whole namespace.
|
|
201
|
+
*
|
|
202
|
+
* - `fs.read` — that tool, exactly.
|
|
203
|
+
* - `fs.*` — every tool in the `fs` toolset, nested names included, so
|
|
204
|
+
* `mcp.*` covers `mcp.linear.create_issue` (which is the only form the
|
|
205
|
+
* MCP bridge can be granted, since its names exist only at runtime).
|
|
206
|
+
*
|
|
207
|
+
* The prefix carries its dot deliberately: `fs.*` matches `fs.read` and
|
|
208
|
+
* does **not** match `fsx.read`, so a namespace cannot be widened by a
|
|
209
|
+
* package that named itself to look like a prefix of another. A bare `*`
|
|
210
|
+
* is every registered tool, which is the same thing as omitting the
|
|
211
|
+
* allowlist and is accepted because a soul saying so explicitly is
|
|
212
|
+
* clearer than one saying nothing.
|
|
213
|
+
*
|
|
214
|
+
* Exported because both gates use it — the descriptors a provider is shown
|
|
215
|
+
* and the check before execution — and because a second reading of `fs.*`
|
|
216
|
+
* is a second answer to "what may this agent do".
|
|
217
|
+
*/
|
|
218
|
+
export declare const matchesToolAllowlist: (toolName: string, allowlist: readonly string[]) => boolean;
|
|
219
|
+
/**
|
|
220
|
+
* Whether an agent's `skills:` allowlist permits a skill id.
|
|
221
|
+
*
|
|
222
|
+
* The same machinery as `matchesToolAllowlist` — one implementation of
|
|
223
|
+
* "does this glob select this name", not a second — with the separator the
|
|
224
|
+
* qualified skill form uses: `stratus-plugin-github:*` selects every skill
|
|
225
|
+
* that package contributes, `stratus-plugin-github:pr-review` exactly one,
|
|
226
|
+
* `code-review` an unqualified operator-installed skill, and `*` all of
|
|
227
|
+
* them. The glob keeps its colon for the same reason the tool glob keeps
|
|
228
|
+
* its dot: `pkg:*` must not be widened by a package that named itself to
|
|
229
|
+
* look like a prefix of another.
|
|
230
|
+
*/
|
|
231
|
+
export declare const matchesSkillAllowlist: (skillId: string, allowlist: readonly string[]) => boolean;
|
|
232
|
+
/**
|
|
233
|
+
* Whether a tools allowlist plausibly covers a requirement — an exact tool
|
|
234
|
+
* name (`fs.read`) or a toolset glob (`browser.*`), the forms a skill's
|
|
235
|
+
* `requires:` is written in.
|
|
236
|
+
*
|
|
237
|
+
* Advisory by design: it feeds the load-time warning for an agent enabling
|
|
238
|
+
* a skill without the tools the skill expects, never an enforcement
|
|
239
|
+
* decision. An omitted allowlist is every registered tool, so it covers
|
|
240
|
+
* anything; a glob requirement is covered by the glob itself, by `*`, or
|
|
241
|
+
* by any entry naming something inside the namespace.
|
|
242
|
+
*/
|
|
243
|
+
export declare const toolAllowlistCovers: (requirement: string, allowlist: readonly string[] | undefined) => boolean;
|
|
244
|
+
/** One skill an agent enabled without the tools it expects. Advisory — see `missingSkillRequirements`. */
|
|
245
|
+
export interface SkillRequirementFinding {
|
|
246
|
+
skill: Skill;
|
|
247
|
+
/** The `requires:` entries the agent's tools allowlist does not cover. */
|
|
248
|
+
missing: string[];
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* The `requires:` entries of this agent's enabled skills that its `tools:`
|
|
252
|
+
* allowlist does not cover — what the load-time warning reports.
|
|
253
|
+
*
|
|
254
|
+
* One implementation, exported, because two hosts warn about the same
|
|
255
|
+
* configuration: the gateway at roster load and the CLI before a local
|
|
256
|
+
* run. A copy in each would drift, and `stratus run` staying silent about
|
|
257
|
+
* a soul `stratus serve` warns for is exactly the disagreement the local
|
|
258
|
+
* test exists to prevent. Advisory by design — a skill is prose and can
|
|
259
|
+
* degrade, so callers warn and continue, never refuse.
|
|
260
|
+
*/
|
|
261
|
+
export declare const missingSkillRequirements: (agent: Pick<AgentDefinition, "skills" | "tools">, skills: SkillRegistry) => SkillRequirementFinding[];
|
|
163
262
|
export interface ToolDescriptor {
|
|
164
263
|
name: string;
|
|
165
264
|
description?: string;
|
|
@@ -209,6 +308,12 @@ export interface ProviderRequest {
|
|
|
209
308
|
tools?: ToolDescriptor[];
|
|
210
309
|
/** Agent-scoped long-term memory, newest last. */
|
|
211
310
|
memory?: MemoryEntry[];
|
|
311
|
+
/**
|
|
312
|
+
* The skills enabled for this agent — descriptors only, one prompt line
|
|
313
|
+
* each. Bodies never travel here; they arrive through `skill.read` when
|
|
314
|
+
* the model decides a description is relevant.
|
|
315
|
+
*/
|
|
316
|
+
skills?: SkillDescriptor[];
|
|
212
317
|
/**
|
|
213
318
|
* Streaming sink. Adapters that stream call this per fragment and MUST
|
|
214
319
|
* await the returned promise before the next call (backpressure); the
|
|
@@ -248,6 +353,24 @@ export interface Tool {
|
|
|
248
353
|
parameters?: JsonObject;
|
|
249
354
|
/** See ToolRisk. Omitted means `gated`, never `safe`. */
|
|
250
355
|
risk?: ToolRisk;
|
|
356
|
+
/**
|
|
357
|
+
* The shell command this invocation would run, for a tool whose danger
|
|
358
|
+
* lives in its arguments rather than in its identity.
|
|
359
|
+
*
|
|
360
|
+
* `risk` classifies a tool; this classifies a *call*. `shell.run` is one
|
|
361
|
+
* tool whose invocations range from `git status` to `curl … | sh`, and a
|
|
362
|
+
* single risk level for all of them is either too coarse to be safe or
|
|
363
|
+
* too coarse to be usable. A policy that wanted to judge the difference
|
|
364
|
+
* would have to know which input field a particular shell tool keeps its
|
|
365
|
+
* command in — so the tool says, and the policy stays free of any
|
|
366
|
+
* knowledge of which pack it is talking to.
|
|
367
|
+
*
|
|
368
|
+
* Returning a string is a request to be judged by the command, not a
|
|
369
|
+
* claim about it: the scope engine in `@stratusagent/permissions` decides
|
|
370
|
+
* what the string means, and a tool that returns nothing (or is not
|
|
371
|
+
* asked) is judged by `risk` alone.
|
|
372
|
+
*/
|
|
373
|
+
commandFor?(input: JsonObject): string | undefined;
|
|
251
374
|
execute(input: JsonObject, session: Session, context?: ExecutionContext): Promise<JsonValue>;
|
|
252
375
|
}
|
|
253
376
|
export interface Executor {
|
|
@@ -485,11 +608,29 @@ export interface PluginContext {
|
|
|
485
608
|
export interface Plugin {
|
|
486
609
|
name: string;
|
|
487
610
|
setup(context: PluginContext): Promise<void> | void;
|
|
611
|
+
/**
|
|
612
|
+
* Release whatever `setup` acquired. Optional, and most plugins have
|
|
613
|
+
* nothing to release — a plugin that registers pure functions is done
|
|
614
|
+
* when the process is.
|
|
615
|
+
*
|
|
616
|
+
* It exists because some do: a browser plugin holds a Chromium and a
|
|
617
|
+
* listening socket, and a daemon that stopped without telling it would
|
|
618
|
+
* leak both. The host calls this on shutdown, after channels have
|
|
619
|
+
* stopped, and a plugin that throws here is logged rather than allowed to
|
|
620
|
+
* hold up the drain.
|
|
621
|
+
*/
|
|
622
|
+
dispose?(): Promise<void> | void;
|
|
488
623
|
}
|
|
489
624
|
export declare class PluginRegistry {
|
|
490
625
|
private plugins;
|
|
491
626
|
register(plugin: Plugin): void;
|
|
492
627
|
loadAll(context: PluginContext): Promise<void>;
|
|
628
|
+
/**
|
|
629
|
+
* Dispose every plugin that has something to dispose, in reverse load
|
|
630
|
+
* order. Settled rather than awaited in sequence-with-throw: one
|
|
631
|
+
* plugin's failed cleanup must not strand the next plugin's.
|
|
632
|
+
*/
|
|
633
|
+
disposeAll(): Promise<void>;
|
|
493
634
|
}
|
|
494
635
|
export declare class ToolRegistry {
|
|
495
636
|
private tools;
|
|
@@ -498,6 +639,157 @@ export declare class ToolRegistry {
|
|
|
498
639
|
list(): Tool[];
|
|
499
640
|
describe(): ToolDescriptor[];
|
|
500
641
|
}
|
|
642
|
+
/**
|
|
643
|
+
* What a skill costs every turn: one line. `name` and `description` are the
|
|
644
|
+
* whole system-prompt footprint of an enabled skill — the body arrives only
|
|
645
|
+
* through `skill.read`, when the model decides the description is relevant.
|
|
646
|
+
*/
|
|
647
|
+
export interface SkillDescriptor {
|
|
648
|
+
id: string;
|
|
649
|
+
name: string;
|
|
650
|
+
/**
|
|
651
|
+
* What routing runs on, so it says *when to reach for this*, not what
|
|
652
|
+
* the body contains. "Use when reviewing a diff or a pull request", not
|
|
653
|
+
* "A rubric with twelve sections".
|
|
654
|
+
*/
|
|
655
|
+
description: string;
|
|
656
|
+
}
|
|
657
|
+
/**
|
|
658
|
+
* A procedure an agent loads when it needs it. The body is behind `load()`
|
|
659
|
+
* rather than on the object because progressive disclosure is the whole
|
|
660
|
+
* point: an enabled-but-unused skill costs its description line and nothing
|
|
661
|
+
* else, per turn and in memory.
|
|
662
|
+
*/
|
|
663
|
+
export interface Skill extends SkillDescriptor {
|
|
664
|
+
/**
|
|
665
|
+
* Toolset globs this skill expects (`browser.*`, `fs.read`). Advisory: a
|
|
666
|
+
* skill is prose and degrades, so an agent enabling one without the tools
|
|
667
|
+
* gets a load-time warning, never a hard failure.
|
|
668
|
+
*/
|
|
669
|
+
requires?: string[];
|
|
670
|
+
/** Load the full body. Callers go through `SkillRegistry.read`, which caches. */
|
|
671
|
+
load(): Promise<string>;
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* Two skills claiming one id, refused rather than resolved to whichever
|
|
675
|
+
* loaded last — the same reason a duplicate agent id or tool name is a
|
|
676
|
+
* load-time error: an allowlist naming the id would silently select the
|
|
677
|
+
* wrong procedure.
|
|
678
|
+
*/
|
|
679
|
+
export declare class DuplicateSkillIdError extends Error {
|
|
680
|
+
constructor(id: string);
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* The kernel's skill catalog, alongside `ToolRegistry` and shaped like it.
|
|
684
|
+
*
|
|
685
|
+
* Ids come in two forms and the registry knows both: the canonical id a
|
|
686
|
+
* skill was registered under (`code-review`, or a plugin's qualified
|
|
687
|
+
* `stratus-plugin-github:pr-review`), and optional aliases — the bare id a
|
|
688
|
+
* plugin's skill also answers to while no other package claims it. Reads
|
|
689
|
+
* are cached per skill, not per read: a body read three times in one turn
|
|
690
|
+
* hits the disk once, whichever of its ids it was asked for by.
|
|
691
|
+
*/
|
|
692
|
+
export declare class SkillRegistry {
|
|
693
|
+
private skills;
|
|
694
|
+
private aliases;
|
|
695
|
+
/**
|
|
696
|
+
* Bare ids two plugins both wanted. Once contested, the bare form stays
|
|
697
|
+
* dead for everyone — re-granting it to whichever package loads first
|
|
698
|
+
* next time would flip which procedure `skills: [pr-review]` selects
|
|
699
|
+
* between restarts.
|
|
700
|
+
*/
|
|
701
|
+
private contestedAliases;
|
|
702
|
+
private bodies;
|
|
703
|
+
register(skill: Skill): void;
|
|
704
|
+
/**
|
|
705
|
+
* Give a registered skill a second addressable id — the bare form of a
|
|
706
|
+
* plugin's qualified id. Quietly yields instead of throwing, because an
|
|
707
|
+
* alias is a convenience and the skill stays reachable canonical: a bare
|
|
708
|
+
* id already registered as a skill of its own belongs to that skill, and
|
|
709
|
+
* one two plugins both want goes to neither (see `contestedAliases`).
|
|
710
|
+
*/
|
|
711
|
+
registerAlias(alias: string, canonicalId: string): void;
|
|
712
|
+
/** The skill behind an id, canonical or alias. */
|
|
713
|
+
resolve(id: string): Skill | undefined;
|
|
714
|
+
/**
|
|
715
|
+
* Whether `register(skill)` with this id would be refused — the check a
|
|
716
|
+
* loader runs *before* committing anything else a package contributes,
|
|
717
|
+
* so a duplicate skill refuses the plugin whole instead of leaving its
|
|
718
|
+
* tools registered and its skills not.
|
|
719
|
+
*/
|
|
720
|
+
has(id: string): boolean;
|
|
721
|
+
/**
|
|
722
|
+
* Every id that reaches a skill, canonical first. This is what an
|
|
723
|
+
* allowlist is checked against: `skills: [pr-review]` and
|
|
724
|
+
* `skills: [stratus-plugin-github:*]` both select the same skill, and
|
|
725
|
+
* permission is about the skill, not about which of its names was used.
|
|
726
|
+
*/
|
|
727
|
+
idsFor(canonicalId: string): string[];
|
|
728
|
+
list(): Skill[];
|
|
729
|
+
describe(): SkillDescriptor[];
|
|
730
|
+
/**
|
|
731
|
+
* The body behind an id, loaded lazily and cached per skill — keyed by
|
|
732
|
+
* the canonical id, so an alias read and a qualified read share one
|
|
733
|
+
* cache entry.
|
|
734
|
+
*/
|
|
735
|
+
read(id: string): Promise<string>;
|
|
736
|
+
}
|
|
737
|
+
export declare const SKILL_READ_TOOL_NAME = "skill.read";
|
|
738
|
+
export interface SkillReadToolOptions {
|
|
739
|
+
/**
|
|
740
|
+
* Which `skills:` entries the session's agent is held to. Defaults to the
|
|
741
|
+
* definition travelling with the session; a host whose roster can hold
|
|
742
|
+
* skills the session copy predates (the gateway) passes its own resolver
|
|
743
|
+
* so both gates and this tool answer from the same list.
|
|
744
|
+
*/
|
|
745
|
+
allowlistFor?: (session: Session) => readonly string[] | undefined;
|
|
746
|
+
}
|
|
747
|
+
/**
|
|
748
|
+
* The reader behind progressive disclosure: descriptions reach the system
|
|
749
|
+
* prompt, and this is how a body follows when one turns out to be relevant.
|
|
750
|
+
*
|
|
751
|
+
* `risk: 'safe'` is deliberate — reading a file the operator installed and
|
|
752
|
+
* the soul opted into is not an act on the world. Which skill may be read
|
|
753
|
+
* is the soul's `skills:` allowlist, enforced here with the same matcher
|
|
754
|
+
* the runner's gates use, so there is one gate, not a second
|
|
755
|
+
* implementation of one.
|
|
756
|
+
*
|
|
757
|
+
* The tool itself is part of the skills mechanism, not a capability a soul
|
|
758
|
+
* lists under `tools:` — see the runner, which advertises and permits it
|
|
759
|
+
* exactly when the agent has any skill enabled.
|
|
760
|
+
*/
|
|
761
|
+
export declare const createSkillReadTool: (skills: SkillRegistry, options?: SkillReadToolOptions) => Tool;
|
|
762
|
+
/**
|
|
763
|
+
* The persona line. `fallback` supplies one for an agent with no
|
|
764
|
+
* instructions — runtimes that always need a system prompt (Claude Code)
|
|
765
|
+
* ask for it; API adapters that can omit the section do not.
|
|
766
|
+
*/
|
|
767
|
+
export declare const renderPersonaSection: (agent: Pick<AgentDefinition, "name" | "instructions">, options?: {
|
|
768
|
+
fallback?: boolean;
|
|
769
|
+
}) => string | undefined;
|
|
770
|
+
export declare const renderMemorySection: (memory: readonly MemoryEntry[] | undefined) => string | undefined;
|
|
771
|
+
/**
|
|
772
|
+
* The skills block: one line per enabled skill — id, name, and the
|
|
773
|
+
* description routing runs on. This is the whole point of the step: the
|
|
774
|
+
* marginal cost of an enabled-but-unused skill is this line, so nothing
|
|
775
|
+
* here may ever include a body.
|
|
776
|
+
*/
|
|
777
|
+
export declare const renderSkillsSection: (skills: readonly SkillDescriptor[] | undefined) => string | undefined;
|
|
778
|
+
export interface SystemPromptOptions {
|
|
779
|
+
/** Host-level preamble, rendered before the agent's own persona. */
|
|
780
|
+
preamble?: string;
|
|
781
|
+
/** Render a default persona line for an agent with no instructions. */
|
|
782
|
+
fallbackPersona?: boolean;
|
|
783
|
+
}
|
|
784
|
+
/**
|
|
785
|
+
* Every section that belongs in an agent's system prompt, in order, empty
|
|
786
|
+
* ones omitted. Returned as sections rather than one string because wire
|
|
787
|
+
* formats differ — Anthropic takes one system string, the OpenAI dialect a
|
|
788
|
+
* message per section — and the contract is the content, not the joining.
|
|
789
|
+
*/
|
|
790
|
+
export declare const renderSystemPromptSections: (request: Pick<ProviderRequest, "session" | "memory" | "skills">, options?: SystemPromptOptions) => string[];
|
|
791
|
+
/** The sections joined the way single-string providers send them. */
|
|
792
|
+
export declare const renderSystemPrompt: (request: Pick<ProviderRequest, "session" | "memory" | "skills">, options?: SystemPromptOptions) => string | undefined;
|
|
501
793
|
export declare class DefaultExecutor implements Executor {
|
|
502
794
|
execute(call: ToolCall, tool: Tool, session: Session, context?: ExecutionContext): Promise<ToolResult>;
|
|
503
795
|
}
|
|
@@ -537,6 +829,13 @@ export interface AgentRunnerOptions {
|
|
|
537
829
|
plugins?: PluginRegistry;
|
|
538
830
|
/** Known agent definitions; enables per-agent tool allowlists. */
|
|
539
831
|
agents?: AgentRegistry;
|
|
832
|
+
/**
|
|
833
|
+
* The skill catalog. Passing one makes `skill.read` available — the
|
|
834
|
+
* runner registers it if the host has not — to exactly the agents whose
|
|
835
|
+
* soul enables any skill; see the two gates in `executeTurns` and
|
|
836
|
+
* `executeToolCall`.
|
|
837
|
+
*/
|
|
838
|
+
skills?: SkillRegistry;
|
|
540
839
|
/** Agent-scoped long-term memory, injected into every provider request. */
|
|
541
840
|
memory?: AgentMemoryStore;
|
|
542
841
|
/** Maximum provider turns per run before the session fails. */
|
|
@@ -557,6 +856,7 @@ export declare class AgentRunner {
|
|
|
557
856
|
readonly approvals: ApprovalPolicy;
|
|
558
857
|
readonly plugins: PluginRegistry;
|
|
559
858
|
readonly agents: AgentRegistry;
|
|
859
|
+
readonly skills: SkillRegistry | undefined;
|
|
560
860
|
readonly memory: AgentMemoryStore | undefined;
|
|
561
861
|
readonly maxTurns: number;
|
|
562
862
|
readonly streaming: boolean;
|
|
@@ -573,8 +873,24 @@ export declare class AgentRunner {
|
|
|
573
873
|
* resume can decide to retry rather than assume the side effect landed.
|
|
574
874
|
*/
|
|
575
875
|
private reconcileInterruptedToolCalls;
|
|
576
|
-
/**
|
|
876
|
+
/**
|
|
877
|
+
* The allowlist entries this session's agent is held to, or undefined for
|
|
878
|
+
* no limit. Entries, not a name set: `fs.*` is an entry, and matching is
|
|
879
|
+
* `matchesToolAllowlist`'s job rather than each caller's.
|
|
880
|
+
*/
|
|
577
881
|
private allowedToolsFor;
|
|
882
|
+
/** The `skills:` entries this session's agent is held to — same sourcing as `allowedToolsFor`. */
|
|
883
|
+
private skillAllowlistFor;
|
|
884
|
+
/**
|
|
885
|
+
* The skills this session's agent has enabled, as the one-line
|
|
886
|
+
* descriptors the prompt carries. Each skill appears once, under the id
|
|
887
|
+
* the allowlist actually granted (canonical before alias) — the id the
|
|
888
|
+
* model is told is the id `skill.read` will accept.
|
|
889
|
+
*
|
|
890
|
+
* Empty for an agent whose soul has no `skills:` key, which is what keys
|
|
891
|
+
* both `skill.read` gates: no skills, no reader.
|
|
892
|
+
*/
|
|
893
|
+
private enabledSkillsFor;
|
|
578
894
|
private executeTurns;
|
|
579
895
|
/**
|
|
580
896
|
* Finishes a turn that was parked on a human when the process died.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,17 @@ export class AgentRegistry {
|
|
|
20
20
|
}
|
|
21
21
|
return matches[0];
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Forget an agent, reporting whether one was registered under that id.
|
|
25
|
+
*
|
|
26
|
+
* A roster reload has to be able to *remove*. Re-registering the survivors
|
|
27
|
+
* over a map nothing ever deletes from leaves an agent whose soul file was
|
|
28
|
+
* deleted addressable — by id, and from every channel — for the rest of the
|
|
29
|
+
* daemon's life.
|
|
30
|
+
*/
|
|
31
|
+
unregister(id) {
|
|
32
|
+
return this.agents.delete(id);
|
|
33
|
+
}
|
|
23
34
|
require(id) {
|
|
24
35
|
const agent = this.agents.get(id);
|
|
25
36
|
if (!agent) {
|
|
@@ -34,6 +45,115 @@ export class AgentRegistry {
|
|
|
34
45
|
export const DEFAULT_TOOL_RISK = 'gated';
|
|
35
46
|
/** The declared risk, or the fail-closed default for a tool that omits it. */
|
|
36
47
|
export const resolveToolRisk = (tool) => tool?.risk ?? DEFAULT_TOOL_RISK;
|
|
48
|
+
const RISK_ORDER = { safe: 0, gated: 1, dangerous: 2 };
|
|
49
|
+
/**
|
|
50
|
+
* Whether `risk` is at least as risky as `floor`. The ordering lives here,
|
|
51
|
+
* with the type, because two things compare against it — the permission
|
|
52
|
+
* engine deciding what needs a human, and the plugin loader holding a
|
|
53
|
+
* third-party tool to a floor — and a second ordering is a second answer
|
|
54
|
+
* to "is `safe` above or below `gated`".
|
|
55
|
+
*/
|
|
56
|
+
export const atLeastAsRisky = (risk, floor) => RISK_ORDER[risk] >= RISK_ORDER[floor];
|
|
57
|
+
/** `risk`, raised to `floor` when it sits below it. Never lowers anything. */
|
|
58
|
+
export const raiseRiskTo = (risk, floor) => atLeastAsRisky(risk, floor) ? risk : floor;
|
|
59
|
+
/**
|
|
60
|
+
* Whether an agent's `tools:` allowlist permits a tool name.
|
|
61
|
+
*
|
|
62
|
+
* Two entry forms, and the glob is why this is a function rather than a
|
|
63
|
+
* `Set.has`: a toolset is the unit an operator thinks in — an agent is
|
|
64
|
+
* given "the filesystem", not four names that must be edited whenever the
|
|
65
|
+
* pack gains a fifth — so `fs.*` selects the whole namespace.
|
|
66
|
+
*
|
|
67
|
+
* - `fs.read` — that tool, exactly.
|
|
68
|
+
* - `fs.*` — every tool in the `fs` toolset, nested names included, so
|
|
69
|
+
* `mcp.*` covers `mcp.linear.create_issue` (which is the only form the
|
|
70
|
+
* MCP bridge can be granted, since its names exist only at runtime).
|
|
71
|
+
*
|
|
72
|
+
* The prefix carries its dot deliberately: `fs.*` matches `fs.read` and
|
|
73
|
+
* does **not** match `fsx.read`, so a namespace cannot be widened by a
|
|
74
|
+
* package that named itself to look like a prefix of another. A bare `*`
|
|
75
|
+
* is every registered tool, which is the same thing as omitting the
|
|
76
|
+
* allowlist and is accepted because a soul saying so explicitly is
|
|
77
|
+
* clearer than one saying nothing.
|
|
78
|
+
*
|
|
79
|
+
* Exported because both gates use it — the descriptors a provider is shown
|
|
80
|
+
* and the check before execution — and because a second reading of `fs.*`
|
|
81
|
+
* is a second answer to "what may this agent do".
|
|
82
|
+
*/
|
|
83
|
+
export const matchesToolAllowlist = (toolName, allowlist) => matchesGlobbedAllowlist(toolName, allowlist, '.*');
|
|
84
|
+
/**
|
|
85
|
+
* Whether an agent's `skills:` allowlist permits a skill id.
|
|
86
|
+
*
|
|
87
|
+
* The same machinery as `matchesToolAllowlist` — one implementation of
|
|
88
|
+
* "does this glob select this name", not a second — with the separator the
|
|
89
|
+
* qualified skill form uses: `stratus-plugin-github:*` selects every skill
|
|
90
|
+
* that package contributes, `stratus-plugin-github:pr-review` exactly one,
|
|
91
|
+
* `code-review` an unqualified operator-installed skill, and `*` all of
|
|
92
|
+
* them. The glob keeps its colon for the same reason the tool glob keeps
|
|
93
|
+
* its dot: `pkg:*` must not be widened by a package that named itself to
|
|
94
|
+
* look like a prefix of another.
|
|
95
|
+
*/
|
|
96
|
+
export const matchesSkillAllowlist = (skillId, allowlist) => matchesGlobbedAllowlist(skillId, allowlist, ':*');
|
|
97
|
+
/**
|
|
98
|
+
* Whether a tools allowlist plausibly covers a requirement — an exact tool
|
|
99
|
+
* name (`fs.read`) or a toolset glob (`browser.*`), the forms a skill's
|
|
100
|
+
* `requires:` is written in.
|
|
101
|
+
*
|
|
102
|
+
* Advisory by design: it feeds the load-time warning for an agent enabling
|
|
103
|
+
* a skill without the tools the skill expects, never an enforcement
|
|
104
|
+
* decision. An omitted allowlist is every registered tool, so it covers
|
|
105
|
+
* anything; a glob requirement is covered by the glob itself, by `*`, or
|
|
106
|
+
* by any entry naming something inside the namespace.
|
|
107
|
+
*/
|
|
108
|
+
export const toolAllowlistCovers = (requirement, allowlist) => {
|
|
109
|
+
if (allowlist === undefined) {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
if (requirement.endsWith('.*')) {
|
|
113
|
+
return allowlist.some((entry) => entry === '*' || entry === requirement || matchesToolAllowlist(entry, [requirement]));
|
|
114
|
+
}
|
|
115
|
+
return matchesToolAllowlist(requirement, allowlist);
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* The `requires:` entries of this agent's enabled skills that its `tools:`
|
|
119
|
+
* allowlist does not cover — what the load-time warning reports.
|
|
120
|
+
*
|
|
121
|
+
* One implementation, exported, because two hosts warn about the same
|
|
122
|
+
* configuration: the gateway at roster load and the CLI before a local
|
|
123
|
+
* run. A copy in each would drift, and `stratus run` staying silent about
|
|
124
|
+
* a soul `stratus serve` warns for is exactly the disagreement the local
|
|
125
|
+
* test exists to prevent. Advisory by design — a skill is prose and can
|
|
126
|
+
* degrade, so callers warn and continue, never refuse.
|
|
127
|
+
*/
|
|
128
|
+
export const missingSkillRequirements = (agent, skills) => {
|
|
129
|
+
const allowlist = agent.skills;
|
|
130
|
+
if (!allowlist || allowlist.length === 0) {
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
const findings = [];
|
|
134
|
+
for (const skill of skills.list()) {
|
|
135
|
+
if (!skill.requires || skill.requires.length === 0) {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const enabled = skills
|
|
139
|
+
.idsFor(skill.id)
|
|
140
|
+
.some((id) => matchesSkillAllowlist(id, allowlist));
|
|
141
|
+
if (!enabled) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const missing = skill.requires.filter((requirement) => !toolAllowlistCovers(requirement, agent.tools));
|
|
145
|
+
if (missing.length > 0) {
|
|
146
|
+
findings.push({ skill, missing });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return findings;
|
|
150
|
+
};
|
|
151
|
+
const matchesGlobbedAllowlist = (name, allowlist, globSuffix) => allowlist.some((entry) => {
|
|
152
|
+
if (entry === '*' || entry === name) {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
return entry.endsWith(globSuffix) && name.startsWith(entry.slice(0, -1));
|
|
156
|
+
});
|
|
37
157
|
export class InMemoryAgentMemoryStore {
|
|
38
158
|
entries = new Map();
|
|
39
159
|
counter = 0;
|
|
@@ -163,6 +283,14 @@ export class PluginRegistry {
|
|
|
163
283
|
await plugin.setup(context);
|
|
164
284
|
}
|
|
165
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Dispose every plugin that has something to dispose, in reverse load
|
|
288
|
+
* order. Settled rather than awaited in sequence-with-throw: one
|
|
289
|
+
* plugin's failed cleanup must not strand the next plugin's.
|
|
290
|
+
*/
|
|
291
|
+
async disposeAll() {
|
|
292
|
+
await Promise.allSettled([...this.plugins].reverse().map(async (plugin) => plugin.dispose?.()));
|
|
293
|
+
}
|
|
166
294
|
}
|
|
167
295
|
export class ToolRegistry {
|
|
168
296
|
tools = new Map();
|
|
@@ -184,6 +312,246 @@ export class ToolRegistry {
|
|
|
184
312
|
}));
|
|
185
313
|
}
|
|
186
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Two skills claiming one id, refused rather than resolved to whichever
|
|
317
|
+
* loaded last — the same reason a duplicate agent id or tool name is a
|
|
318
|
+
* load-time error: an allowlist naming the id would silently select the
|
|
319
|
+
* wrong procedure.
|
|
320
|
+
*/
|
|
321
|
+
export class DuplicateSkillIdError extends Error {
|
|
322
|
+
constructor(id) {
|
|
323
|
+
super(`Duplicate skill id: ${id}. Skill ids are unique per install; rename one, or address a plugin's skill by its qualified <package>:<skill> form.`);
|
|
324
|
+
this.name = 'DuplicateSkillIdError';
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* The kernel's skill catalog, alongside `ToolRegistry` and shaped like it.
|
|
329
|
+
*
|
|
330
|
+
* Ids come in two forms and the registry knows both: the canonical id a
|
|
331
|
+
* skill was registered under (`code-review`, or a plugin's qualified
|
|
332
|
+
* `stratus-plugin-github:pr-review`), and optional aliases — the bare id a
|
|
333
|
+
* plugin's skill also answers to while no other package claims it. Reads
|
|
334
|
+
* are cached per skill, not per read: a body read three times in one turn
|
|
335
|
+
* hits the disk once, whichever of its ids it was asked for by.
|
|
336
|
+
*/
|
|
337
|
+
export class SkillRegistry {
|
|
338
|
+
skills = new Map();
|
|
339
|
+
aliases = new Map();
|
|
340
|
+
/**
|
|
341
|
+
* Bare ids two plugins both wanted. Once contested, the bare form stays
|
|
342
|
+
* dead for everyone — re-granting it to whichever package loads first
|
|
343
|
+
* next time would flip which procedure `skills: [pr-review]` selects
|
|
344
|
+
* between restarts.
|
|
345
|
+
*/
|
|
346
|
+
contestedAliases = new Set();
|
|
347
|
+
bodies = new Map();
|
|
348
|
+
register(skill) {
|
|
349
|
+
if (this.skills.has(skill.id) || this.aliases.has(skill.id)) {
|
|
350
|
+
throw new DuplicateSkillIdError(skill.id);
|
|
351
|
+
}
|
|
352
|
+
this.skills.set(skill.id, skill);
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Give a registered skill a second addressable id — the bare form of a
|
|
356
|
+
* plugin's qualified id. Quietly yields instead of throwing, because an
|
|
357
|
+
* alias is a convenience and the skill stays reachable canonical: a bare
|
|
358
|
+
* id already registered as a skill of its own belongs to that skill, and
|
|
359
|
+
* one two plugins both want goes to neither (see `contestedAliases`).
|
|
360
|
+
*/
|
|
361
|
+
registerAlias(alias, canonicalId) {
|
|
362
|
+
const skill = this.skills.get(canonicalId);
|
|
363
|
+
if (!skill) {
|
|
364
|
+
throw new Error(`Cannot alias ${alias}: no skill is registered as ${canonicalId}.`);
|
|
365
|
+
}
|
|
366
|
+
if (alias === canonicalId || this.skills.has(alias) || this.contestedAliases.has(alias)) {
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
const existing = this.aliases.get(alias);
|
|
370
|
+
if (existing !== undefined) {
|
|
371
|
+
if (existing !== canonicalId) {
|
|
372
|
+
this.aliases.delete(alias);
|
|
373
|
+
this.contestedAliases.add(alias);
|
|
374
|
+
}
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
this.aliases.set(alias, canonicalId);
|
|
378
|
+
}
|
|
379
|
+
/** The skill behind an id, canonical or alias. */
|
|
380
|
+
resolve(id) {
|
|
381
|
+
return this.skills.get(id) ?? this.skills.get(this.aliases.get(id) ?? '');
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Whether `register(skill)` with this id would be refused — the check a
|
|
385
|
+
* loader runs *before* committing anything else a package contributes,
|
|
386
|
+
* so a duplicate skill refuses the plugin whole instead of leaving its
|
|
387
|
+
* tools registered and its skills not.
|
|
388
|
+
*/
|
|
389
|
+
has(id) {
|
|
390
|
+
return this.skills.has(id) || this.aliases.has(id);
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Every id that reaches a skill, canonical first. This is what an
|
|
394
|
+
* allowlist is checked against: `skills: [pr-review]` and
|
|
395
|
+
* `skills: [stratus-plugin-github:*]` both select the same skill, and
|
|
396
|
+
* permission is about the skill, not about which of its names was used.
|
|
397
|
+
*/
|
|
398
|
+
idsFor(canonicalId) {
|
|
399
|
+
const ids = [canonicalId];
|
|
400
|
+
for (const [alias, target] of this.aliases) {
|
|
401
|
+
if (target === canonicalId) {
|
|
402
|
+
ids.push(alias);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return ids;
|
|
406
|
+
}
|
|
407
|
+
list() {
|
|
408
|
+
return [...this.skills.values()];
|
|
409
|
+
}
|
|
410
|
+
describe() {
|
|
411
|
+
return this.list().map((skill) => ({
|
|
412
|
+
id: skill.id,
|
|
413
|
+
name: skill.name,
|
|
414
|
+
description: skill.description,
|
|
415
|
+
}));
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* The body behind an id, loaded lazily and cached per skill — keyed by
|
|
419
|
+
* the canonical id, so an alias read and a qualified read share one
|
|
420
|
+
* cache entry.
|
|
421
|
+
*/
|
|
422
|
+
async read(id) {
|
|
423
|
+
const skill = this.resolve(id);
|
|
424
|
+
if (!skill) {
|
|
425
|
+
throw new Error(`Skill not found: ${id}`);
|
|
426
|
+
}
|
|
427
|
+
const cached = this.bodies.get(skill.id);
|
|
428
|
+
if (cached) {
|
|
429
|
+
return cached;
|
|
430
|
+
}
|
|
431
|
+
const loading = Promise.resolve(skill.load());
|
|
432
|
+
this.bodies.set(skill.id, loading);
|
|
433
|
+
try {
|
|
434
|
+
return await loading;
|
|
435
|
+
}
|
|
436
|
+
catch (error) {
|
|
437
|
+
// A failed read must not poison the cache: the file may exist on the
|
|
438
|
+
// next attempt, and a cached rejection would refuse it forever.
|
|
439
|
+
this.bodies.delete(skill.id);
|
|
440
|
+
throw error;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
export const SKILL_READ_TOOL_NAME = 'skill.read';
|
|
445
|
+
/**
|
|
446
|
+
* The reader behind progressive disclosure: descriptions reach the system
|
|
447
|
+
* prompt, and this is how a body follows when one turns out to be relevant.
|
|
448
|
+
*
|
|
449
|
+
* `risk: 'safe'` is deliberate — reading a file the operator installed and
|
|
450
|
+
* the soul opted into is not an act on the world. Which skill may be read
|
|
451
|
+
* is the soul's `skills:` allowlist, enforced here with the same matcher
|
|
452
|
+
* the runner's gates use, so there is one gate, not a second
|
|
453
|
+
* implementation of one.
|
|
454
|
+
*
|
|
455
|
+
* The tool itself is part of the skills mechanism, not a capability a soul
|
|
456
|
+
* lists under `tools:` — see the runner, which advertises and permits it
|
|
457
|
+
* exactly when the agent has any skill enabled.
|
|
458
|
+
*/
|
|
459
|
+
export const createSkillReadTool = (skills, options = {}) => ({
|
|
460
|
+
name: SKILL_READ_TOOL_NAME,
|
|
461
|
+
description: 'Load the full instructions of one of your skills by id. Call this before relying on a skill — the one-line list in your instructions is only a pointer, not the procedure.',
|
|
462
|
+
risk: 'safe',
|
|
463
|
+
parameters: {
|
|
464
|
+
type: 'object',
|
|
465
|
+
properties: {
|
|
466
|
+
id: { type: 'string', description: 'The skill id, exactly as it appears in your skills list.' },
|
|
467
|
+
},
|
|
468
|
+
required: ['id'],
|
|
469
|
+
},
|
|
470
|
+
async execute(input, session) {
|
|
471
|
+
const id = typeof input.id === 'string' ? input.id.trim() : '';
|
|
472
|
+
if (!id) {
|
|
473
|
+
throw new Error('skill.read requires a non-empty "id" string.');
|
|
474
|
+
}
|
|
475
|
+
const allowlist = options.allowlistFor ? options.allowlistFor(session) : session.agent.skills;
|
|
476
|
+
const skill = skills.resolve(id);
|
|
477
|
+
// Permission is about the skill, so every id that reaches it counts —
|
|
478
|
+
// a soul granting `stratus-plugin-github:*` covers a read by the bare
|
|
479
|
+
// alias. An id reaching no skill is judged as written, and permission
|
|
480
|
+
// is settled before existence so an agent with no grant learns
|
|
481
|
+
// nothing about what is installed.
|
|
482
|
+
const addressable = skill ? skills.idsFor(skill.id) : [id];
|
|
483
|
+
const permitted = allowlist !== undefined
|
|
484
|
+
&& addressable.some((candidate) => matchesSkillAllowlist(candidate, allowlist));
|
|
485
|
+
if (!permitted) {
|
|
486
|
+
throw new Error(`Skill not permitted for agent ${session.agent.id}: ${id}`);
|
|
487
|
+
}
|
|
488
|
+
if (!skill) {
|
|
489
|
+
throw new Error(`Skill not found: ${id}`);
|
|
490
|
+
}
|
|
491
|
+
return { id: skill.id, name: skill.name, body: await skills.read(id) };
|
|
492
|
+
},
|
|
493
|
+
});
|
|
494
|
+
// ---- system prompt rendering ----------------------------------------------
|
|
495
|
+
//
|
|
496
|
+
// How an agent's identity reaches a model is a kernel contract, rendered
|
|
497
|
+
// once here rather than per provider package — three packages carrying
|
|
498
|
+
// their own copy of "You are ${name}" is three answers to what an agent is
|
|
499
|
+
// told about itself, and the skills block would have made it a fourth copy
|
|
500
|
+
// of a rule that matters (descriptions only, never bodies).
|
|
501
|
+
/**
|
|
502
|
+
* The persona line. `fallback` supplies one for an agent with no
|
|
503
|
+
* instructions — runtimes that always need a system prompt (Claude Code)
|
|
504
|
+
* ask for it; API adapters that can omit the section do not.
|
|
505
|
+
*/
|
|
506
|
+
export const renderPersonaSection = (agent, options = {}) => {
|
|
507
|
+
if (agent.instructions && agent.instructions.length > 0) {
|
|
508
|
+
return `You are ${agent.name}. ${agent.instructions}`;
|
|
509
|
+
}
|
|
510
|
+
return options.fallback ? `You are ${agent.name}, a helpful assistant.` : undefined;
|
|
511
|
+
};
|
|
512
|
+
export const renderMemorySection = (memory) => {
|
|
513
|
+
if (!memory || memory.length === 0) {
|
|
514
|
+
return undefined;
|
|
515
|
+
}
|
|
516
|
+
const facts = memory.map((entry) => `- ${entry.content}`).join('\n');
|
|
517
|
+
return `Things you remember from previous conversations (your own long-term memory):\n${facts}`;
|
|
518
|
+
};
|
|
519
|
+
/**
|
|
520
|
+
* The skills block: one line per enabled skill — id, name, and the
|
|
521
|
+
* description routing runs on. This is the whole point of the step: the
|
|
522
|
+
* marginal cost of an enabled-but-unused skill is this line, so nothing
|
|
523
|
+
* here may ever include a body.
|
|
524
|
+
*/
|
|
525
|
+
export const renderSkillsSection = (skills) => {
|
|
526
|
+
if (!skills || skills.length === 0) {
|
|
527
|
+
return undefined;
|
|
528
|
+
}
|
|
529
|
+
const lines = skills.map((skill) => {
|
|
530
|
+
const label = skill.name && skill.name !== skill.id ? `${skill.id} (${skill.name})` : skill.id;
|
|
531
|
+
return `- ${label}: ${skill.description}`;
|
|
532
|
+
});
|
|
533
|
+
return `You have skills — procedures for doing particular tasks well. When one is relevant to the task at hand, load its full instructions with the ${SKILL_READ_TOOL_NAME} tool (pass the id) and follow them; the one-line descriptions here are pointers, not the procedures themselves:\n${lines.join('\n')}`;
|
|
534
|
+
};
|
|
535
|
+
/**
|
|
536
|
+
* Every section that belongs in an agent's system prompt, in order, empty
|
|
537
|
+
* ones omitted. Returned as sections rather than one string because wire
|
|
538
|
+
* formats differ — Anthropic takes one system string, the OpenAI dialect a
|
|
539
|
+
* message per section — and the contract is the content, not the joining.
|
|
540
|
+
*/
|
|
541
|
+
export const renderSystemPromptSections = (request, options = {}) => {
|
|
542
|
+
const sections = [
|
|
543
|
+
options.preamble,
|
|
544
|
+
renderPersonaSection(request.session.agent, { fallback: options.fallbackPersona ?? false }),
|
|
545
|
+
renderMemorySection(request.memory),
|
|
546
|
+
renderSkillsSection(request.skills),
|
|
547
|
+
];
|
|
548
|
+
return sections.filter((section) => section !== undefined && section.length > 0);
|
|
549
|
+
};
|
|
550
|
+
/** The sections joined the way single-string providers send them. */
|
|
551
|
+
export const renderSystemPrompt = (request, options = {}) => {
|
|
552
|
+
const sections = renderSystemPromptSections(request, options);
|
|
553
|
+
return sections.length > 0 ? sections.join('\n\n') : undefined;
|
|
554
|
+
};
|
|
187
555
|
export class DefaultExecutor {
|
|
188
556
|
async execute(call, tool, session, context) {
|
|
189
557
|
try {
|
|
@@ -231,6 +599,7 @@ export class AgentRunner {
|
|
|
231
599
|
approvals;
|
|
232
600
|
plugins;
|
|
233
601
|
agents;
|
|
602
|
+
skills;
|
|
234
603
|
memory;
|
|
235
604
|
maxTurns;
|
|
236
605
|
streaming;
|
|
@@ -244,9 +613,18 @@ export class AgentRunner {
|
|
|
244
613
|
this.approvals = options.approvals ?? new AllowAllApprovalPolicy();
|
|
245
614
|
this.plugins = options.plugins ?? new PluginRegistry();
|
|
246
615
|
this.agents = options.agents ?? new AgentRegistry();
|
|
616
|
+
this.skills = options.skills;
|
|
247
617
|
this.memory = options.memory;
|
|
248
618
|
this.maxTurns = options.maxTurns ?? DEFAULT_MAX_TURNS;
|
|
249
619
|
this.streaming = options.streaming ?? false;
|
|
620
|
+
// The reader is part of the skills mechanism, so a runner given a
|
|
621
|
+
// catalog makes sure it exists — with this runner's own allowlist
|
|
622
|
+
// resolution, so the tool refuses exactly what the gates refuse. A host
|
|
623
|
+
// that registered its own (the gateway, so its tool listing is complete
|
|
624
|
+
// before the first dispatch) is left alone.
|
|
625
|
+
if (this.skills && !this.tools.get(SKILL_READ_TOOL_NAME)) {
|
|
626
|
+
this.tools.register(createSkillReadTool(this.skills, { allowlistFor: (session) => this.skillAllowlistFor(session) }));
|
|
627
|
+
}
|
|
250
628
|
}
|
|
251
629
|
async initialize() {
|
|
252
630
|
await this.plugins.loadAll({ bus: this.bus, tools: this.tools });
|
|
@@ -353,12 +731,47 @@ export class AgentRunner {
|
|
|
353
731
|
}
|
|
354
732
|
}
|
|
355
733
|
}
|
|
356
|
-
/**
|
|
734
|
+
/**
|
|
735
|
+
* The allowlist entries this session's agent is held to, or undefined for
|
|
736
|
+
* no limit. Entries, not a name set: `fs.*` is an entry, and matching is
|
|
737
|
+
* `matchesToolAllowlist`'s job rather than each caller's.
|
|
738
|
+
*/
|
|
357
739
|
allowedToolsFor(session) {
|
|
358
740
|
// The definition handed to run()/resume() travels with the session, so an
|
|
359
741
|
// agent's own allowlist applies even when it was never registered.
|
|
360
|
-
|
|
361
|
-
|
|
742
|
+
return session.agent.tools ?? this.agents.get(session.agent.id)?.tools;
|
|
743
|
+
}
|
|
744
|
+
/** The `skills:` entries this session's agent is held to — same sourcing as `allowedToolsFor`. */
|
|
745
|
+
skillAllowlistFor(session) {
|
|
746
|
+
return session.agent.skills ?? this.agents.get(session.agent.id)?.skills;
|
|
747
|
+
}
|
|
748
|
+
/**
|
|
749
|
+
* The skills this session's agent has enabled, as the one-line
|
|
750
|
+
* descriptors the prompt carries. Each skill appears once, under the id
|
|
751
|
+
* the allowlist actually granted (canonical before alias) — the id the
|
|
752
|
+
* model is told is the id `skill.read` will accept.
|
|
753
|
+
*
|
|
754
|
+
* Empty for an agent whose soul has no `skills:` key, which is what keys
|
|
755
|
+
* both `skill.read` gates: no skills, no reader.
|
|
756
|
+
*/
|
|
757
|
+
enabledSkillsFor(session) {
|
|
758
|
+
if (!this.skills) {
|
|
759
|
+
return [];
|
|
760
|
+
}
|
|
761
|
+
const allowlist = this.skillAllowlistFor(session);
|
|
762
|
+
if (!allowlist || allowlist.length === 0) {
|
|
763
|
+
return [];
|
|
764
|
+
}
|
|
765
|
+
const enabled = [];
|
|
766
|
+
for (const skill of this.skills.list()) {
|
|
767
|
+
const grantedId = this.skills
|
|
768
|
+
.idsFor(skill.id)
|
|
769
|
+
.find((candidate) => matchesSkillAllowlist(candidate, allowlist));
|
|
770
|
+
if (grantedId !== undefined) {
|
|
771
|
+
enabled.push({ id: grantedId, name: skill.name, description: skill.description });
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
return enabled;
|
|
362
775
|
}
|
|
363
776
|
async executeTurns(initialSession, signal,
|
|
364
777
|
/**
|
|
@@ -372,9 +785,18 @@ export class AgentRunner {
|
|
|
372
785
|
let pendingEntry = resumeFrom;
|
|
373
786
|
try {
|
|
374
787
|
const allowedTools = this.allowedToolsFor(session);
|
|
788
|
+
// Gate 1 of two for skill.read (gate 2 is executeToolCall): the
|
|
789
|
+
// reader rides on the agent having any skill enabled, not on the
|
|
790
|
+
// `tools:` allowlist — it is an implementation detail of the
|
|
791
|
+
// `skills:` key, and souls are not asked to list it. The exemption
|
|
792
|
+
// cuts both ways: an agent with no skills never sees the reader,
|
|
793
|
+
// however permissive its tools list.
|
|
794
|
+
const enabledSkills = this.enabledSkillsFor(session);
|
|
375
795
|
const tools = this.tools
|
|
376
796
|
.describe()
|
|
377
|
-
.filter((tool) =>
|
|
797
|
+
.filter((tool) => (tool.name === SKILL_READ_TOOL_NAME
|
|
798
|
+
? enabledSkills.length > 0
|
|
799
|
+
: allowedTools === undefined || matchesToolAllowlist(tool.name, allowedTools)));
|
|
378
800
|
// Resumed, not restarted: a recovered turn spends the budget it was
|
|
379
801
|
// already on. Starting at 1 would let a call parked on the last
|
|
380
802
|
// permitted turn buy the whole allowance again.
|
|
@@ -414,6 +836,7 @@ export class AgentRunner {
|
|
|
414
836
|
session,
|
|
415
837
|
...(tools.length > 0 ? { tools } : {}),
|
|
416
838
|
...(memory.length > 0 ? { memory } : {}),
|
|
839
|
+
...(enabledSkills.length > 0 ? { skills: enabledSkills } : {}),
|
|
417
840
|
...(this.streaming ? { onDelta } : {}),
|
|
418
841
|
...(signal ? { signal } : {}),
|
|
419
842
|
});
|
|
@@ -671,8 +1094,20 @@ export class AgentRunner {
|
|
|
671
1094
|
await this.bus.emit({ type: 'tool.completed', sessionId: session.id, result });
|
|
672
1095
|
return result;
|
|
673
1096
|
};
|
|
1097
|
+
// Gate 2 of two for skill.read, independent of gate 1 on purpose: this
|
|
1098
|
+
// path also serves providers hosting their own loop, and a model can
|
|
1099
|
+
// call the reader by name without it having been advertised. The
|
|
1100
|
+
// exemption keys on the same fact — the agent has a skill enabled — so
|
|
1101
|
+
// the reader is never a tool the agent can see, is told to use, and is
|
|
1102
|
+
// refused when it uses. Which skill may then be read is the `skills:`
|
|
1103
|
+
// allowlist, enforced inside the tool itself.
|
|
674
1104
|
const allowedTools = this.allowedToolsFor(session);
|
|
675
|
-
if (
|
|
1105
|
+
if (call.toolName === SKILL_READ_TOOL_NAME) {
|
|
1106
|
+
if (this.enabledSkillsFor(session).length === 0) {
|
|
1107
|
+
return rejected(`Tool not permitted for agent ${session.agent.id}: ${call.toolName} (no skills enabled)`);
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
else if (allowedTools !== undefined && !matchesToolAllowlist(call.toolName, allowedTools)) {
|
|
676
1111
|
return rejected(`Tool not permitted for agent ${session.agent.id}: ${call.toolName}`);
|
|
677
1112
|
}
|
|
678
1113
|
// Resolved before the policy is asked, not after: a policy classifies
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|