@bradygaster/squad-sdk 0.7.0 → 0.8.2
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/README.md +296 -296
- package/dist/adapter/client.d.ts +243 -0
- package/dist/adapter/client.d.ts.map +1 -0
- package/dist/adapter/client.js +567 -0
- package/dist/adapter/client.js.map +1 -0
- package/dist/adapter/errors.d.ts +260 -0
- package/dist/adapter/errors.d.ts.map +1 -0
- package/dist/adapter/errors.js +362 -0
- package/dist/adapter/errors.js.map +1 -0
- package/dist/adapter/types.d.ts +779 -0
- package/dist/adapter/types.d.ts.map +1 -0
- package/dist/adapter/types.js +11 -0
- package/dist/adapter/types.js.map +1 -0
- package/dist/agents/charter-compiler.d.ts +102 -0
- package/dist/agents/charter-compiler.d.ts.map +1 -0
- package/dist/agents/charter-compiler.js +157 -0
- package/dist/agents/charter-compiler.js.map +1 -0
- package/dist/agents/history-shadow.d.ts +80 -0
- package/dist/agents/history-shadow.d.ts.map +1 -0
- package/dist/agents/history-shadow.js +239 -0
- package/dist/agents/history-shadow.js.map +1 -0
- package/dist/agents/index.d.ts +71 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +183 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/lifecycle.d.ts +138 -0
- package/dist/agents/lifecycle.d.ts.map +1 -0
- package/dist/agents/lifecycle.js +284 -0
- package/dist/agents/lifecycle.js.map +1 -0
- package/dist/agents/model-selector.d.ts +80 -0
- package/dist/agents/model-selector.d.ts.map +1 -0
- package/dist/agents/model-selector.js +171 -0
- package/dist/agents/model-selector.js.map +1 -0
- package/dist/agents/onboarding.d.ts +65 -0
- package/dist/agents/onboarding.d.ts.map +1 -0
- package/dist/agents/onboarding.js +373 -0
- package/dist/agents/onboarding.js.map +1 -0
- package/dist/build/bundle.d.ts +32 -0
- package/dist/build/bundle.d.ts.map +1 -0
- package/dist/build/bundle.js +97 -0
- package/dist/build/bundle.js.map +1 -0
- package/dist/build/ci-pipeline.d.ts +51 -0
- package/dist/build/ci-pipeline.d.ts.map +1 -0
- package/dist/build/ci-pipeline.js +180 -0
- package/dist/build/ci-pipeline.js.map +1 -0
- package/dist/build/github-dist.d.ts +37 -0
- package/dist/build/github-dist.d.ts.map +1 -0
- package/dist/build/github-dist.js +117 -0
- package/dist/build/github-dist.js.map +1 -0
- package/dist/build/index.d.ts +11 -0
- package/dist/build/index.d.ts.map +1 -0
- package/dist/build/index.js +11 -0
- package/dist/build/index.js.map +1 -0
- package/dist/build/install-migration.d.ts +28 -0
- package/dist/build/install-migration.d.ts.map +1 -0
- package/dist/build/install-migration.js +103 -0
- package/dist/build/install-migration.js.map +1 -0
- package/dist/build/npm-package.d.ts +54 -0
- package/dist/build/npm-package.d.ts.map +1 -0
- package/dist/build/npm-package.js +128 -0
- package/dist/build/npm-package.js.map +1 -0
- package/dist/build/release.d.ts +108 -0
- package/dist/build/release.d.ts.map +1 -0
- package/dist/build/release.js +295 -0
- package/dist/build/release.js.map +1 -0
- package/dist/build/versioning.d.ts +38 -0
- package/dist/build/versioning.d.ts.map +1 -0
- package/dist/build/versioning.js +113 -0
- package/dist/build/versioning.js.map +1 -0
- package/dist/casting/casting-engine.d.ts +60 -0
- package/dist/casting/casting-engine.d.ts.map +1 -0
- package/dist/casting/casting-engine.js +223 -0
- package/dist/casting/casting-engine.js.map +1 -0
- package/dist/casting/casting-history.d.ts +54 -0
- package/dist/casting/casting-history.d.ts.map +1 -0
- package/dist/casting/casting-history.js +63 -0
- package/dist/casting/casting-history.js.map +1 -0
- package/dist/casting/index.d.ts +46 -0
- package/dist/casting/index.d.ts.map +1 -0
- package/dist/casting/index.js +45 -0
- package/dist/casting/index.js.map +1 -0
- package/dist/client/event-bus.d.ts +29 -0
- package/dist/client/event-bus.d.ts.map +1 -0
- package/dist/client/event-bus.js +52 -0
- package/dist/client/event-bus.js.map +1 -0
- package/dist/client/index.d.ts +100 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +170 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/session-pool.d.ts +66 -0
- package/dist/client/session-pool.d.ts.map +1 -0
- package/dist/client/session-pool.js +145 -0
- package/dist/client/session-pool.js.map +1 -0
- package/dist/config/agent-doc.d.ts +43 -0
- package/dist/config/agent-doc.d.ts.map +1 -0
- package/dist/config/agent-doc.js +158 -0
- package/dist/config/agent-doc.js.map +1 -0
- package/dist/config/agent-source.d.ts +95 -0
- package/dist/config/agent-source.d.ts.map +1 -0
- package/dist/config/agent-source.js +274 -0
- package/dist/config/agent-source.js.map +1 -0
- package/dist/config/doc-sync.d.ts +66 -0
- package/dist/config/doc-sync.d.ts.map +1 -0
- package/dist/config/doc-sync.js +270 -0
- package/dist/config/doc-sync.js.map +1 -0
- package/dist/config/feature-audit.d.ts +49 -0
- package/dist/config/feature-audit.d.ts.map +1 -0
- package/dist/config/feature-audit.js +148 -0
- package/dist/config/feature-audit.js.map +1 -0
- package/dist/config/index.d.ts +15 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +15 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/init.d.ts +61 -0
- package/dist/config/init.d.ts.map +1 -0
- package/dist/config/init.js +376 -0
- package/dist/config/init.js.map +1 -0
- package/dist/config/legacy-fallback.d.ts +83 -0
- package/dist/config/legacy-fallback.d.ts.map +1 -0
- package/dist/config/legacy-fallback.js +212 -0
- package/dist/config/legacy-fallback.js.map +1 -0
- package/dist/config/markdown-migration.d.ts +157 -0
- package/dist/config/markdown-migration.d.ts.map +1 -0
- package/dist/config/markdown-migration.js +434 -0
- package/dist/config/markdown-migration.js.map +1 -0
- package/dist/config/migration.d.ts +123 -0
- package/dist/config/migration.d.ts.map +1 -0
- package/dist/config/migration.js +273 -0
- package/dist/config/migration.js.map +1 -0
- package/dist/config/migrations/index.d.ts +36 -0
- package/dist/config/migrations/index.d.ts.map +1 -0
- package/dist/config/migrations/index.js +216 -0
- package/dist/config/migrations/index.js.map +1 -0
- package/dist/config/models.d.ts +134 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +354 -0
- package/dist/config/models.js.map +1 -0
- package/dist/config/routing.d.ts +118 -0
- package/dist/config/routing.d.ts.map +1 -0
- package/dist/config/routing.js +247 -0
- package/dist/config/routing.js.map +1 -0
- package/dist/config/schema.d.ts +72 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +63 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/coordinator/coordinator.d.ts +82 -0
- package/dist/coordinator/coordinator.d.ts.map +1 -0
- package/dist/coordinator/coordinator.js +192 -0
- package/dist/coordinator/coordinator.js.map +1 -0
- package/dist/coordinator/direct-response.d.ts +83 -0
- package/dist/coordinator/direct-response.d.ts.map +1 -0
- package/dist/coordinator/direct-response.js +187 -0
- package/dist/coordinator/direct-response.js.map +1 -0
- package/dist/coordinator/fan-out.d.ts +83 -0
- package/dist/coordinator/fan-out.d.ts.map +1 -0
- package/dist/coordinator/fan-out.js +161 -0
- package/dist/coordinator/fan-out.js.map +1 -0
- package/dist/coordinator/index.d.ts +62 -0
- package/dist/coordinator/index.d.ts.map +1 -0
- package/dist/coordinator/index.js +171 -0
- package/dist/coordinator/index.js.map +1 -0
- package/dist/coordinator/response-tiers.d.ts +49 -0
- package/dist/coordinator/response-tiers.d.ts.map +1 -0
- package/dist/coordinator/response-tiers.js +149 -0
- package/dist/coordinator/response-tiers.js.map +1 -0
- package/dist/hooks/index.d.ts +103 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +279 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +33 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -3
- package/dist/index.js.map +1 -1
- package/dist/marketplace/backend.d.ts +35 -0
- package/dist/marketplace/backend.d.ts.map +1 -0
- package/dist/marketplace/backend.js +99 -0
- package/dist/marketplace/backend.js.map +1 -0
- package/dist/marketplace/browser.d.ts +33 -0
- package/dist/marketplace/browser.d.ts.map +1 -0
- package/dist/marketplace/browser.js +97 -0
- package/dist/marketplace/browser.js.map +1 -0
- package/dist/marketplace/extension-adapter.d.ts +51 -0
- package/dist/marketplace/extension-adapter.d.ts.map +1 -0
- package/dist/marketplace/extension-adapter.js +81 -0
- package/dist/marketplace/extension-adapter.js.map +1 -0
- package/dist/marketplace/index.d.ts +51 -0
- package/dist/marketplace/index.d.ts.map +1 -0
- package/dist/marketplace/index.js +108 -0
- package/dist/marketplace/index.js.map +1 -0
- package/dist/marketplace/packaging.d.ts +25 -0
- package/dist/marketplace/packaging.d.ts.map +1 -0
- package/dist/marketplace/packaging.js +117 -0
- package/dist/marketplace/packaging.js.map +1 -0
- package/dist/marketplace/schema.d.ts +50 -0
- package/dist/marketplace/schema.d.ts.map +1 -0
- package/dist/marketplace/schema.js +120 -0
- package/dist/marketplace/schema.js.map +1 -0
- package/dist/marketplace/security.d.ts +26 -0
- package/dist/marketplace/security.d.ts.map +1 -0
- package/dist/marketplace/security.js +199 -0
- package/dist/marketplace/security.js.map +1 -0
- package/dist/parsers.d.ts +15 -0
- package/dist/parsers.d.ts.map +1 -0
- package/dist/parsers.js +15 -0
- package/dist/parsers.js.map +1 -0
- package/dist/ralph/index.d.ts +58 -0
- package/dist/ralph/index.d.ts.map +1 -0
- package/dist/ralph/index.js +128 -0
- package/dist/ralph/index.js.map +1 -0
- package/dist/resolution.d.ts +47 -0
- package/dist/resolution.d.ts.map +1 -0
- package/dist/resolution.js +106 -0
- package/dist/resolution.js.map +1 -0
- package/dist/runtime/benchmarks.d.ts +121 -0
- package/dist/runtime/benchmarks.d.ts.map +1 -0
- package/dist/runtime/benchmarks.js +251 -0
- package/dist/runtime/benchmarks.js.map +1 -0
- package/dist/runtime/config.d.ts +314 -0
- package/dist/runtime/config.d.ts.map +1 -0
- package/dist/runtime/config.js +467 -0
- package/dist/runtime/config.js.map +1 -0
- package/dist/runtime/constants.d.ts +35 -0
- package/dist/runtime/constants.d.ts.map +1 -0
- package/dist/runtime/constants.js +58 -0
- package/dist/runtime/constants.js.map +1 -0
- package/dist/runtime/cost-tracker.d.ts +73 -0
- package/dist/runtime/cost-tracker.d.ts.map +1 -0
- package/dist/runtime/cost-tracker.js +157 -0
- package/dist/runtime/cost-tracker.js.map +1 -0
- package/dist/runtime/event-bus-otel-bridge.d.ts +19 -0
- package/dist/runtime/event-bus-otel-bridge.d.ts.map +1 -0
- package/dist/runtime/event-bus-otel-bridge.js +61 -0
- package/dist/runtime/event-bus-otel-bridge.js.map +1 -0
- package/dist/runtime/event-bus-ws-bridge.d.ts +35 -0
- package/dist/runtime/event-bus-ws-bridge.d.ts.map +1 -0
- package/dist/runtime/event-bus-ws-bridge.js +55 -0
- package/dist/runtime/event-bus-ws-bridge.js.map +1 -0
- package/dist/runtime/event-bus.d.ts +190 -0
- package/dist/runtime/event-bus.d.ts.map +1 -0
- package/dist/runtime/event-bus.js +218 -0
- package/dist/runtime/event-bus.js.map +1 -0
- package/dist/runtime/event-payloads.d.ts +108 -0
- package/dist/runtime/event-payloads.d.ts.map +1 -0
- package/dist/runtime/event-payloads.js +28 -0
- package/dist/runtime/event-payloads.js.map +1 -0
- package/dist/runtime/health.d.ts +66 -0
- package/dist/runtime/health.d.ts.map +1 -0
- package/dist/runtime/health.js +112 -0
- package/dist/runtime/health.js.map +1 -0
- package/dist/runtime/i18n.d.ts +54 -0
- package/dist/runtime/i18n.d.ts.map +1 -0
- package/dist/runtime/i18n.js +126 -0
- package/dist/runtime/i18n.js.map +1 -0
- package/dist/runtime/offline.d.ts +64 -0
- package/dist/runtime/offline.d.ts.map +1 -0
- package/dist/runtime/offline.js +108 -0
- package/dist/runtime/offline.js.map +1 -0
- package/dist/runtime/otel-bridge.d.ts +52 -0
- package/dist/runtime/otel-bridge.d.ts.map +1 -0
- package/dist/runtime/otel-bridge.js +132 -0
- package/dist/runtime/otel-bridge.js.map +1 -0
- package/dist/runtime/otel-init.d.ts +72 -0
- package/dist/runtime/otel-init.d.ts.map +1 -0
- package/dist/runtime/otel-init.js +68 -0
- package/dist/runtime/otel-init.js.map +1 -0
- package/dist/runtime/otel-metrics.d.ts +42 -0
- package/dist/runtime/otel-metrics.d.ts.map +1 -0
- package/dist/runtime/otel-metrics.js +196 -0
- package/dist/runtime/otel-metrics.js.map +1 -0
- package/dist/runtime/otel.d.ts +53 -0
- package/dist/runtime/otel.d.ts.map +1 -0
- package/dist/runtime/otel.js +127 -0
- package/dist/runtime/otel.js.map +1 -0
- package/dist/runtime/squad-observer.d.ts +75 -0
- package/dist/runtime/squad-observer.d.ts.map +1 -0
- package/dist/runtime/squad-observer.js +190 -0
- package/dist/runtime/squad-observer.js.map +1 -0
- package/dist/runtime/streaming.d.ts +106 -0
- package/dist/runtime/streaming.d.ts.map +1 -0
- package/dist/runtime/streaming.js +192 -0
- package/dist/runtime/streaming.js.map +1 -0
- package/dist/runtime/telemetry.d.ts +82 -0
- package/dist/runtime/telemetry.d.ts.map +1 -0
- package/dist/runtime/telemetry.js +120 -0
- package/dist/runtime/telemetry.js.map +1 -0
- package/dist/sharing/agent-repo.d.ts +33 -0
- package/dist/sharing/agent-repo.d.ts.map +1 -0
- package/dist/sharing/agent-repo.js +79 -0
- package/dist/sharing/agent-repo.js.map +1 -0
- package/dist/sharing/cache.d.ts +36 -0
- package/dist/sharing/cache.d.ts.map +1 -0
- package/dist/sharing/cache.js +85 -0
- package/dist/sharing/cache.js.map +1 -0
- package/dist/sharing/conflicts.d.ts +32 -0
- package/dist/sharing/conflicts.d.ts.map +1 -0
- package/dist/sharing/conflicts.js +121 -0
- package/dist/sharing/conflicts.js.map +1 -0
- package/dist/sharing/export.d.ts +50 -0
- package/dist/sharing/export.d.ts.map +1 -0
- package/dist/sharing/export.js +156 -0
- package/dist/sharing/export.js.map +1 -0
- package/dist/sharing/history-split.d.ts +34 -0
- package/dist/sharing/history-split.d.ts.map +1 -0
- package/dist/sharing/history-split.js +101 -0
- package/dist/sharing/history-split.js.map +1 -0
- package/dist/sharing/import.d.ts +37 -0
- package/dist/sharing/import.d.ts.map +1 -0
- package/dist/sharing/import.js +138 -0
- package/dist/sharing/import.js.map +1 -0
- package/dist/sharing/index.d.ts +11 -0
- package/dist/sharing/index.d.ts.map +1 -0
- package/dist/sharing/index.js +11 -0
- package/dist/sharing/index.js.map +1 -0
- package/dist/sharing/versioning.d.ts +32 -0
- package/dist/sharing/versioning.d.ts.map +1 -0
- package/dist/sharing/versioning.js +64 -0
- package/dist/sharing/versioning.js.map +1 -0
- package/dist/skills/index.d.ts +49 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +85 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/skill-loader.d.ts +56 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-loader.js +106 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/skills/skill-source.d.ts +63 -0
- package/dist/skills/skill-source.d.ts.map +1 -0
- package/dist/skills/skill-source.js +199 -0
- package/dist/skills/skill-source.js.map +1 -0
- package/dist/tools/index.d.ts +95 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +475 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types.d.ts +43 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/upstream/index.d.ts +8 -0
- package/dist/upstream/index.d.ts.map +1 -0
- package/dist/upstream/index.js +7 -0
- package/dist/upstream/index.js.map +1 -0
- package/dist/upstream/resolver.d.ts +37 -0
- package/dist/upstream/resolver.d.ts.map +1 -0
- package/dist/upstream/resolver.js +234 -0
- package/dist/upstream/resolver.js.map +1 -0
- package/dist/upstream/types.d.ts +55 -0
- package/dist/upstream/types.d.ts.map +1 -0
- package/dist/upstream/types.js +11 -0
- package/dist/upstream/types.js.map +1 -0
- package/dist/utils/normalize-eol.d.ts +6 -0
- package/dist/utils/normalize-eol.d.ts.map +1 -0
- package/dist/utils/normalize-eol.js +8 -0
- package/dist/utils/normalize-eol.js.map +1 -0
- package/package.json +197 -63
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Registry — Custom Tools API (PRD 2)
|
|
3
|
+
*
|
|
4
|
+
* Defines Squad's custom tools registered with the SDK via defineTool().
|
|
5
|
+
* Tools provide agents with typed, validated orchestration primitives:
|
|
6
|
+
* - squad_route: Route work to another agent via session pool
|
|
7
|
+
* - squad_decide: Write a typed decision to the inbox drop-box
|
|
8
|
+
* - squad_memory: Append to agent history (learnings, updates)
|
|
9
|
+
* - squad_status: Query session pool state
|
|
10
|
+
* - squad_skill: Read/write agent skills
|
|
11
|
+
*/
|
|
12
|
+
import type { SquadTool, SquadToolResult } from '../adapter/types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Sanitize tool arguments for OTel span attributes.
|
|
15
|
+
* Strips any field whose name matches sensitive patterns (case-insensitive).
|
|
16
|
+
* Returns JSON string truncated to 1024 chars.
|
|
17
|
+
*/
|
|
18
|
+
export declare function sanitizeArgs(args: unknown): string;
|
|
19
|
+
export interface ToolResult {
|
|
20
|
+
success: boolean;
|
|
21
|
+
message: string;
|
|
22
|
+
data?: unknown;
|
|
23
|
+
}
|
|
24
|
+
export interface RouteRequest {
|
|
25
|
+
/** Target agent name */
|
|
26
|
+
targetAgent: string;
|
|
27
|
+
/** Task description for the target agent */
|
|
28
|
+
task: string;
|
|
29
|
+
/** Priority level */
|
|
30
|
+
priority?: 'low' | 'normal' | 'high' | 'critical';
|
|
31
|
+
/** Context to pass to the target session */
|
|
32
|
+
context?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface DecisionRecord {
|
|
35
|
+
/** Decision author (agent name) */
|
|
36
|
+
author: string;
|
|
37
|
+
/** Decision summary */
|
|
38
|
+
summary: string;
|
|
39
|
+
/** Full decision body */
|
|
40
|
+
body: string;
|
|
41
|
+
/** Related agents or PRDs */
|
|
42
|
+
references?: string[];
|
|
43
|
+
}
|
|
44
|
+
export interface MemoryEntry {
|
|
45
|
+
/** Agent name */
|
|
46
|
+
agent: string;
|
|
47
|
+
/** Section to append to (learnings, updates, sessions) */
|
|
48
|
+
section: 'learnings' | 'updates' | 'sessions';
|
|
49
|
+
/** Content to append */
|
|
50
|
+
content: string;
|
|
51
|
+
}
|
|
52
|
+
export interface StatusQuery {
|
|
53
|
+
/** Filter by agent name */
|
|
54
|
+
agentName?: string;
|
|
55
|
+
/** Filter by session status */
|
|
56
|
+
status?: string;
|
|
57
|
+
/** Include detailed session metadata */
|
|
58
|
+
verbose?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface SkillRequest {
|
|
61
|
+
/** Skill name (maps to .squad/skills/{name}/SKILL.md) */
|
|
62
|
+
skillName: string;
|
|
63
|
+
/** Operation: read the skill or write/update it */
|
|
64
|
+
operation: 'read' | 'write';
|
|
65
|
+
/** Skill content (required for write) */
|
|
66
|
+
content?: string;
|
|
67
|
+
/** Confidence level (required for write) */
|
|
68
|
+
confidence?: 'low' | 'medium' | 'high';
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Define a typed Squad tool with JSON schema parameters.
|
|
72
|
+
* Creates a SquadTool object compatible with the adapter layer.
|
|
73
|
+
*/
|
|
74
|
+
export declare function defineTool<TArgs = unknown>(config: {
|
|
75
|
+
name: string;
|
|
76
|
+
description: string;
|
|
77
|
+
parameters: Record<string, unknown>;
|
|
78
|
+
handler: (args: TArgs) => Promise<SquadToolResult> | SquadToolResult;
|
|
79
|
+
/** Optional agent name for span attribution */
|
|
80
|
+
agentName?: string;
|
|
81
|
+
}): SquadTool<TArgs>;
|
|
82
|
+
export declare class ToolRegistry {
|
|
83
|
+
private tools;
|
|
84
|
+
private squadRoot;
|
|
85
|
+
private sessionPoolGetter?;
|
|
86
|
+
constructor(squadRoot?: string, sessionPoolGetter?: () => any);
|
|
87
|
+
private registerSquadTools;
|
|
88
|
+
/** Get all registered tools for session config */
|
|
89
|
+
getTools(): SquadTool<any>[];
|
|
90
|
+
/** Get tools filtered by agent's allowed tool list */
|
|
91
|
+
getToolsForAgent(allowedTools?: string[]): SquadTool<any>[];
|
|
92
|
+
/** Get a specific tool by name */
|
|
93
|
+
getTool(name: string): SquadTool<any> | undefined;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAUtE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CASlD;AAID,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAC9C,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACxC;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;IACrE,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,SAAS,CAAC,KAAK,CAAC,CA2CnB;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,iBAAiB,CAAC,CAAY;gBAE1B,SAAS,SAAW,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG;IAM/D,OAAO,CAAC,kBAAkB;IA4Y1B,kDAAkD;IAClD,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;IAI5B,sDAAsD;IACtD,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE;IAO3D,kCAAkC;IAClC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS;CAGlD"}
|
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Registry — Custom Tools API (PRD 2)
|
|
3
|
+
*
|
|
4
|
+
* Defines Squad's custom tools registered with the SDK via defineTool().
|
|
5
|
+
* Tools provide agents with typed, validated orchestration primitives:
|
|
6
|
+
* - squad_route: Route work to another agent via session pool
|
|
7
|
+
* - squad_decide: Write a typed decision to the inbox drop-box
|
|
8
|
+
* - squad_memory: Append to agent history (learnings, updates)
|
|
9
|
+
* - squad_status: Query session pool state
|
|
10
|
+
* - squad_skill: Read/write agent skills
|
|
11
|
+
*/
|
|
12
|
+
import * as fs from 'node:fs';
|
|
13
|
+
import * as path from 'node:path';
|
|
14
|
+
import { randomUUID } from 'node:crypto';
|
|
15
|
+
import { trace, SpanStatusCode } from '@opentelemetry/api';
|
|
16
|
+
const tracer = trace.getTracer('squad-sdk');
|
|
17
|
+
// --- Argument Sanitization ---
|
|
18
|
+
/** Sensitive field patterns — strip before recording as span attributes. */
|
|
19
|
+
const SENSITIVE_PATTERNS = /token|secret|password|key|auth/i;
|
|
20
|
+
/**
|
|
21
|
+
* Sanitize tool arguments for OTel span attributes.
|
|
22
|
+
* Strips any field whose name matches sensitive patterns (case-insensitive).
|
|
23
|
+
* Returns JSON string truncated to 1024 chars.
|
|
24
|
+
*/
|
|
25
|
+
export function sanitizeArgs(args) {
|
|
26
|
+
if (args == null || typeof args !== 'object') {
|
|
27
|
+
return JSON.stringify(args ?? null).slice(0, 1024);
|
|
28
|
+
}
|
|
29
|
+
const sanitized = {};
|
|
30
|
+
for (const [k, v] of Object.entries(args)) {
|
|
31
|
+
sanitized[k] = SENSITIVE_PATTERNS.test(k) ? '[REDACTED]' : v;
|
|
32
|
+
}
|
|
33
|
+
return JSON.stringify(sanitized).slice(0, 1024);
|
|
34
|
+
}
|
|
35
|
+
// --- Tool Definition Helper ---
|
|
36
|
+
/**
|
|
37
|
+
* Define a typed Squad tool with JSON schema parameters.
|
|
38
|
+
* Creates a SquadTool object compatible with the adapter layer.
|
|
39
|
+
*/
|
|
40
|
+
export function defineTool(config) {
|
|
41
|
+
return {
|
|
42
|
+
name: config.name,
|
|
43
|
+
description: config.description,
|
|
44
|
+
parameters: config.parameters,
|
|
45
|
+
// TODO: Parent span context propagation — tool spans should be children of
|
|
46
|
+
// agent.work spans once the agent work span lifecycle is complete.
|
|
47
|
+
handler: async (args) => {
|
|
48
|
+
const span = tracer.startSpan('squad.tool.call', {
|
|
49
|
+
attributes: {
|
|
50
|
+
'tool.name': config.name,
|
|
51
|
+
...(config.agentName ? { 'agent.name': config.agentName } : {}),
|
|
52
|
+
'tool.args': sanitizeArgs(args),
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
const startTime = Date.now();
|
|
56
|
+
try {
|
|
57
|
+
const result = await config.handler(args);
|
|
58
|
+
const durationMs = Date.now() - startTime;
|
|
59
|
+
const resultType = typeof result === 'string' ? 'unknown' : (result.resultType ?? 'unknown');
|
|
60
|
+
const resultText = typeof result === 'string' ? result : (result.textResultForLlm ?? '');
|
|
61
|
+
span.addEvent('squad.tool.result', {
|
|
62
|
+
'result.type': resultType,
|
|
63
|
+
'result.length': resultText.length,
|
|
64
|
+
'duration_ms': durationMs,
|
|
65
|
+
'success': resultType !== 'failure',
|
|
66
|
+
});
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
const durationMs = Date.now() - startTime;
|
|
71
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });
|
|
72
|
+
span.addEvent('squad.tool.error', {
|
|
73
|
+
'error.type': err instanceof Error ? err.constructor.name : 'unknown',
|
|
74
|
+
'error.message': err instanceof Error ? err.message : String(err),
|
|
75
|
+
'duration_ms': durationMs,
|
|
76
|
+
});
|
|
77
|
+
span.recordException(err instanceof Error ? err : new Error(String(err)));
|
|
78
|
+
throw err;
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
span.end();
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// --- Tool Registry ---
|
|
87
|
+
export class ToolRegistry {
|
|
88
|
+
tools = new Map();
|
|
89
|
+
squadRoot;
|
|
90
|
+
sessionPoolGetter;
|
|
91
|
+
constructor(squadRoot = '.squad', sessionPoolGetter) {
|
|
92
|
+
this.squadRoot = squadRoot;
|
|
93
|
+
this.sessionPoolGetter = sessionPoolGetter;
|
|
94
|
+
this.registerSquadTools();
|
|
95
|
+
}
|
|
96
|
+
registerSquadTools() {
|
|
97
|
+
// squad_route: Route work to another agent
|
|
98
|
+
const squadRoute = defineTool({
|
|
99
|
+
name: 'squad_route',
|
|
100
|
+
description: 'Route a task to another agent in the squad. Creates a new session for the target agent with the specified task and context.',
|
|
101
|
+
parameters: {
|
|
102
|
+
type: 'object',
|
|
103
|
+
properties: {
|
|
104
|
+
targetAgent: {
|
|
105
|
+
type: 'string',
|
|
106
|
+
description: 'Name of the agent to route the task to',
|
|
107
|
+
},
|
|
108
|
+
task: {
|
|
109
|
+
type: 'string',
|
|
110
|
+
description: 'Description of the task for the target agent',
|
|
111
|
+
},
|
|
112
|
+
priority: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
enum: ['low', 'normal', 'high', 'critical'],
|
|
115
|
+
description: 'Priority level for the routed task',
|
|
116
|
+
default: 'normal',
|
|
117
|
+
},
|
|
118
|
+
context: {
|
|
119
|
+
type: 'string',
|
|
120
|
+
description: 'Additional context to pass to the target session',
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
required: ['targetAgent', 'task'],
|
|
124
|
+
},
|
|
125
|
+
handler: async (args) => {
|
|
126
|
+
// Validate target agent exists (stub for now, will check roster later)
|
|
127
|
+
if (!args.targetAgent || args.targetAgent.trim() === '') {
|
|
128
|
+
return {
|
|
129
|
+
textResultForLlm: 'Error: Target agent name is required',
|
|
130
|
+
resultType: 'failure',
|
|
131
|
+
error: 'Invalid target agent',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
// Create route request (session creation wired later)
|
|
135
|
+
const routeRequest = {
|
|
136
|
+
targetAgent: args.targetAgent,
|
|
137
|
+
task: args.task,
|
|
138
|
+
priority: args.priority || 'normal',
|
|
139
|
+
context: args.context,
|
|
140
|
+
};
|
|
141
|
+
return {
|
|
142
|
+
textResultForLlm: `Task routed to ${args.targetAgent}. Priority: ${routeRequest.priority}. Session creation will be implemented when session lifecycle is in place.`,
|
|
143
|
+
resultType: 'success',
|
|
144
|
+
toolTelemetry: { routeRequest },
|
|
145
|
+
};
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
// squad_decide: Write a decision to the inbox
|
|
149
|
+
const squadDecide = defineTool({
|
|
150
|
+
name: 'squad_decide',
|
|
151
|
+
description: 'Write a decision to the team decision inbox. Decisions are stored in .squad/decisions/inbox/ for team review.',
|
|
152
|
+
parameters: {
|
|
153
|
+
type: 'object',
|
|
154
|
+
properties: {
|
|
155
|
+
author: {
|
|
156
|
+
type: 'string',
|
|
157
|
+
description: 'Agent name making the decision',
|
|
158
|
+
},
|
|
159
|
+
summary: {
|
|
160
|
+
type: 'string',
|
|
161
|
+
description: 'Brief summary of the decision',
|
|
162
|
+
},
|
|
163
|
+
body: {
|
|
164
|
+
type: 'string',
|
|
165
|
+
description: 'Full decision details and rationale',
|
|
166
|
+
},
|
|
167
|
+
references: {
|
|
168
|
+
type: 'array',
|
|
169
|
+
items: { type: 'string' },
|
|
170
|
+
description: 'Related agents, PRDs, or issues',
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
required: ['author', 'summary', 'body'],
|
|
174
|
+
},
|
|
175
|
+
handler: async (args) => {
|
|
176
|
+
try {
|
|
177
|
+
const inboxDir = path.join(this.squadRoot, 'decisions', 'inbox');
|
|
178
|
+
fs.mkdirSync(inboxDir, { recursive: true });
|
|
179
|
+
const decisionId = randomUUID();
|
|
180
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
|
181
|
+
const slug = args.summary
|
|
182
|
+
.toLowerCase()
|
|
183
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
184
|
+
.replace(/^-|-$/g, '')
|
|
185
|
+
.slice(0, 50);
|
|
186
|
+
const filename = path.join(inboxDir, `${args.author}-${slug}.md`);
|
|
187
|
+
const content = [
|
|
188
|
+
`### ${timestamp}: ${args.summary}`,
|
|
189
|
+
'',
|
|
190
|
+
`**By:** ${args.author}`,
|
|
191
|
+
`**What:** ${args.body}`,
|
|
192
|
+
args.references && args.references.length > 0
|
|
193
|
+
? `**References:** ${args.references.join(', ')}`
|
|
194
|
+
: '',
|
|
195
|
+
'',
|
|
196
|
+
`**Why:** ${args.body}`,
|
|
197
|
+
'',
|
|
198
|
+
].filter(Boolean).join('\n');
|
|
199
|
+
fs.writeFileSync(filename, content, 'utf-8');
|
|
200
|
+
return {
|
|
201
|
+
textResultForLlm: `Decision written to ${filename} (ID: ${decisionId})`,
|
|
202
|
+
resultType: 'success',
|
|
203
|
+
toolTelemetry: { decisionId, filename, slug },
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
return {
|
|
208
|
+
textResultForLlm: `Failed to write decision: ${error}`,
|
|
209
|
+
resultType: 'failure',
|
|
210
|
+
error: String(error),
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
// squad_memory: Append to agent history
|
|
216
|
+
const squadMemory = defineTool({
|
|
217
|
+
name: 'squad_memory',
|
|
218
|
+
description: 'Append an entry to an agent\'s history file. Used to record learnings, updates, or session notes.',
|
|
219
|
+
parameters: {
|
|
220
|
+
type: 'object',
|
|
221
|
+
properties: {
|
|
222
|
+
agent: {
|
|
223
|
+
type: 'string',
|
|
224
|
+
description: 'Agent name whose history to update',
|
|
225
|
+
},
|
|
226
|
+
section: {
|
|
227
|
+
type: 'string',
|
|
228
|
+
enum: ['learnings', 'updates', 'sessions'],
|
|
229
|
+
description: 'Section to append to',
|
|
230
|
+
},
|
|
231
|
+
content: {
|
|
232
|
+
type: 'string',
|
|
233
|
+
description: 'Content to append to the section',
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
required: ['agent', 'section', 'content'],
|
|
237
|
+
},
|
|
238
|
+
handler: async (args) => {
|
|
239
|
+
try {
|
|
240
|
+
const historyFile = path.join(this.squadRoot, 'agents', args.agent, 'history.md');
|
|
241
|
+
if (!fs.existsSync(historyFile)) {
|
|
242
|
+
return {
|
|
243
|
+
textResultForLlm: `Agent history file not found: ${historyFile}`,
|
|
244
|
+
resultType: 'failure',
|
|
245
|
+
error: 'History file does not exist',
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
const sectionHeader = `## ${args.section.charAt(0).toUpperCase() + args.section.slice(1)}`;
|
|
249
|
+
const timestamp = new Date().toISOString();
|
|
250
|
+
const entry = `\n### ${timestamp}\n${args.content}\n`;
|
|
251
|
+
let content = fs.readFileSync(historyFile, 'utf-8');
|
|
252
|
+
// Find section and append
|
|
253
|
+
const sectionIndex = content.indexOf(sectionHeader);
|
|
254
|
+
if (sectionIndex !== -1) {
|
|
255
|
+
// Find next section or end of file
|
|
256
|
+
const nextSectionIndex = content.indexOf('\n## ', sectionIndex + sectionHeader.length);
|
|
257
|
+
const insertIndex = nextSectionIndex === -1 ? content.length : nextSectionIndex;
|
|
258
|
+
content = content.slice(0, insertIndex) + entry + content.slice(insertIndex);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
// Section doesn't exist, append at end
|
|
262
|
+
content += `\n${sectionHeader}\n${entry}`;
|
|
263
|
+
}
|
|
264
|
+
fs.writeFileSync(historyFile, content, 'utf-8');
|
|
265
|
+
return {
|
|
266
|
+
textResultForLlm: `Appended to ${args.agent} history (${args.section})`,
|
|
267
|
+
resultType: 'success',
|
|
268
|
+
toolTelemetry: { agent: args.agent, section: args.section },
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
return {
|
|
273
|
+
textResultForLlm: `Failed to update agent memory: ${error}`,
|
|
274
|
+
resultType: 'failure',
|
|
275
|
+
error: String(error),
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
});
|
|
280
|
+
// squad_status: Query session pool state
|
|
281
|
+
const squadStatus = defineTool({
|
|
282
|
+
name: 'squad_status',
|
|
283
|
+
description: 'Query the status of active sessions in the pool. Returns session metadata and current state.',
|
|
284
|
+
parameters: {
|
|
285
|
+
type: 'object',
|
|
286
|
+
properties: {
|
|
287
|
+
agentName: {
|
|
288
|
+
type: 'string',
|
|
289
|
+
description: 'Filter by agent name',
|
|
290
|
+
},
|
|
291
|
+
status: {
|
|
292
|
+
type: 'string',
|
|
293
|
+
description: 'Filter by session status (active, idle, completed)',
|
|
294
|
+
},
|
|
295
|
+
verbose: {
|
|
296
|
+
type: 'boolean',
|
|
297
|
+
description: 'Include detailed session metadata',
|
|
298
|
+
default: false,
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
handler: async (args) => {
|
|
303
|
+
const pool = this.sessionPoolGetter?.();
|
|
304
|
+
if (!pool) {
|
|
305
|
+
return {
|
|
306
|
+
textResultForLlm: 'Session pool not available. Pool size: 0, Active sessions: 0',
|
|
307
|
+
resultType: 'success',
|
|
308
|
+
toolTelemetry: {
|
|
309
|
+
poolAvailable: false,
|
|
310
|
+
totalSessions: 0,
|
|
311
|
+
activeSessions: 0,
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
const allSessions = Array.from(pool.sessions?.values() || []);
|
|
316
|
+
let filteredSessions = allSessions;
|
|
317
|
+
// Apply agent name filter
|
|
318
|
+
if (args.agentName) {
|
|
319
|
+
filteredSessions = filteredSessions.filter((s) => s.agentName === args.agentName);
|
|
320
|
+
}
|
|
321
|
+
// Apply status filter
|
|
322
|
+
if (args.status) {
|
|
323
|
+
filteredSessions = filteredSessions.filter((s) => s.status === args.status);
|
|
324
|
+
}
|
|
325
|
+
const poolInfo = {
|
|
326
|
+
poolSize: pool.size,
|
|
327
|
+
capacity: pool.config?.maxConcurrent || 0,
|
|
328
|
+
atCapacity: pool.atCapacity,
|
|
329
|
+
activeSessions: pool.active().length,
|
|
330
|
+
totalSessions: allSessions.length,
|
|
331
|
+
filteredCount: filteredSessions.length,
|
|
332
|
+
};
|
|
333
|
+
// Build response
|
|
334
|
+
const sessionsByAgent = {};
|
|
335
|
+
const sessionsByStatus = {};
|
|
336
|
+
for (const session of allSessions) {
|
|
337
|
+
const s = session;
|
|
338
|
+
sessionsByAgent[s.agentName] = (sessionsByAgent[s.agentName] || 0) + 1;
|
|
339
|
+
sessionsByStatus[s.status] = (sessionsByStatus[s.status] || 0) + 1;
|
|
340
|
+
}
|
|
341
|
+
let textResult = `Pool status: ${poolInfo.poolSize}/${poolInfo.capacity} sessions (${poolInfo.activeSessions} active)`;
|
|
342
|
+
if (args.agentName || args.status) {
|
|
343
|
+
textResult += `\nFiltered results: ${poolInfo.filteredCount} sessions`;
|
|
344
|
+
}
|
|
345
|
+
if (args.verbose && filteredSessions.length > 0) {
|
|
346
|
+
textResult += '\n\nSessions:';
|
|
347
|
+
for (const session of filteredSessions) {
|
|
348
|
+
const s = session;
|
|
349
|
+
const uptime = s.createdAt ? Math.floor((Date.now() - s.createdAt.getTime()) / 1000) : 0;
|
|
350
|
+
textResult += `\n- ${s.id.slice(0, 8)}: ${s.agentName} (${s.status}, ${uptime}s uptime)`;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
return {
|
|
354
|
+
textResultForLlm: textResult,
|
|
355
|
+
resultType: 'success',
|
|
356
|
+
toolTelemetry: {
|
|
357
|
+
poolInfo,
|
|
358
|
+
sessionsByAgent,
|
|
359
|
+
sessionsByStatus,
|
|
360
|
+
filters: {
|
|
361
|
+
agentName: args.agentName,
|
|
362
|
+
status: args.status,
|
|
363
|
+
verbose: args.verbose || false,
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
};
|
|
367
|
+
},
|
|
368
|
+
});
|
|
369
|
+
// squad_skill: Read/write agent skills
|
|
370
|
+
const squadSkill = defineTool({
|
|
371
|
+
name: 'squad_skill',
|
|
372
|
+
description: 'Read or write agent skill definitions. Skills are stored in .squad/skills/{name}/SKILL.md.',
|
|
373
|
+
parameters: {
|
|
374
|
+
type: 'object',
|
|
375
|
+
properties: {
|
|
376
|
+
skillName: {
|
|
377
|
+
type: 'string',
|
|
378
|
+
description: 'Skill name (maps to directory name)',
|
|
379
|
+
},
|
|
380
|
+
operation: {
|
|
381
|
+
type: 'string',
|
|
382
|
+
enum: ['read', 'write'],
|
|
383
|
+
description: 'Operation to perform',
|
|
384
|
+
},
|
|
385
|
+
content: {
|
|
386
|
+
type: 'string',
|
|
387
|
+
description: 'Skill content (required for write)',
|
|
388
|
+
},
|
|
389
|
+
confidence: {
|
|
390
|
+
type: 'string',
|
|
391
|
+
enum: ['low', 'medium', 'high'],
|
|
392
|
+
description: 'Confidence level (required for write)',
|
|
393
|
+
},
|
|
394
|
+
},
|
|
395
|
+
required: ['skillName', 'operation'],
|
|
396
|
+
},
|
|
397
|
+
handler: async (args) => {
|
|
398
|
+
try {
|
|
399
|
+
const skillDir = path.join(this.squadRoot, 'skills', args.skillName);
|
|
400
|
+
const skillFile = path.join(skillDir, 'SKILL.md');
|
|
401
|
+
if (args.operation === 'read') {
|
|
402
|
+
if (!fs.existsSync(skillFile)) {
|
|
403
|
+
return {
|
|
404
|
+
textResultForLlm: `Skill not found: ${args.skillName}`,
|
|
405
|
+
resultType: 'failure',
|
|
406
|
+
error: 'Skill file does not exist',
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
const content = fs.readFileSync(skillFile, 'utf-8');
|
|
410
|
+
return {
|
|
411
|
+
textResultForLlm: `Skill: ${args.skillName}\n\n${content}`,
|
|
412
|
+
resultType: 'success',
|
|
413
|
+
toolTelemetry: { skillName: args.skillName, operation: 'read' },
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
// write operation
|
|
418
|
+
if (!args.content) {
|
|
419
|
+
return {
|
|
420
|
+
textResultForLlm: 'Error: content is required for write operation',
|
|
421
|
+
resultType: 'failure',
|
|
422
|
+
error: 'Missing required field: content',
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
fs.mkdirSync(skillDir, { recursive: true });
|
|
426
|
+
const skillContent = [
|
|
427
|
+
`# ${args.skillName}`,
|
|
428
|
+
'',
|
|
429
|
+
`**Confidence:** ${args.confidence || 'medium'}`,
|
|
430
|
+
`**Updated:** ${new Date().toISOString()}`,
|
|
431
|
+
'',
|
|
432
|
+
args.content,
|
|
433
|
+
].join('\n');
|
|
434
|
+
fs.writeFileSync(skillFile, skillContent, 'utf-8');
|
|
435
|
+
return {
|
|
436
|
+
textResultForLlm: `Skill written: ${args.skillName} (${skillFile})`,
|
|
437
|
+
resultType: 'success',
|
|
438
|
+
toolTelemetry: { skillName: args.skillName, operation: 'write', confidence: args.confidence },
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
catch (error) {
|
|
443
|
+
return {
|
|
444
|
+
textResultForLlm: `Failed to ${args.operation} skill: ${error}`,
|
|
445
|
+
resultType: 'failure',
|
|
446
|
+
error: String(error),
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
},
|
|
450
|
+
});
|
|
451
|
+
// Register all tools
|
|
452
|
+
this.tools.set('squad_route', squadRoute);
|
|
453
|
+
this.tools.set('squad_decide', squadDecide);
|
|
454
|
+
this.tools.set('squad_memory', squadMemory);
|
|
455
|
+
this.tools.set('squad_status', squadStatus);
|
|
456
|
+
this.tools.set('squad_skill', squadSkill);
|
|
457
|
+
}
|
|
458
|
+
/** Get all registered tools for session config */
|
|
459
|
+
getTools() {
|
|
460
|
+
return Array.from(this.tools.values());
|
|
461
|
+
}
|
|
462
|
+
/** Get tools filtered by agent's allowed tool list */
|
|
463
|
+
getToolsForAgent(allowedTools) {
|
|
464
|
+
if (!allowedTools)
|
|
465
|
+
return this.getTools();
|
|
466
|
+
return allowedTools
|
|
467
|
+
.map(name => this.tools.get(name))
|
|
468
|
+
.filter((t) => t != null);
|
|
469
|
+
}
|
|
470
|
+
/** Get a specific tool by name */
|
|
471
|
+
getTool(name) {
|
|
472
|
+
return this.tools.get(name);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types barrel — pure type re-exports, zero runtime code.
|
|
3
|
+
* Use `export type` exclusively to guarantee no runtime imports.
|
|
4
|
+
*
|
|
5
|
+
* @module types
|
|
6
|
+
*/
|
|
7
|
+
export type { ParsedAgent } from './config/markdown-migration.js';
|
|
8
|
+
export type { ParsedRoutingRule } from './config/markdown-migration.js';
|
|
9
|
+
export type { ParsedDecision } from './config/markdown-migration.js';
|
|
10
|
+
export type { MarkdownParseResult } from './config/markdown-migration.js';
|
|
11
|
+
export type { MarkdownMigrationOptions } from './config/markdown-migration.js';
|
|
12
|
+
export type { MarkdownMigrationResult } from './config/markdown-migration.js';
|
|
13
|
+
export type { ParsedCharter } from './agents/charter-compiler.js';
|
|
14
|
+
export type { CharterCompileOptions } from './agents/charter-compiler.js';
|
|
15
|
+
export type { CharterConfigOverrides } from './agents/charter-compiler.js';
|
|
16
|
+
export type { CompiledCharter } from './agents/charter-compiler.js';
|
|
17
|
+
export type { CompiledRouter } from './config/routing.js';
|
|
18
|
+
export type { CompiledWorkTypeRule } from './config/routing.js';
|
|
19
|
+
export type { CompiledIssueRule } from './config/routing.js';
|
|
20
|
+
export type { RoutingMatch } from './config/routing.js';
|
|
21
|
+
export type { SkillDefinition } from './skills/skill-loader.js';
|
|
22
|
+
export type { SquadConfig } from './runtime/config.js';
|
|
23
|
+
export type { RoutingConfig } from './runtime/config.js';
|
|
24
|
+
export type { RoutingRule } from './runtime/config.js';
|
|
25
|
+
export type { IssueRoutingRule } from './runtime/config.js';
|
|
26
|
+
export type { ModelSelectionConfig } from './runtime/config.js';
|
|
27
|
+
export type { ModelTier } from './runtime/config.js';
|
|
28
|
+
export type { ModelId } from './runtime/config.js';
|
|
29
|
+
export type { WorkType } from './runtime/config.js';
|
|
30
|
+
export type { AgentRole } from './runtime/config.js';
|
|
31
|
+
export type { TaskOutputType } from './runtime/config.js';
|
|
32
|
+
export type { TaskToModelRule } from './runtime/config.js';
|
|
33
|
+
export type { RoleToModelMapping } from './runtime/config.js';
|
|
34
|
+
export type { ComplexityAdjustment } from './runtime/config.js';
|
|
35
|
+
export type { CastingPolicy } from './runtime/config.js';
|
|
36
|
+
export type { AgentSourceConfig } from './runtime/config.js';
|
|
37
|
+
export type { PlatformOverrides } from './runtime/config.js';
|
|
38
|
+
export type { CopilotCapabilityEvaluation } from './runtime/config.js';
|
|
39
|
+
export type { ConfigLoadResult } from './runtime/config.js';
|
|
40
|
+
export type { ConfigValidationError } from './runtime/config.js';
|
|
41
|
+
export type { SquadSessionConfig } from './adapter/types.js';
|
|
42
|
+
export type { SquadCustomAgentConfig } from './adapter/types.js';
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,YAAY,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG9E,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}
|