@bradygaster/squad-sdk 0.9.1 → 0.9.2-insider.1
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 +340 -296
- package/dist/agents/history-shadow.d.ts +7 -5
- package/dist/agents/history-shadow.d.ts.map +1 -1
- package/dist/agents/history-shadow.js +69 -78
- package/dist/agents/history-shadow.js.map +1 -1
- package/dist/agents/index.d.ts +12 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +62 -9
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/lifecycle.d.ts +4 -0
- package/dist/agents/lifecycle.d.ts.map +1 -1
- package/dist/agents/lifecycle.js +6 -7
- package/dist/agents/lifecycle.js.map +1 -1
- package/dist/agents/onboarding.d.ts +4 -2
- package/dist/agents/onboarding.d.ts.map +1 -1
- package/dist/agents/onboarding.js +26 -16
- package/dist/agents/onboarding.js.map +1 -1
- package/dist/agents/personal.d.ts +2 -1
- package/dist/agents/personal.d.ts.map +1 -1
- package/dist/agents/personal.js +11 -12
- package/dist/agents/personal.js.map +1 -1
- package/dist/build/bundle.d.ts.map +1 -1
- package/dist/build/bundle.js +6 -6
- package/dist/build/bundle.js.map +1 -1
- package/dist/build/github-dist.js +42 -42
- package/dist/build/release.d.ts.map +1 -1
- package/dist/build/release.js +7 -5
- package/dist/build/release.js.map +1 -1
- package/dist/casting/index.d.ts.map +1 -1
- package/dist/casting/index.js +4 -3
- package/dist/casting/index.js.map +1 -1
- package/dist/config/agent-source.d.ts +5 -1
- package/dist/config/agent-source.d.ts.map +1 -1
- package/dist/config/agent-source.js +85 -41
- package/dist/config/agent-source.js.map +1 -1
- package/dist/config/init.d.ts +4 -3
- package/dist/config/init.d.ts.map +1 -1
- package/dist/config/init.js +257 -236
- package/dist/config/init.js.map +1 -1
- package/dist/config/legacy-fallback.d.ts +3 -2
- package/dist/config/legacy-fallback.d.ts.map +1 -1
- package/dist/config/legacy-fallback.js +16 -14
- package/dist/config/legacy-fallback.js.map +1 -1
- package/dist/config/models.d.ts +9 -6
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +35 -25
- package/dist/config/models.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/marketplace/packaging.d.ts.map +1 -1
- package/dist/marketplace/packaging.js +18 -16
- package/dist/marketplace/packaging.js.map +1 -1
- package/dist/multi-squad.d.ts.map +1 -1
- package/dist/multi-squad.js +10 -9
- package/dist/multi-squad.js.map +1 -1
- package/dist/platform/comms-file-log.d.ts.map +1 -1
- package/dist/platform/comms-file-log.js +7 -6
- package/dist/platform/comms-file-log.js.map +1 -1
- package/dist/platform/comms.d.ts.map +1 -1
- package/dist/platform/comms.js +6 -5
- package/dist/platform/comms.js.map +1 -1
- package/dist/platform/index.d.ts.map +1 -1
- package/dist/platform/index.js +4 -3
- package/dist/platform/index.js.map +1 -1
- package/dist/ralph/capabilities.d.ts +30 -1
- package/dist/ralph/capabilities.d.ts.map +1 -1
- package/dist/ralph/capabilities.js +51 -6
- package/dist/ralph/capabilities.js.map +1 -1
- package/dist/ralph/index.d.ts +1 -1
- package/dist/ralph/index.d.ts.map +1 -1
- package/dist/ralph/index.js +4 -3
- package/dist/ralph/index.js.map +1 -1
- package/dist/ralph/rate-limiting.d.ts.map +1 -1
- package/dist/ralph/rate-limiting.js +4 -4
- package/dist/ralph/rate-limiting.js.map +1 -1
- package/dist/remote/bridge.d.ts.map +1 -1
- package/dist/remote/bridge.js +2 -2
- package/dist/remote/bridge.js.map +1 -1
- package/dist/resolution.d.ts +9 -0
- package/dist/resolution.d.ts.map +1 -1
- package/dist/resolution.js +39 -16
- package/dist/resolution.js.map +1 -1
- package/dist/roles/catalog.d.ts +1 -1
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +8 -7
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/cross-squad.d.ts.map +1 -1
- package/dist/runtime/cross-squad.js +8 -7
- package/dist/runtime/cross-squad.js.map +1 -1
- package/dist/runtime/scheduler.d.ts.map +1 -1
- package/dist/runtime/scheduler.js +8 -8
- package/dist/runtime/scheduler.js.map +1 -1
- package/dist/runtime/squad-observer.d.ts.map +1 -1
- package/dist/runtime/squad-observer.js +7 -4
- package/dist/runtime/squad-observer.js.map +1 -1
- package/dist/sharing/consult.d.ts +1 -1
- package/dist/sharing/consult.d.ts.map +1 -1
- package/dist/sharing/consult.js +144 -142
- package/dist/sharing/consult.js.map +1 -1
- package/dist/sharing/export.d.ts.map +1 -1
- package/dist/sharing/export.js +16 -16
- package/dist/sharing/export.js.map +1 -1
- package/dist/sharing/import.d.ts.map +1 -1
- package/dist/sharing/import.js +13 -12
- package/dist/sharing/import.js.map +1 -1
- package/dist/skills/skill-loader.d.ts.map +1 -1
- package/dist/skills/skill-loader.js +10 -9
- package/dist/skills/skill-loader.js.map +1 -1
- package/dist/skills/skill-script-loader.d.ts.map +1 -1
- package/dist/skills/skill-script-loader.js +6 -4
- package/dist/skills/skill-script-loader.js.map +1 -1
- package/dist/skills/skill-source.d.ts +3 -1
- package/dist/skills/skill-source.d.ts.map +1 -1
- package/dist/skills/skill-source.js +18 -16
- package/dist/skills/skill-source.js.map +1 -1
- package/dist/state/collection-map.d.ts +43 -0
- package/dist/state/collection-map.d.ts.map +1 -0
- package/dist/state/collection-map.js +9 -0
- package/dist/state/collection-map.js.map +1 -0
- package/dist/state/collections.d.ts +102 -0
- package/dist/state/collections.d.ts.map +1 -0
- package/dist/state/collections.js +317 -0
- package/dist/state/collections.js.map +1 -0
- package/dist/state/domain-types.d.ts +122 -0
- package/dist/state/domain-types.d.ts.map +1 -0
- package/dist/state/domain-types.js +54 -0
- package/dist/state/domain-types.js.map +1 -0
- package/dist/state/handles.d.ts +16 -0
- package/dist/state/handles.d.ts.map +1 -0
- package/dist/state/handles.js +161 -0
- package/dist/state/handles.js.map +1 -0
- package/dist/state/index.d.ts +17 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +15 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/io/charter-io.d.ts +28 -0
- package/dist/state/io/charter-io.d.ts.map +1 -0
- package/dist/state/io/charter-io.js +94 -0
- package/dist/state/io/charter-io.js.map +1 -0
- package/dist/state/io/decisions-io.d.ts +42 -0
- package/dist/state/io/decisions-io.d.ts.map +1 -0
- package/dist/state/io/decisions-io.js +66 -0
- package/dist/state/io/decisions-io.js.map +1 -0
- package/dist/state/io/history-io.d.ts +37 -0
- package/dist/state/io/history-io.d.ts.map +1 -0
- package/dist/state/io/history-io.js +102 -0
- package/dist/state/io/history-io.js.map +1 -0
- package/dist/state/io/index.d.ts +19 -0
- package/dist/state/io/index.d.ts.map +1 -0
- package/dist/state/io/index.js +19 -0
- package/dist/state/io/index.js.map +1 -0
- package/dist/state/io/routing-io.d.ts +37 -0
- package/dist/state/io/routing-io.d.ts.map +1 -0
- package/dist/state/io/routing-io.js +99 -0
- package/dist/state/io/routing-io.js.map +1 -0
- package/dist/state/io/team-io.d.ts +46 -0
- package/dist/state/io/team-io.d.ts.map +1 -0
- package/dist/state/io/team-io.js +82 -0
- package/dist/state/io/team-io.js.map +1 -0
- package/dist/state/schema.d.ts +24 -0
- package/dist/state/schema.d.ts.map +1 -0
- package/dist/state/schema.js +41 -0
- package/dist/state/schema.js.map +1 -0
- package/dist/state/squad-state.d.ts +42 -0
- package/dist/state/squad-state.d.ts.map +1 -0
- package/dist/state/squad-state.js +68 -0
- package/dist/state/squad-state.js.map +1 -0
- package/dist/storage/fs-storage-provider.d.ts +60 -0
- package/dist/storage/fs-storage-provider.d.ts.map +1 -0
- package/dist/storage/fs-storage-provider.js +377 -0
- package/dist/storage/fs-storage-provider.js.map +1 -0
- package/dist/storage/in-memory-storage-provider.d.ts +46 -0
- package/dist/storage/in-memory-storage-provider.d.ts.map +1 -0
- package/dist/storage/in-memory-storage-provider.js +264 -0
- package/dist/storage/in-memory-storage-provider.js.map +1 -0
- package/dist/storage/index.d.ts +6 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +5 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/sqlite-storage-provider.d.ts +95 -0
- package/dist/storage/sqlite-storage-provider.d.ts.map +1 -0
- package/dist/storage/sqlite-storage-provider.js +383 -0
- package/dist/storage/sqlite-storage-provider.js.map +1 -0
- package/dist/storage/storage-error.d.ts +28 -0
- package/dist/storage/storage-error.d.ts.map +1 -0
- package/dist/storage/storage-error.js +35 -0
- package/dist/storage/storage-error.js.map +1 -0
- package/dist/storage/storage-provider.d.ts +161 -0
- package/dist/storage/storage-provider.d.ts.map +1 -0
- package/dist/storage/storage-provider.js +18 -0
- package/dist/storage/storage-provider.js.map +1 -0
- package/dist/streams/resolver.d.ts.map +1 -1
- package/dist/streams/resolver.js +6 -5
- package/dist/streams/resolver.js.map +1 -1
- package/dist/tools/index.d.ts +5 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +54 -15
- package/dist/tools/index.js.map +1 -1
- package/dist/upstream/resolver.d.ts +3 -2
- package/dist/upstream/resolver.d.ts.map +1 -1
- package/dist/upstream/resolver.js +33 -32
- package/dist/upstream/resolver.js.map +1 -1
- package/package.json +33 -1
- package/templates/casting/Futurama.json +9 -9
- package/templates/casting-history.json +4 -4
- package/templates/casting-policy.json +37 -37
- package/templates/casting-reference.md +104 -104
- package/templates/casting-registry.json +3 -3
- package/templates/ceremonies.md +41 -41
- package/templates/charter.md +53 -53
- package/templates/constraint-tracking.md +38 -38
- package/templates/cooperative-rate-limiting.md +229 -229
- package/templates/copilot-instructions.md +46 -46
- package/templates/history.md +10 -10
- package/templates/identity/now.md +9 -9
- package/templates/identity/wisdom.md +15 -15
- package/templates/issue-lifecycle.md +412 -412
- package/templates/keda-scaler.md +164 -164
- package/templates/machine-capabilities.md +74 -74
- package/templates/mcp-config.md +90 -90
- package/templates/multi-agent-format.md +28 -28
- package/templates/plugin-marketplace.md +49 -49
- package/templates/ralph-circuit-breaker.md +313 -313
- package/templates/raw-agent-output.md +37 -37
- package/templates/roster.md +60 -60
- package/templates/routing.md +39 -39
- package/templates/run-output.md +50 -50
- package/templates/schedule.json +19 -19
- package/templates/scribe-charter.md +123 -119
- package/templates/skill.md +24 -24
- package/templates/skills/agent-collaboration/SKILL.md +42 -42
- package/templates/skills/agent-conduct/SKILL.md +24 -24
- package/templates/skills/architectural-proposals/SKILL.md +151 -151
- package/templates/skills/ci-validation-gates/SKILL.md +84 -84
- package/templates/skills/cli-wiring/SKILL.md +47 -47
- package/templates/skills/client-compatibility/SKILL.md +89 -89
- package/templates/skills/cross-machine-coordination/SKILL.md +434 -0
- package/templates/skills/cross-squad/SKILL.md +114 -114
- package/templates/skills/distributed-mesh/SKILL.md +287 -287
- package/templates/skills/distributed-mesh/mesh.json.example +30 -30
- package/templates/skills/distributed-mesh/sync-mesh.ps1 +111 -111
- package/templates/skills/distributed-mesh/sync-mesh.sh +104 -104
- package/templates/skills/docs-standards/SKILL.md +71 -71
- package/templates/skills/economy-mode/SKILL.md +114 -114
- package/templates/skills/error-recovery/SKILL.md +99 -0
- package/templates/skills/external-comms/SKILL.md +329 -329
- package/templates/skills/gh-auth-isolation/SKILL.md +183 -183
- package/templates/skills/git-workflow/SKILL.md +204 -204
- package/templates/skills/github-multi-account/SKILL.md +95 -95
- package/templates/skills/history-hygiene/SKILL.md +36 -36
- package/templates/skills/humanizer/SKILL.md +105 -105
- package/templates/skills/init-mode/SKILL.md +102 -102
- package/templates/skills/iterative-retrieval/SKILL.md +165 -0
- package/templates/skills/model-selection/SKILL.md +117 -117
- package/templates/skills/nap/SKILL.md +24 -24
- package/templates/skills/notification-routing/SKILL.md +105 -0
- package/templates/skills/personal-squad/SKILL.md +57 -57
- package/templates/skills/pr-screenshots/SKILL.md +149 -0
- package/templates/skills/project-conventions/SKILL.md +56 -56
- package/templates/skills/ralph-two-pass-scan/SKILL.md +35 -0
- package/templates/skills/reflect/SKILL.md +229 -0
- package/templates/skills/release-process/SKILL.md +131 -423
- package/templates/skills/reskill/SKILL.md +92 -92
- package/templates/skills/retro-enforcement/SKILL.md +148 -0
- package/templates/skills/reviewer-protocol/SKILL.md +79 -79
- package/templates/skills/secret-handling/SKILL.md +200 -200
- package/templates/skills/session-recovery/SKILL.md +155 -155
- package/templates/skills/squad-conventions/SKILL.md +69 -69
- package/templates/skills/test-discipline/SKILL.md +37 -37
- package/templates/skills/tiered-memory/SKILL.md +234 -0
- package/templates/skills/windows-compatibility/SKILL.md +98 -74
- package/templates/{squad.agent.md → squad.agent.md.template} +57 -28
- package/templates/workflows/squad-ci.yml +24 -24
- package/templates/workflows/squad-docs.yml +54 -54
- package/templates/workflows/squad-heartbeat.yml +167 -171
- package/templates/workflows/squad-insider-release.yml +61 -61
- package/templates/workflows/squad-issue-assign.yml +161 -161
- package/templates/workflows/squad-label-enforce.yml +181 -181
- package/templates/workflows/squad-preview.yml +55 -55
- package/templates/workflows/squad-promote.yml +120 -120
- package/templates/workflows/squad-release.yml +77 -77
- package/templates/workflows/squad-triage.yml +260 -260
- package/templates/workflows/sync-squad-labels.yml +169 -169
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-source.js","sourceRoot":"","sources":["../../src/skills/skill-source.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"skill-source.js","sourceRoot":"","sources":["../../src/skills/skill-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Module — Collection Entity Map
|
|
3
|
+
*
|
|
4
|
+
* Compiler-enforced registry that maps collection names to their
|
|
5
|
+
* domain entity types. Any `SquadState.get<C>(collection)` call
|
|
6
|
+
* is type-checked against this map at compile time.
|
|
7
|
+
*/
|
|
8
|
+
import type { Agent, Decision, HistoryEntry, HistorySection, LogEntry, RoutingConfig, SquadStateConfig, TeamConfig, Template } from './domain-types.js';
|
|
9
|
+
import type { SkillDefinition } from '../skills/skill-loader.js';
|
|
10
|
+
/** Compiler-enforced mapping from collection name → entity type. */
|
|
11
|
+
export interface CollectionEntityMap {
|
|
12
|
+
agents: Agent;
|
|
13
|
+
decisions: Decision;
|
|
14
|
+
routing: RoutingConfig;
|
|
15
|
+
team: TeamConfig;
|
|
16
|
+
skills: SkillDefinition;
|
|
17
|
+
templates: Template;
|
|
18
|
+
log: LogEntry;
|
|
19
|
+
config: SquadStateConfig;
|
|
20
|
+
}
|
|
21
|
+
/** Union of all valid collection names. */
|
|
22
|
+
export type CollectionName = keyof CollectionEntityMap;
|
|
23
|
+
/**
|
|
24
|
+
* Ergonomic handle for interacting with a single agent's state.
|
|
25
|
+
*
|
|
26
|
+
* Returned by `SquadState.agent(name)`. Provides scoped access to
|
|
27
|
+
* the agent's charter, history, and mutable properties without
|
|
28
|
+
* requiring the caller to know file paths.
|
|
29
|
+
*/
|
|
30
|
+
export interface AgentHandle {
|
|
31
|
+
/** Agent name (immutable). */
|
|
32
|
+
readonly name: string;
|
|
33
|
+
/** Read the full charter markdown. */
|
|
34
|
+
charter(): Promise<string>;
|
|
35
|
+
/** Read all history entries, or entries for a specific section. */
|
|
36
|
+
history(): Promise<HistoryEntry[]>;
|
|
37
|
+
history(section: HistorySection): Promise<HistoryEntry[]>;
|
|
38
|
+
/** Append a new entry to a history section. */
|
|
39
|
+
appendHistory(section: HistorySection, entry: HistoryEntry): Promise<void>;
|
|
40
|
+
/** Apply a partial update to the agent entity. */
|
|
41
|
+
update(updates: Partial<Agent>): Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=collection-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-map.d.ts","sourceRoot":"","sources":["../../src/state/collection-map.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,QAAQ,CAAC;IACpB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,2CAA2C;AAC3C,MAAM,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,sCAAsC;IACtC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3B,mEAAmE;IACnE,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE1D,+CAA+C;IAC/C,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3E,kDAAkD;IAClD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Module — Collection Entity Map
|
|
3
|
+
*
|
|
4
|
+
* Compiler-enforced registry that maps collection names to their
|
|
5
|
+
* domain entity types. Any `SquadState.get<C>(collection)` call
|
|
6
|
+
* is type-checked against this map at compile time.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=collection-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-map.js","sourceRoot":"","sources":["../../src/state/collection-map.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Module — Typed Collection Facades
|
|
3
|
+
*
|
|
4
|
+
* Each class provides a typed, ergonomic interface over a specific
|
|
5
|
+
* `.squad/` collection, backed by StorageProvider + IO layer.
|
|
6
|
+
*
|
|
7
|
+
* @module state/collections
|
|
8
|
+
*/
|
|
9
|
+
import type { StorageProvider } from '../storage/storage-provider.js';
|
|
10
|
+
import type { AgentHandle } from './collection-map.js';
|
|
11
|
+
import type { Decision, RoutingConfig, TeamConfig } from './domain-types.js';
|
|
12
|
+
import type { SkillDefinition } from '../skills/skill-loader.js';
|
|
13
|
+
export declare class AgentsCollection {
|
|
14
|
+
private readonly storage;
|
|
15
|
+
private readonly rootDir;
|
|
16
|
+
constructor(storage: StorageProvider, rootDir: string);
|
|
17
|
+
/** Return a handle for interacting with a specific agent's state. */
|
|
18
|
+
get(name: string): AgentHandle;
|
|
19
|
+
/** List agent names from `.squad/agents/`. */
|
|
20
|
+
list(): Promise<string[]>;
|
|
21
|
+
/** Create a new agent with charter and empty history. */
|
|
22
|
+
create(name: string, charter: string): Promise<void>;
|
|
23
|
+
/** Soft-delete an agent by removing its directory. */
|
|
24
|
+
delete(name: string): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export declare class DecisionsCollection {
|
|
27
|
+
private readonly storage;
|
|
28
|
+
private readonly rootDir;
|
|
29
|
+
constructor(storage: StorageProvider, rootDir: string);
|
|
30
|
+
/** Parse and return all decisions from `decisions.md`. */
|
|
31
|
+
list(): Promise<Decision[]>;
|
|
32
|
+
/** Append a new decision. Date is auto-generated if not provided. */
|
|
33
|
+
add(decision: Omit<Decision, 'date'>): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
export declare class RoutingCollection {
|
|
36
|
+
private readonly storage;
|
|
37
|
+
private readonly rootDir;
|
|
38
|
+
constructor(storage: StorageProvider, rootDir: string);
|
|
39
|
+
/** Parse and return the routing configuration. */
|
|
40
|
+
get(): Promise<RoutingConfig>;
|
|
41
|
+
/** Write back a full routing configuration. */
|
|
42
|
+
update(config: RoutingConfig): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
export declare class TeamCollection {
|
|
45
|
+
private readonly storage;
|
|
46
|
+
private readonly rootDir;
|
|
47
|
+
constructor(storage: StorageProvider, rootDir: string);
|
|
48
|
+
/** Parse and return the team configuration. */
|
|
49
|
+
get(): Promise<TeamConfig>;
|
|
50
|
+
/** Write back a full team configuration. */
|
|
51
|
+
update(config: TeamConfig): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
export declare class SkillsCollection {
|
|
54
|
+
private readonly storage;
|
|
55
|
+
private readonly rootDir;
|
|
56
|
+
constructor(storage: StorageProvider, rootDir: string);
|
|
57
|
+
/** List all skill IDs (directory names under .squad/skills/). */
|
|
58
|
+
list(): Promise<string[]>;
|
|
59
|
+
/** Get a skill definition by ID. Returns undefined if not found or unparseable. */
|
|
60
|
+
get(id: string): Promise<SkillDefinition | undefined>;
|
|
61
|
+
/** Check if a skill exists. */
|
|
62
|
+
exists(id: string): Promise<boolean>;
|
|
63
|
+
}
|
|
64
|
+
export declare class TemplatesCollection {
|
|
65
|
+
private readonly storage;
|
|
66
|
+
private readonly rootDir;
|
|
67
|
+
constructor(storage: StorageProvider, rootDir: string);
|
|
68
|
+
/** List template filenames under .squad/templates/. */
|
|
69
|
+
list(): Promise<string[]>;
|
|
70
|
+
/** Get raw template content by ID. Returns undefined if not found. */
|
|
71
|
+
get(id: string): Promise<string | undefined>;
|
|
72
|
+
/** Check if a template exists. */
|
|
73
|
+
exists(id: string): Promise<boolean>;
|
|
74
|
+
}
|
|
75
|
+
/** Serializable subset of config stored in `.squad/config.json`. */
|
|
76
|
+
export interface ConfigFileData {
|
|
77
|
+
cacheEnabled?: boolean;
|
|
78
|
+
cacheTtlMs?: number;
|
|
79
|
+
}
|
|
80
|
+
export declare class ConfigCollection {
|
|
81
|
+
private readonly storage;
|
|
82
|
+
private readonly rootDir;
|
|
83
|
+
constructor(storage: StorageProvider, rootDir: string);
|
|
84
|
+
/** Read and parse `.squad/config.json`. Returns defaults when file is missing or invalid. */
|
|
85
|
+
get(): Promise<ConfigFileData>;
|
|
86
|
+
/** Write config to `.squad/config.json`. */
|
|
87
|
+
update(config: ConfigFileData): Promise<void>;
|
|
88
|
+
/** Check if `.squad/config.json` exists. */
|
|
89
|
+
exists(): Promise<boolean>;
|
|
90
|
+
}
|
|
91
|
+
export declare class LogCollection {
|
|
92
|
+
private readonly storage;
|
|
93
|
+
private readonly rootDir;
|
|
94
|
+
constructor(storage: StorageProvider, rootDir: string);
|
|
95
|
+
/** List log entry filenames under .squad/log/. */
|
|
96
|
+
list(): Promise<string[]>;
|
|
97
|
+
/** Read a specific log entry. Returns undefined if not found. */
|
|
98
|
+
get(id: string): Promise<string | undefined>;
|
|
99
|
+
/** Write a new log entry. */
|
|
100
|
+
write(id: string, content: string): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=collections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/state/collections.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Module — Typed Collection Facades
|
|
3
|
+
*
|
|
4
|
+
* Each class provides a typed, ergonomic interface over a specific
|
|
5
|
+
* `.squad/` collection, backed by StorageProvider + IO layer.
|
|
6
|
+
*
|
|
7
|
+
* @module state/collections
|
|
8
|
+
*/
|
|
9
|
+
import { NotFoundError, ParseError } from './domain-types.js';
|
|
10
|
+
import { resolveCollectionPath } from './schema.js';
|
|
11
|
+
import { createAgentHandle } from './handles.js';
|
|
12
|
+
import { parseDecisions, serializeDecision, serializeDecisions } from './io/decisions-io.js';
|
|
13
|
+
import { parseRouting, serializeRouting } from './io/routing-io.js';
|
|
14
|
+
import { parseTeam, serializeTeam } from './io/team-io.js';
|
|
15
|
+
import { parseSkillFile } from '../skills/skill-loader.js';
|
|
16
|
+
// ── AgentsCollection ───────────────────────────────────────────────────────
|
|
17
|
+
export class AgentsCollection {
|
|
18
|
+
storage;
|
|
19
|
+
rootDir;
|
|
20
|
+
constructor(storage, rootDir) {
|
|
21
|
+
this.storage = storage;
|
|
22
|
+
this.rootDir = rootDir;
|
|
23
|
+
}
|
|
24
|
+
/** Return a handle for interacting with a specific agent's state. */
|
|
25
|
+
get(name) {
|
|
26
|
+
return createAgentHandle(name, this.storage, this.rootDir);
|
|
27
|
+
}
|
|
28
|
+
/** List agent names from `.squad/agents/`. */
|
|
29
|
+
async list() {
|
|
30
|
+
const agentsDir = `${this.rootDir}/.squad/agents`;
|
|
31
|
+
return this.storage.list(agentsDir);
|
|
32
|
+
}
|
|
33
|
+
/** Create a new agent with charter and empty history. */
|
|
34
|
+
async create(name, charter) {
|
|
35
|
+
const agentDir = `${this.rootDir}/.squad/agents/${name}`;
|
|
36
|
+
await this.storage.write(`${agentDir}/charter.md`, charter);
|
|
37
|
+
await this.storage.write(`${agentDir}/history.md`, `# ${name}\n\n## Learnings\n\n## Context\n`);
|
|
38
|
+
}
|
|
39
|
+
/** Soft-delete an agent by removing its directory. */
|
|
40
|
+
async delete(name) {
|
|
41
|
+
const agentDir = `${this.rootDir}/.squad/agents/${name}`;
|
|
42
|
+
const exists = await this.storage.exists(agentDir);
|
|
43
|
+
if (!exists) {
|
|
44
|
+
throw new NotFoundError('agents', name);
|
|
45
|
+
}
|
|
46
|
+
await this.storage.deleteDir(agentDir);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// ── DecisionsCollection ────────────────────────────────────────────────────
|
|
50
|
+
/** Map a ParsedDecision to the domain Decision type. */
|
|
51
|
+
function toDomainDecision(pd) {
|
|
52
|
+
return {
|
|
53
|
+
date: pd.date ?? '',
|
|
54
|
+
title: pd.title,
|
|
55
|
+
author: pd.author ?? '',
|
|
56
|
+
body: pd.body,
|
|
57
|
+
configRelevant: pd.configRelevant,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** Map a domain Decision to ParsedDecision for serialization. */
|
|
61
|
+
function toParsedDecision(d) {
|
|
62
|
+
return {
|
|
63
|
+
title: d.title,
|
|
64
|
+
body: d.body,
|
|
65
|
+
configRelevant: d.configRelevant,
|
|
66
|
+
date: d.date || undefined,
|
|
67
|
+
author: d.author || undefined,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export class DecisionsCollection {
|
|
71
|
+
storage;
|
|
72
|
+
rootDir;
|
|
73
|
+
constructor(storage, rootDir) {
|
|
74
|
+
this.storage = storage;
|
|
75
|
+
this.rootDir = rootDir;
|
|
76
|
+
}
|
|
77
|
+
/** Parse and return all decisions from `decisions.md`. */
|
|
78
|
+
async list() {
|
|
79
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('decisions')}`;
|
|
80
|
+
const content = await this.storage.read(filePath);
|
|
81
|
+
if (content === undefined) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
return parseDecisions(content).map(toDomainDecision);
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
throw new ParseError('decisions', err instanceof Error ? err.message : String(err), { cause: err });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** Append a new decision. Date is auto-generated if not provided. */
|
|
92
|
+
async add(decision) {
|
|
93
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('decisions')}`;
|
|
94
|
+
const date = new Date().toISOString().split('T')[0];
|
|
95
|
+
const full = { ...decision, date };
|
|
96
|
+
const parsed = toParsedDecision(full);
|
|
97
|
+
const existing = await this.storage.read(filePath);
|
|
98
|
+
if (existing === undefined || existing.trim().length === 0) {
|
|
99
|
+
await this.storage.write(filePath, serializeDecisions([parsed]));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const fragment = '\n\n' + serializeDecision(parsed) + '\n';
|
|
103
|
+
await this.storage.append(filePath, fragment);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// ── RoutingCollection ──────────────────────────────────────────────────────
|
|
108
|
+
/** Map ParsedRouting to RoutingConfig. */
|
|
109
|
+
function toRoutingConfig(parsed) {
|
|
110
|
+
return {
|
|
111
|
+
rules: parsed.rules.map((r) => ({
|
|
112
|
+
workType: r.workType,
|
|
113
|
+
agents: r.agents,
|
|
114
|
+
examples: r.examples ?? [],
|
|
115
|
+
})),
|
|
116
|
+
moduleOwnership: parsed.moduleOwnership,
|
|
117
|
+
principles: [],
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/** Map RoutingConfig rules back to ParsedRoutingRule[]. */
|
|
121
|
+
function toParsedRoutingRules(config) {
|
|
122
|
+
return config.rules.map((r) => ({
|
|
123
|
+
workType: r.workType,
|
|
124
|
+
agents: [...r.agents],
|
|
125
|
+
examples: [...r.examples],
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
export class RoutingCollection {
|
|
129
|
+
storage;
|
|
130
|
+
rootDir;
|
|
131
|
+
constructor(storage, rootDir) {
|
|
132
|
+
this.storage = storage;
|
|
133
|
+
this.rootDir = rootDir;
|
|
134
|
+
}
|
|
135
|
+
/** Parse and return the routing configuration. */
|
|
136
|
+
async get() {
|
|
137
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('routing')}`;
|
|
138
|
+
const content = await this.storage.read(filePath);
|
|
139
|
+
if (content === undefined) {
|
|
140
|
+
throw new NotFoundError('routing');
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
return toRoutingConfig(parseRouting(content));
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
throw new ParseError('routing', err instanceof Error ? err.message : String(err), { cause: err });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/** Write back a full routing configuration. */
|
|
150
|
+
async update(config) {
|
|
151
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('routing')}`;
|
|
152
|
+
const rules = toParsedRoutingRules(config);
|
|
153
|
+
await this.storage.write(filePath, serializeRouting(rules));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// ── TeamCollection ─────────────────────────────────────────────────────────
|
|
157
|
+
/** Map ParsedTeam to TeamConfig. */
|
|
158
|
+
function toTeamConfig(parsed) {
|
|
159
|
+
return {
|
|
160
|
+
projectContext: parsed.projectContext,
|
|
161
|
+
members: parsed.agents.map((a) => ({
|
|
162
|
+
name: a.name,
|
|
163
|
+
role: a.role,
|
|
164
|
+
status: a.status,
|
|
165
|
+
})),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
/** Map TeamConfig members back to ParsedAgent[]. */
|
|
169
|
+
function toParsedAgents(config) {
|
|
170
|
+
return config.members.map((m) => ({
|
|
171
|
+
name: m.name,
|
|
172
|
+
role: m.role,
|
|
173
|
+
skills: [],
|
|
174
|
+
status: m.status,
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
export class TeamCollection {
|
|
178
|
+
storage;
|
|
179
|
+
rootDir;
|
|
180
|
+
constructor(storage, rootDir) {
|
|
181
|
+
this.storage = storage;
|
|
182
|
+
this.rootDir = rootDir;
|
|
183
|
+
}
|
|
184
|
+
/** Parse and return the team configuration. */
|
|
185
|
+
async get() {
|
|
186
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('team')}`;
|
|
187
|
+
const content = await this.storage.read(filePath);
|
|
188
|
+
if (content === undefined) {
|
|
189
|
+
throw new NotFoundError('team');
|
|
190
|
+
}
|
|
191
|
+
try {
|
|
192
|
+
return toTeamConfig(parseTeam(content));
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
throw new ParseError('team', err instanceof Error ? err.message : String(err), { cause: err });
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/** Write back a full team configuration. */
|
|
199
|
+
async update(config) {
|
|
200
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('team')}`;
|
|
201
|
+
const agents = toParsedAgents(config);
|
|
202
|
+
await this.storage.write(filePath, serializeTeam(agents));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// ── SkillsCollection ──────────────────────────────────────────────────────
|
|
206
|
+
export class SkillsCollection {
|
|
207
|
+
storage;
|
|
208
|
+
rootDir;
|
|
209
|
+
constructor(storage, rootDir) {
|
|
210
|
+
this.storage = storage;
|
|
211
|
+
this.rootDir = rootDir;
|
|
212
|
+
}
|
|
213
|
+
/** List all skill IDs (directory names under .squad/skills/). */
|
|
214
|
+
async list() {
|
|
215
|
+
const skillsDir = `${this.rootDir}/.squad/skills`;
|
|
216
|
+
return this.storage.list(skillsDir);
|
|
217
|
+
}
|
|
218
|
+
/** Get a skill definition by ID. Returns undefined if not found or unparseable. */
|
|
219
|
+
async get(id) {
|
|
220
|
+
const skillFile = `${this.rootDir}/${resolveCollectionPath('skills', id)}/SKILL.md`;
|
|
221
|
+
const content = await this.storage.read(skillFile);
|
|
222
|
+
if (content === undefined)
|
|
223
|
+
return undefined;
|
|
224
|
+
return parseSkillFile(id, content);
|
|
225
|
+
}
|
|
226
|
+
/** Check if a skill exists. */
|
|
227
|
+
async exists(id) {
|
|
228
|
+
const skillFile = `${this.rootDir}/${resolveCollectionPath('skills', id)}/SKILL.md`;
|
|
229
|
+
return this.storage.exists(skillFile);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// ── TemplatesCollection ───────────────────────────────────────────────────
|
|
233
|
+
export class TemplatesCollection {
|
|
234
|
+
storage;
|
|
235
|
+
rootDir;
|
|
236
|
+
constructor(storage, rootDir) {
|
|
237
|
+
this.storage = storage;
|
|
238
|
+
this.rootDir = rootDir;
|
|
239
|
+
}
|
|
240
|
+
/** List template filenames under .squad/templates/. */
|
|
241
|
+
async list() {
|
|
242
|
+
const templatesDir = `${this.rootDir}/.squad/templates`;
|
|
243
|
+
return this.storage.list(templatesDir);
|
|
244
|
+
}
|
|
245
|
+
/** Get raw template content by ID. Returns undefined if not found. */
|
|
246
|
+
async get(id) {
|
|
247
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('templates', id)}`;
|
|
248
|
+
return this.storage.read(filePath);
|
|
249
|
+
}
|
|
250
|
+
/** Check if a template exists. */
|
|
251
|
+
async exists(id) {
|
|
252
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('templates', id)}`;
|
|
253
|
+
return this.storage.exists(filePath);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
const DEFAULT_CONFIG = {
|
|
257
|
+
cacheEnabled: false,
|
|
258
|
+
cacheTtlMs: 300_000,
|
|
259
|
+
};
|
|
260
|
+
export class ConfigCollection {
|
|
261
|
+
storage;
|
|
262
|
+
rootDir;
|
|
263
|
+
constructor(storage, rootDir) {
|
|
264
|
+
this.storage = storage;
|
|
265
|
+
this.rootDir = rootDir;
|
|
266
|
+
}
|
|
267
|
+
/** Read and parse `.squad/config.json`. Returns defaults when file is missing or invalid. */
|
|
268
|
+
async get() {
|
|
269
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('config')}`;
|
|
270
|
+
const content = await this.storage.read(filePath);
|
|
271
|
+
if (content === undefined) {
|
|
272
|
+
return { ...DEFAULT_CONFIG };
|
|
273
|
+
}
|
|
274
|
+
try {
|
|
275
|
+
const parsed = JSON.parse(content);
|
|
276
|
+
return { ...DEFAULT_CONFIG, ...parsed };
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
return { ...DEFAULT_CONFIG };
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
/** Write config to `.squad/config.json`. */
|
|
283
|
+
async update(config) {
|
|
284
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('config')}`;
|
|
285
|
+
await this.storage.write(filePath, JSON.stringify(config, null, 2) + '\n');
|
|
286
|
+
}
|
|
287
|
+
/** Check if `.squad/config.json` exists. */
|
|
288
|
+
async exists() {
|
|
289
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('config')}`;
|
|
290
|
+
return this.storage.exists(filePath);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
// ── LogCollection ─────────────────────────────────────────────────────────
|
|
294
|
+
export class LogCollection {
|
|
295
|
+
storage;
|
|
296
|
+
rootDir;
|
|
297
|
+
constructor(storage, rootDir) {
|
|
298
|
+
this.storage = storage;
|
|
299
|
+
this.rootDir = rootDir;
|
|
300
|
+
}
|
|
301
|
+
/** List log entry filenames under .squad/log/. */
|
|
302
|
+
async list() {
|
|
303
|
+
const logDir = `${this.rootDir}/${resolveCollectionPath('log')}`;
|
|
304
|
+
return this.storage.list(logDir);
|
|
305
|
+
}
|
|
306
|
+
/** Read a specific log entry. Returns undefined if not found. */
|
|
307
|
+
async get(id) {
|
|
308
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('log')}/${id}`;
|
|
309
|
+
return this.storage.read(filePath);
|
|
310
|
+
}
|
|
311
|
+
/** Write a new log entry. */
|
|
312
|
+
async write(id, content) {
|
|
313
|
+
const filePath = `${this.rootDir}/${resolveCollectionPath('log')}/${id}`;
|
|
314
|
+
await this.storage.write(filePath, content);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=collections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/state/collections.ts"],"names":[],"mappings":"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"}
|