@bradygaster/squad-sdk 0.9.6-insider.2 → 0.10.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/adapter/client.d.ts.map +1 -1
- package/dist/adapter/client.js +16 -3
- package/dist/adapter/client.js.map +1 -1
- package/dist/adapter/types.d.ts +6 -1
- package/dist/adapter/types.d.ts.map +1 -1
- package/dist/agents/charter-compiler.d.ts +2 -0
- package/dist/agents/charter-compiler.d.ts.map +1 -1
- package/dist/agents/charter-compiler.js +6 -1
- package/dist/agents/charter-compiler.js.map +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +24 -25
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/lifecycle.d.ts.map +1 -1
- package/dist/agents/lifecycle.js +11 -2
- package/dist/agents/lifecycle.js.map +1 -1
- package/dist/agents/onboarding.d.ts.map +1 -1
- package/dist/agents/onboarding.js +24 -0
- package/dist/agents/onboarding.js.map +1 -1
- package/dist/config/agent-source.d.ts.map +1 -1
- package/dist/config/agent-source.js +60 -33
- package/dist/config/agent-source.js.map +1 -1
- package/dist/config/feature-audit.js +1 -1
- package/dist/config/feature-audit.js.map +1 -1
- package/dist/config/init.d.ts +4 -0
- package/dist/config/init.d.ts.map +1 -1
- package/dist/config/init.js +177 -44
- package/dist/config/init.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/marketplace/index.d.ts +7 -0
- package/dist/marketplace/index.d.ts.map +1 -1
- package/dist/marketplace/index.js +4 -0
- package/dist/marketplace/index.js.map +1 -1
- package/dist/marketplace/plugin-manifest.d.ts +113 -0
- package/dist/marketplace/plugin-manifest.d.ts.map +1 -0
- package/dist/marketplace/plugin-manifest.js +820 -0
- package/dist/marketplace/plugin-manifest.js.map +1 -0
- package/dist/marketplace/plugin-runtime.d.ts +37 -0
- package/dist/marketplace/plugin-runtime.d.ts.map +1 -0
- package/dist/marketplace/plugin-runtime.js +217 -0
- package/dist/marketplace/plugin-runtime.js.map +1 -0
- package/dist/marketplace/plugin-state.d.ts +89 -0
- package/dist/marketplace/plugin-state.d.ts.map +1 -0
- package/dist/marketplace/plugin-state.js +278 -0
- package/dist/marketplace/plugin-state.js.map +1 -0
- package/dist/memory/index.d.ts +262 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +1122 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/multi-squad.d.ts.map +1 -1
- package/dist/multi-squad.js +5 -2
- package/dist/multi-squad.js.map +1 -1
- package/dist/platform/azure-devops.d.ts.map +1 -1
- package/dist/platform/azure-devops.js +17 -3
- package/dist/platform/azure-devops.js.map +1 -1
- package/dist/platform/detect.d.ts.map +1 -1
- package/dist/platform/detect.js +12 -5
- package/dist/platform/detect.js.map +1 -1
- package/dist/platform/index.d.ts.map +1 -1
- package/dist/platform/index.js +26 -0
- package/dist/platform/index.js.map +1 -1
- package/dist/ralph/triage.js +1 -1
- package/dist/ralph/triage.js.map +1 -1
- package/dist/resolution.d.ts +18 -0
- package/dist/resolution.d.ts.map +1 -1
- package/dist/resolution.js +64 -2
- package/dist/resolution.js.map +1 -1
- package/dist/runtime/memory-value-benchmark.d.ts +61 -0
- package/dist/runtime/memory-value-benchmark.d.ts.map +1 -0
- package/dist/runtime/memory-value-benchmark.js +245 -0
- package/dist/runtime/memory-value-benchmark.js.map +1 -0
- package/dist/runtime/scheduler.d.ts +8 -0
- package/dist/runtime/scheduler.d.ts.map +1 -1
- package/dist/runtime/scheduler.js +52 -5
- package/dist/runtime/scheduler.js.map +1 -1
- package/dist/sharing/export.d.ts +1 -0
- package/dist/sharing/export.d.ts.map +1 -1
- package/dist/sharing/export.js +10 -0
- package/dist/sharing/export.js.map +1 -1
- package/dist/sharing/import.d.ts.map +1 -1
- package/dist/sharing/import.js +3 -2
- package/dist/sharing/import.js.map +1 -1
- package/dist/sharing/index.d.ts +1 -0
- package/dist/sharing/index.d.ts.map +1 -1
- package/dist/sharing/index.js +1 -0
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/repo-sync.d.ts +80 -0
- package/dist/sharing/repo-sync.d.ts.map +1 -0
- package/dist/sharing/repo-sync.js +138 -0
- package/dist/sharing/repo-sync.js.map +1 -0
- package/dist/state-backend.d.ts +154 -9
- package/dist/state-backend.d.ts.map +1 -1
- package/dist/state-backend.js +729 -184
- package/dist/state-backend.js.map +1 -1
- package/dist/tools/index.d.ts +39 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +395 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/utils/map-with-limit.d.ts +37 -0
- package/dist/utils/map-with-limit.d.ts.map +1 -0
- package/dist/utils/map-with-limit.js +81 -0
- package/dist/utils/map-with-limit.js.map +1 -0
- package/package.json +6 -2
- package/templates/after-agent-reference.md +64 -0
- package/templates/ceremony-reference.md +82 -0
- package/templates/client-compatibility-reference.md +46 -0
- package/templates/copilot-agent.md +96 -0
- package/templates/copilot-instructions.md +14 -0
- package/templates/model-selection-reference.md +101 -0
- package/templates/prd-intake.md +105 -0
- package/templates/rai-charter.md +110 -0
- package/templates/rai-policy.md +103 -0
- package/templates/ralph-reference.md +141 -0
- package/templates/routing.md +1 -0
- package/templates/scribe-charter.md +18 -151
- package/templates/session-init-reference.md +199 -0
- package/templates/skills/e2e-template-testing/SKILL.md +557 -0
- package/templates/skills/fact-checking/SKILL.md +61 -0
- package/templates/spawn-reference.md +131 -0
- package/templates/squad.agent.md.template +200 -625
- package/templates/workflow-wiring-appendix-a-code-reviewer.md +131 -0
- package/templates/workflow-wiring-appendix-b-documenter.md +140 -0
- package/templates/workflow-wiring-guide.md +276 -0
- package/templates/workflows/squad-heartbeat.yml +167 -167
- package/templates/worktree-reference.md +126 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/sharing/export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAY,MAAM,WAAW,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/sharing/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/sharing/import.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAInE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAQ/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,qBAAqB,EAAE,CAiC5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,YAAY,
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/sharing/import.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAInE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAQ/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,qBAAqB,EAAE,CAiC5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,YAAY,CA+Ed"}
|
package/dist/sharing/import.js
CHANGED
|
@@ -111,10 +111,11 @@ export function importSquadConfig(bundlePath, targetDir, options) {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
// Import routing rules
|
|
114
|
-
if (bundle.routingRules.length > 0) {
|
|
114
|
+
if (bundle.routingRules.length > 0 || bundle.routingFile !== undefined) {
|
|
115
115
|
const routingPath = join(targetDir, '.ai-team', 'routing.md');
|
|
116
116
|
const relativePath = '.ai-team/routing.md';
|
|
117
|
-
|
|
117
|
+
// Prefer the raw routing file content if available; fall back to formatted rules
|
|
118
|
+
const routingContent = bundle.routingFile !== undefined ? bundle.routingFile : formatRoutingRules(bundle.routingRules);
|
|
118
119
|
if (storage.existsSync(routingPath) && !opts.merge) {
|
|
119
120
|
changes.push({ type: 'skipped', path: relativePath, reason: 'File exists and merge is disabled' });
|
|
120
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/sharing/import.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/sharing/import.ts"],"names":[],"mappings":"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"}
|
package/dist/sharing/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
package/dist/sharing/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repo Sync — export/import Squad configuration to/from a GitHub repository.
|
|
3
|
+
*
|
|
4
|
+
* Uses the GitHub Contents API via `gh api` for authentication and transport.
|
|
5
|
+
* The bundle is stored at a configurable path (default: `.squad/squad-export.json`)
|
|
6
|
+
* in the target repository.
|
|
7
|
+
*/
|
|
8
|
+
export interface RepoSpec {
|
|
9
|
+
owner: string;
|
|
10
|
+
repo: string;
|
|
11
|
+
branch?: string;
|
|
12
|
+
path?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface RepoSyncResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
message: string;
|
|
17
|
+
sha?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Abstracted GitHub operations for repo-sync — enables test injection.
|
|
21
|
+
*/
|
|
22
|
+
export interface RepoSyncOperations {
|
|
23
|
+
/** Get file content and metadata from a repo. Returns null if not found. */
|
|
24
|
+
getFile(owner: string, repo: string, path: string, branch?: string): Promise<{
|
|
25
|
+
content: string;
|
|
26
|
+
sha: string;
|
|
27
|
+
} | null>;
|
|
28
|
+
/** Create or update a file in a repo. Requires sha for updates. */
|
|
29
|
+
putFile(owner: string, repo: string, path: string, content: string, message: string, sha?: string, branch?: string): Promise<{
|
|
30
|
+
sha: string;
|
|
31
|
+
}>;
|
|
32
|
+
/** Get the default branch of a repo. */
|
|
33
|
+
getDefaultBranch(owner: string, repo: string): Promise<string>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse an "owner/repo" string into components.
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseRepoString(repoStr: string): {
|
|
39
|
+
owner: string;
|
|
40
|
+
repo: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Validate a repo file path is safe (relative, no traversal).
|
|
44
|
+
*/
|
|
45
|
+
export declare function validateRepoPath(filePath: string): void;
|
|
46
|
+
/**
|
|
47
|
+
* Create default operations using `gh api` CLI.
|
|
48
|
+
*/
|
|
49
|
+
export declare function createGhOperations(): RepoSyncOperations;
|
|
50
|
+
export interface ExportToRepoOptions {
|
|
51
|
+
/** Commit message for the push. */
|
|
52
|
+
message?: string;
|
|
53
|
+
/** Branch to push to. If omitted, uses repo default branch. */
|
|
54
|
+
branch?: string;
|
|
55
|
+
/** Path in the repo for the bundle file. */
|
|
56
|
+
path?: string;
|
|
57
|
+
/** Operations interface (injectable for testing). */
|
|
58
|
+
ops?: RepoSyncOperations;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Export a local Squad bundle JSON string to a GitHub repository.
|
|
62
|
+
*/
|
|
63
|
+
export declare function exportToRepo(bundleJson: string, repoSpec: RepoSpec, options?: ExportToRepoOptions): Promise<RepoSyncResult>;
|
|
64
|
+
export interface ImportFromRepoOptions {
|
|
65
|
+
/** Branch to import from. If omitted, uses repo default branch. */
|
|
66
|
+
branch?: string;
|
|
67
|
+
/** Path in the repo for the bundle file. */
|
|
68
|
+
path?: string;
|
|
69
|
+
/** Operations interface (injectable for testing). */
|
|
70
|
+
ops?: RepoSyncOperations;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Import a Squad bundle JSON string from a GitHub repository.
|
|
74
|
+
* Returns the raw JSON content for the caller to apply.
|
|
75
|
+
*/
|
|
76
|
+
export declare function importFromRepo(repoSpec: RepoSpec, options?: ImportFromRepoOptions): Promise<{
|
|
77
|
+
content: string;
|
|
78
|
+
sha: string;
|
|
79
|
+
}>;
|
|
80
|
+
//# sourceMappingURL=repo-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-sync.d.ts","sourceRoot":"","sources":["../../src/sharing/repo-sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACtH,mEAAmE;IACnE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9I,wCAAwC;IACxC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAID;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAYhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAIvD;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CA8DvD;AAID,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,GAAG,CAAC,EAAE,kBAAkB,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA4BzB;AAID,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,GAAG,CAAC,EAAE,kBAAkB,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAe3C"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repo Sync — export/import Squad configuration to/from a GitHub repository.
|
|
3
|
+
*
|
|
4
|
+
* Uses the GitHub Contents API via `gh api` for authentication and transport.
|
|
5
|
+
* The bundle is stored at a configurable path (default: `.squad/squad-export.json`)
|
|
6
|
+
* in the target repository.
|
|
7
|
+
*/
|
|
8
|
+
import { execFile, spawn } from 'node:child_process';
|
|
9
|
+
import { promisify } from 'node:util';
|
|
10
|
+
const execFileAsync = promisify(execFile);
|
|
11
|
+
// ── Validation ─────────────────────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Parse an "owner/repo" string into components.
|
|
14
|
+
*/
|
|
15
|
+
export function parseRepoString(repoStr) {
|
|
16
|
+
// Strip optional github.com URL prefix
|
|
17
|
+
const cleaned = repoStr
|
|
18
|
+
.replace(/^https?:\/\/github\.com\//, '')
|
|
19
|
+
.replace(/\.git$/, '')
|
|
20
|
+
.replace(/\/$/, '');
|
|
21
|
+
const parts = cleaned.split('/');
|
|
22
|
+
if (parts.length !== 2 || !parts[0] || !parts[1]) {
|
|
23
|
+
throw new Error(`Invalid repo format "${repoStr}": expected "owner/repo"`);
|
|
24
|
+
}
|
|
25
|
+
return { owner: parts[0], repo: parts[1] };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validate a repo file path is safe (relative, no traversal).
|
|
29
|
+
*/
|
|
30
|
+
export function validateRepoPath(filePath) {
|
|
31
|
+
if (!filePath || filePath.startsWith('/') || filePath.includes('..')) {
|
|
32
|
+
throw new Error(`Invalid repo path "${filePath}": must be relative with no ".." segments`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// ── Default Operations (gh CLI) ────────────────────────────────────
|
|
36
|
+
const DEFAULT_BUNDLE_PATH = '.squad/squad-export.json';
|
|
37
|
+
/**
|
|
38
|
+
* Create default operations using `gh api` CLI.
|
|
39
|
+
*/
|
|
40
|
+
export function createGhOperations() {
|
|
41
|
+
return {
|
|
42
|
+
async getFile(owner, repo, path, branch) {
|
|
43
|
+
const endpoint = `/repos/${owner}/${repo}/contents/${path}${branch ? `?ref=${branch}` : ''}`;
|
|
44
|
+
try {
|
|
45
|
+
const { stdout } = await execFileAsync('gh', [
|
|
46
|
+
'api', endpoint, '--jq', '{ content: .content, sha: .sha }',
|
|
47
|
+
]);
|
|
48
|
+
const data = JSON.parse(stdout);
|
|
49
|
+
// GitHub returns base64 content, possibly line-wrapped
|
|
50
|
+
const decoded = Buffer.from(data.content.replace(/\n/g, ''), 'base64').toString('utf-8');
|
|
51
|
+
return { content: decoded, sha: data.sha };
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
const msg = err.message || '';
|
|
55
|
+
if (msg.includes('404') || msg.includes('Not Found')) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
async putFile(owner, repo, path, content, message, sha, branch) {
|
|
62
|
+
const endpoint = `/repos/${owner}/${repo}/contents/${path}`;
|
|
63
|
+
const encoded = Buffer.from(content).toString('base64');
|
|
64
|
+
const body = {
|
|
65
|
+
message,
|
|
66
|
+
content: encoded,
|
|
67
|
+
};
|
|
68
|
+
if (sha)
|
|
69
|
+
body.sha = sha;
|
|
70
|
+
if (branch)
|
|
71
|
+
body.branch = branch;
|
|
72
|
+
const stdout = await new Promise((resolve, reject) => {
|
|
73
|
+
const proc = spawn('gh', [
|
|
74
|
+
'api', endpoint,
|
|
75
|
+
'-X', 'PUT',
|
|
76
|
+
'--input', '-',
|
|
77
|
+
], { stdio: ['pipe', 'pipe', 'pipe'] });
|
|
78
|
+
let out = '';
|
|
79
|
+
let err = '';
|
|
80
|
+
proc.stdout.on('data', (chunk) => { out += chunk.toString(); });
|
|
81
|
+
proc.stderr.on('data', (chunk) => { err += chunk.toString(); });
|
|
82
|
+
proc.on('close', (code) => {
|
|
83
|
+
if (code === 0)
|
|
84
|
+
resolve(out);
|
|
85
|
+
else
|
|
86
|
+
reject(new Error(err || `gh api exited with code ${code}`));
|
|
87
|
+
});
|
|
88
|
+
proc.on('error', reject);
|
|
89
|
+
proc.stdin.write(JSON.stringify(body));
|
|
90
|
+
proc.stdin.end();
|
|
91
|
+
});
|
|
92
|
+
const data = JSON.parse(stdout);
|
|
93
|
+
return { sha: data.content?.sha || '' };
|
|
94
|
+
},
|
|
95
|
+
async getDefaultBranch(owner, repo) {
|
|
96
|
+
const { stdout } = await execFileAsync('gh', [
|
|
97
|
+
'api', `/repos/${owner}/${repo}`, '--jq', '.default_branch',
|
|
98
|
+
]);
|
|
99
|
+
return stdout.trim();
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Export a local Squad bundle JSON string to a GitHub repository.
|
|
105
|
+
*/
|
|
106
|
+
export async function exportToRepo(bundleJson, repoSpec, options) {
|
|
107
|
+
const ops = options?.ops ?? createGhOperations();
|
|
108
|
+
const filePath = repoSpec.path ?? options?.path ?? DEFAULT_BUNDLE_PATH;
|
|
109
|
+
validateRepoPath(filePath);
|
|
110
|
+
const branch = repoSpec.branch ?? options?.branch;
|
|
111
|
+
const message = options?.message ?? 'chore: update Squad configuration export';
|
|
112
|
+
// Check if file already exists (need SHA for update)
|
|
113
|
+
const existing = await ops.getFile(repoSpec.owner, repoSpec.repo, filePath, branch);
|
|
114
|
+
const sha = existing?.sha;
|
|
115
|
+
// Push the file
|
|
116
|
+
const result = await ops.putFile(repoSpec.owner, repoSpec.repo, filePath, bundleJson, message, sha, branch);
|
|
117
|
+
return {
|
|
118
|
+
success: true,
|
|
119
|
+
message: `Exported to ${repoSpec.owner}/${repoSpec.repo}/${filePath}${branch ? ` (branch: ${branch})` : ''}`,
|
|
120
|
+
sha: result.sha,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Import a Squad bundle JSON string from a GitHub repository.
|
|
125
|
+
* Returns the raw JSON content for the caller to apply.
|
|
126
|
+
*/
|
|
127
|
+
export async function importFromRepo(repoSpec, options) {
|
|
128
|
+
const ops = options?.ops ?? createGhOperations();
|
|
129
|
+
const filePath = repoSpec.path ?? options?.path ?? DEFAULT_BUNDLE_PATH;
|
|
130
|
+
validateRepoPath(filePath);
|
|
131
|
+
const branch = repoSpec.branch ?? options?.branch;
|
|
132
|
+
const result = await ops.getFile(repoSpec.owner, repoSpec.repo, filePath, branch);
|
|
133
|
+
if (!result) {
|
|
134
|
+
throw new Error(`No Squad export found at ${repoSpec.owner}/${repoSpec.repo}/${filePath}${branch ? ` (branch: ${branch})` : ''}`);
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=repo-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-sync.js","sourceRoot":"","sources":["../../src/sharing/repo-sync.ts"],"names":[],"mappings":"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"}
|
package/dist/state-backend.d.ts
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Git-native state backends for `.squad/` state storage.
|
|
3
3
|
*
|
|
4
|
+
* Hardening: retry with exponential backoff for transient git errors,
|
|
5
|
+
* circuit-breaker to prevent cascading failures, startup verification,
|
|
6
|
+
* and observable error surfacing (no silent swallowing).
|
|
7
|
+
*
|
|
4
8
|
* @module state-backend
|
|
5
9
|
*/
|
|
6
10
|
import type { StorageProvider, StorageStats } from './storage/storage-provider.js';
|
|
11
|
+
/** Typed error for git command failures with stderr and command context. */
|
|
12
|
+
export declare class GitExecError extends Error {
|
|
13
|
+
readonly command: string;
|
|
14
|
+
readonly reason: string;
|
|
15
|
+
readonly stderr: string;
|
|
16
|
+
readonly name = "GitExecError";
|
|
17
|
+
constructor(command: string, reason: string, stderr: string);
|
|
18
|
+
}
|
|
7
19
|
export type StateBackendType = 'local' | 'external' | 'orphan' | 'two-layer';
|
|
8
20
|
export interface StateBackend {
|
|
9
21
|
read(relativePath: string): string | undefined;
|
|
@@ -14,6 +26,56 @@ export interface StateBackend {
|
|
|
14
26
|
append(relativePath: string, content: string): void;
|
|
15
27
|
readonly name: string;
|
|
16
28
|
}
|
|
29
|
+
type CircuitState = 'closed' | 'open' | 'half-open';
|
|
30
|
+
export declare class CircuitBreaker {
|
|
31
|
+
private readonly threshold;
|
|
32
|
+
private readonly cooldownMs;
|
|
33
|
+
private state;
|
|
34
|
+
private failures;
|
|
35
|
+
private lastFailureTime;
|
|
36
|
+
constructor(threshold?: number, cooldownMs?: number);
|
|
37
|
+
/** Execute an operation through the circuit breaker. */
|
|
38
|
+
execute<T>(fn: () => T, operation: string): T;
|
|
39
|
+
private onSuccess;
|
|
40
|
+
private onFailure;
|
|
41
|
+
get consecutiveFailures(): number;
|
|
42
|
+
get currentState(): CircuitState;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Thrown when an optimistic CAS write (update-ref expected-old) fails after
|
|
46
|
+
* exhausting all retry attempts. Callers may surface, requeue, or retry with
|
|
47
|
+
* application-level coordination. Distinct from GitExecError, which signals
|
|
48
|
+
* a real git failure (corruption, permission, broken repo).
|
|
49
|
+
*/
|
|
50
|
+
export declare class StateBackendConcurrencyError extends Error {
|
|
51
|
+
readonly operation: string;
|
|
52
|
+
readonly attempts: number;
|
|
53
|
+
readonly lastStderr: string;
|
|
54
|
+
readonly name = "StateBackendConcurrencyError";
|
|
55
|
+
constructor(operation: string, attempts: number, lastStderr: string);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Attempt an atomic ref update with compare-and-swap semantics.
|
|
59
|
+
*
|
|
60
|
+
* `expectedOldSha` of `null` means "create only if does not exist"
|
|
61
|
+
* (passed as 40 zeros, git's canonical no-such-ref sentinel).
|
|
62
|
+
*
|
|
63
|
+
* Returns `{ ok: true }` on success, `{ ok: false, stderr }` on CAS conflict,
|
|
64
|
+
* and re-throws any non-CAS git failure (corruption, permission, etc.).
|
|
65
|
+
*/
|
|
66
|
+
declare function tryUpdateRef(ref: string, newSha: string, expectedOldSha: string | null, cwd: string): {
|
|
67
|
+
ok: boolean;
|
|
68
|
+
stderr: string;
|
|
69
|
+
};
|
|
70
|
+
export declare function _setCasInjectorForTesting(fn: ((ref: string) => {
|
|
71
|
+
ok: boolean;
|
|
72
|
+
stderr: string;
|
|
73
|
+
} | null) | null): void;
|
|
74
|
+
/**
|
|
75
|
+
* Internal CAS primitive — exported for unit tests only.
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
export declare const _tryUpdateRefForTesting: typeof tryUpdateRef;
|
|
17
79
|
export declare class WorktreeBackend implements StateBackend {
|
|
18
80
|
readonly name = "local";
|
|
19
81
|
private readonly root;
|
|
@@ -34,16 +96,40 @@ export declare class GitNotesBackend implements StateBackend {
|
|
|
34
96
|
readonly name = "git-notes";
|
|
35
97
|
private readonly cwd;
|
|
36
98
|
private readonly ref;
|
|
37
|
-
private
|
|
99
|
+
private readonly breaker;
|
|
100
|
+
private _rootCommit;
|
|
38
101
|
constructor(repoRoot: string);
|
|
102
|
+
/** Returns the root commit SHA — a stable anchor that never moves. Cached after first call. */
|
|
103
|
+
private rootCommit;
|
|
104
|
+
/** Resolve the current SHA of refs/notes/<ref>, or null if it doesn't exist. */
|
|
105
|
+
private readNotesRef;
|
|
39
106
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
107
|
+
* Load the JSON blob attached to the root commit at a SPECIFIC notes ref SHA.
|
|
108
|
+
* Reading at a pinned SHA (not the live ref tip) is the foundation of the CAS
|
|
109
|
+
* loop — without it, a writer could observe state at version N, build version
|
|
110
|
+
* N+1, but race against another writer who already advanced to N+1' (losing
|
|
111
|
+
* data). With a pinned read, the subsequent update-ref CAS catches the race.
|
|
112
|
+
*
|
|
113
|
+
* NOTE: this relies on the notes tree having no fanout. Git uses fanout
|
|
114
|
+
* (ab/cdef.../) only when many notes are present; we only ever store a single
|
|
115
|
+
* note (on the root commit), so the path is just `<refSha>:<anchor>`.
|
|
43
116
|
*/
|
|
44
|
-
private
|
|
117
|
+
private loadBlobAt;
|
|
118
|
+
/** Convenience reader at the live ref tip (used for read-only operations). */
|
|
45
119
|
private loadBlob;
|
|
46
|
-
|
|
120
|
+
/**
|
|
121
|
+
* Build a new notes commit and attempt to atomically swing refs/notes/<ref>
|
|
122
|
+
* from `expectedOldRefSha` to it. Returns the same `{ ok, stderr }` shape as
|
|
123
|
+
* tryUpdateRef so the caller's retry loop can act.
|
|
124
|
+
*/
|
|
125
|
+
private atomicSaveBlob;
|
|
126
|
+
/**
|
|
127
|
+
* Run a mutator under optimistic CAS. The mutator receives the current blob
|
|
128
|
+
* (re-read on every attempt) and may mutate it; its return value is forwarded
|
|
129
|
+
* to the caller on success. On CAS conflict, the loop retries with jittered
|
|
130
|
+
* backoff up to CAS_MAX_ATTEMPTS times, then throws StateBackendConcurrencyError.
|
|
131
|
+
*/
|
|
132
|
+
private mutateBlob;
|
|
47
133
|
read(relativePath: string): string | undefined;
|
|
48
134
|
write(relativePath: string, content: string): void;
|
|
49
135
|
exists(relativePath: string): boolean;
|
|
@@ -55,6 +141,7 @@ export declare class OrphanBranchBackend implements StateBackend {
|
|
|
55
141
|
readonly name = "orphan";
|
|
56
142
|
private readonly cwd;
|
|
57
143
|
private readonly branch;
|
|
144
|
+
private readonly breaker;
|
|
58
145
|
constructor(repoRoot: string, branch?: string);
|
|
59
146
|
private ensureBranch;
|
|
60
147
|
read(relativePath: string): string | undefined;
|
|
@@ -110,18 +197,34 @@ export declare class StateBackendStorageAdapter implements StorageProvider {
|
|
|
110
197
|
/** Convert absolute path to relative path for the backend. */
|
|
111
198
|
private toRelative;
|
|
112
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Result of promoteNotes — how many notes were moved, archived, or skipped.
|
|
202
|
+
*/
|
|
203
|
+
export interface PromoteNotesResult {
|
|
204
|
+
/** Orphan keys written for notes flagged `promote_to_permanent`. */
|
|
205
|
+
promoted: string[];
|
|
206
|
+
/** Orphan keys written for notes flagged `archive_on_close`. */
|
|
207
|
+
archived: string[];
|
|
208
|
+
/** Count of notes that had neither flag and were left in place. */
|
|
209
|
+
skipped: number;
|
|
210
|
+
}
|
|
113
211
|
/**
|
|
114
212
|
* Two-Layer Backend — combines git-notes (commit-scoped annotations) with orphan
|
|
115
213
|
* branch (permanent state). Reads from orphan for bulk state, writes to both:
|
|
116
214
|
* - Git notes for commit-scoped "why" annotations (per-agent namespace)
|
|
117
215
|
* - Orphan branch for permanent state (decisions, histories, logs)
|
|
118
216
|
*
|
|
119
|
-
*
|
|
217
|
+
* The notes layer is a real, callable consumer in this backend: call
|
|
218
|
+
* {@link TwoLayerBackend.promoteNotes} after a PR merges to move notes flagged
|
|
219
|
+
* with `promote_to_permanent` into the orphan store, and copy notes flagged
|
|
220
|
+
* with `archive_on_close` into `archive/`. {@link TwoLayerBackend.readNote}
|
|
221
|
+
* returns a single note's payload.
|
|
120
222
|
*/
|
|
121
223
|
export declare class TwoLayerBackend implements StateBackend {
|
|
122
224
|
readonly name = "two-layer";
|
|
123
|
-
|
|
124
|
-
|
|
225
|
+
readonly notes: GitNotesBackend;
|
|
226
|
+
readonly orphan: OrphanBranchBackend;
|
|
227
|
+
private readonly repoRoot;
|
|
125
228
|
constructor(repoRoot: string);
|
|
126
229
|
/** Read from orphan (the permanent store) */
|
|
127
230
|
read(key: string): string | undefined;
|
|
@@ -131,9 +234,51 @@ export declare class TwoLayerBackend implements StateBackend {
|
|
|
131
234
|
exists(key: string): boolean;
|
|
132
235
|
delete(key: string): boolean;
|
|
133
236
|
append(key: string, value: string): void;
|
|
237
|
+
/**
|
|
238
|
+
* Read a single git-notes payload as parsed JSON.
|
|
239
|
+
*
|
|
240
|
+
* Returns `null` if no note exists on the given commit for the given ref,
|
|
241
|
+
* or if the note body is not valid JSON.
|
|
242
|
+
*/
|
|
243
|
+
readNote(ref: string, commitSha: string): unknown | null;
|
|
244
|
+
/**
|
|
245
|
+
* Walk all notes attached to commits reachable from HEAD on the given ref
|
|
246
|
+
* and act based on their flags:
|
|
247
|
+
*
|
|
248
|
+
* - `promote_to_permanent: true` — write payload to the orphan layer under
|
|
249
|
+
* `promoted/<ref>/<sha>.json` and REMOVE the source note (the note has
|
|
250
|
+
* been promoted to permanent state and is no longer needed).
|
|
251
|
+
* - `archive_on_close: true` — copy payload to the orphan layer under
|
|
252
|
+
* `archive/<ref>/<sha>.json` and KEEP the source note (archive = copy).
|
|
253
|
+
* - Otherwise — leave the note alone (ephemeral, not worth promoting).
|
|
254
|
+
*
|
|
255
|
+
* Notes that fail to parse as JSON are counted as skipped.
|
|
256
|
+
*/
|
|
257
|
+
promoteNotes(ref: string): PromoteNotesResult;
|
|
258
|
+
/** True for refs that look like `squad/<name>` — alphanumerics, dash, underscore, slash. */
|
|
259
|
+
private isSafeRef;
|
|
260
|
+
/** True for SHA-1 hex (40 chars) or SHA-256 hex (64 chars). */
|
|
261
|
+
private isSafeCommitSha;
|
|
262
|
+
/** Pass the ref through as path segments; normalizeKey will validate each. */
|
|
263
|
+
private sanitizeRefForKey;
|
|
134
264
|
}
|
|
135
265
|
export interface StateBackendConfig {
|
|
136
266
|
stateBackend?: StateBackendType;
|
|
137
267
|
}
|
|
138
268
|
export declare function resolveStateBackend(squadDir: string, repoRoot: string, cliOverride?: StateBackendType): StateBackend;
|
|
269
|
+
/**
|
|
270
|
+
* Read-only health check for a state backend.
|
|
271
|
+
* Verifies the backend is accessible without mutating state.
|
|
272
|
+
*
|
|
273
|
+
* For {@link TwoLayerBackend}, both layers are probed independently — the
|
|
274
|
+
* notes layer can fail (corrupt notes ref, missing commits) even when the
|
|
275
|
+
* orphan layer is healthy, and we surface that explicitly.
|
|
276
|
+
*/
|
|
277
|
+
export declare function verifyStateBackend(backend: StateBackend): {
|
|
278
|
+
ok: boolean;
|
|
279
|
+
error?: string;
|
|
280
|
+
};
|
|
281
|
+
/** @internal Reset the one-shot git-notes migration warn flag. Only for use in tests. */
|
|
282
|
+
export declare function _resetGitNotesMigrationWarnForTesting(): void;
|
|
283
|
+
export {};
|
|
139
284
|
//# sourceMappingURL=state-backend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-backend.d.ts","sourceRoot":"","sources":["../src/state-backend.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"state-backend.d.ts","sourceRoot":"","sources":["../src/state-backend.ts"],"names":[],"mappings":"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"}
|