@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.
Files changed (127) hide show
  1. package/dist/adapter/client.d.ts.map +1 -1
  2. package/dist/adapter/client.js +16 -3
  3. package/dist/adapter/client.js.map +1 -1
  4. package/dist/adapter/types.d.ts +6 -1
  5. package/dist/adapter/types.d.ts.map +1 -1
  6. package/dist/agents/charter-compiler.d.ts +2 -0
  7. package/dist/agents/charter-compiler.d.ts.map +1 -1
  8. package/dist/agents/charter-compiler.js +6 -1
  9. package/dist/agents/charter-compiler.js.map +1 -1
  10. package/dist/agents/index.d.ts.map +1 -1
  11. package/dist/agents/index.js +24 -25
  12. package/dist/agents/index.js.map +1 -1
  13. package/dist/agents/lifecycle.d.ts.map +1 -1
  14. package/dist/agents/lifecycle.js +11 -2
  15. package/dist/agents/lifecycle.js.map +1 -1
  16. package/dist/agents/onboarding.d.ts.map +1 -1
  17. package/dist/agents/onboarding.js +24 -0
  18. package/dist/agents/onboarding.js.map +1 -1
  19. package/dist/config/agent-source.d.ts.map +1 -1
  20. package/dist/config/agent-source.js +60 -33
  21. package/dist/config/agent-source.js.map +1 -1
  22. package/dist/config/feature-audit.js +1 -1
  23. package/dist/config/feature-audit.js.map +1 -1
  24. package/dist/config/init.d.ts +4 -0
  25. package/dist/config/init.d.ts.map +1 -1
  26. package/dist/config/init.js +177 -44
  27. package/dist/config/init.js.map +1 -1
  28. package/dist/index.d.ts +4 -2
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +3 -2
  31. package/dist/index.js.map +1 -1
  32. package/dist/marketplace/index.d.ts +7 -0
  33. package/dist/marketplace/index.d.ts.map +1 -1
  34. package/dist/marketplace/index.js +4 -0
  35. package/dist/marketplace/index.js.map +1 -1
  36. package/dist/marketplace/plugin-manifest.d.ts +113 -0
  37. package/dist/marketplace/plugin-manifest.d.ts.map +1 -0
  38. package/dist/marketplace/plugin-manifest.js +820 -0
  39. package/dist/marketplace/plugin-manifest.js.map +1 -0
  40. package/dist/marketplace/plugin-runtime.d.ts +37 -0
  41. package/dist/marketplace/plugin-runtime.d.ts.map +1 -0
  42. package/dist/marketplace/plugin-runtime.js +217 -0
  43. package/dist/marketplace/plugin-runtime.js.map +1 -0
  44. package/dist/marketplace/plugin-state.d.ts +89 -0
  45. package/dist/marketplace/plugin-state.d.ts.map +1 -0
  46. package/dist/marketplace/plugin-state.js +278 -0
  47. package/dist/marketplace/plugin-state.js.map +1 -0
  48. package/dist/memory/index.d.ts +262 -0
  49. package/dist/memory/index.d.ts.map +1 -0
  50. package/dist/memory/index.js +1122 -0
  51. package/dist/memory/index.js.map +1 -0
  52. package/dist/multi-squad.d.ts.map +1 -1
  53. package/dist/multi-squad.js +5 -2
  54. package/dist/multi-squad.js.map +1 -1
  55. package/dist/platform/azure-devops.d.ts.map +1 -1
  56. package/dist/platform/azure-devops.js +17 -3
  57. package/dist/platform/azure-devops.js.map +1 -1
  58. package/dist/platform/detect.d.ts.map +1 -1
  59. package/dist/platform/detect.js +12 -5
  60. package/dist/platform/detect.js.map +1 -1
  61. package/dist/platform/index.d.ts.map +1 -1
  62. package/dist/platform/index.js +26 -0
  63. package/dist/platform/index.js.map +1 -1
  64. package/dist/ralph/triage.js +1 -1
  65. package/dist/ralph/triage.js.map +1 -1
  66. package/dist/resolution.d.ts +18 -0
  67. package/dist/resolution.d.ts.map +1 -1
  68. package/dist/resolution.js +64 -2
  69. package/dist/resolution.js.map +1 -1
  70. package/dist/runtime/memory-value-benchmark.d.ts +61 -0
  71. package/dist/runtime/memory-value-benchmark.d.ts.map +1 -0
  72. package/dist/runtime/memory-value-benchmark.js +245 -0
  73. package/dist/runtime/memory-value-benchmark.js.map +1 -0
  74. package/dist/runtime/scheduler.d.ts +8 -0
  75. package/dist/runtime/scheduler.d.ts.map +1 -1
  76. package/dist/runtime/scheduler.js +52 -5
  77. package/dist/runtime/scheduler.js.map +1 -1
  78. package/dist/sharing/export.d.ts +1 -0
  79. package/dist/sharing/export.d.ts.map +1 -1
  80. package/dist/sharing/export.js +10 -0
  81. package/dist/sharing/export.js.map +1 -1
  82. package/dist/sharing/import.d.ts.map +1 -1
  83. package/dist/sharing/import.js +3 -2
  84. package/dist/sharing/import.js.map +1 -1
  85. package/dist/sharing/index.d.ts +1 -0
  86. package/dist/sharing/index.d.ts.map +1 -1
  87. package/dist/sharing/index.js +1 -0
  88. package/dist/sharing/index.js.map +1 -1
  89. package/dist/sharing/repo-sync.d.ts +80 -0
  90. package/dist/sharing/repo-sync.d.ts.map +1 -0
  91. package/dist/sharing/repo-sync.js +138 -0
  92. package/dist/sharing/repo-sync.js.map +1 -0
  93. package/dist/state-backend.d.ts +154 -9
  94. package/dist/state-backend.d.ts.map +1 -1
  95. package/dist/state-backend.js +729 -184
  96. package/dist/state-backend.js.map +1 -1
  97. package/dist/tools/index.d.ts +39 -1
  98. package/dist/tools/index.d.ts.map +1 -1
  99. package/dist/tools/index.js +395 -2
  100. package/dist/tools/index.js.map +1 -1
  101. package/dist/utils/map-with-limit.d.ts +37 -0
  102. package/dist/utils/map-with-limit.d.ts.map +1 -0
  103. package/dist/utils/map-with-limit.js +81 -0
  104. package/dist/utils/map-with-limit.js.map +1 -0
  105. package/package.json +6 -2
  106. package/templates/after-agent-reference.md +64 -0
  107. package/templates/ceremony-reference.md +82 -0
  108. package/templates/client-compatibility-reference.md +46 -0
  109. package/templates/copilot-agent.md +96 -0
  110. package/templates/copilot-instructions.md +14 -0
  111. package/templates/model-selection-reference.md +101 -0
  112. package/templates/prd-intake.md +105 -0
  113. package/templates/rai-charter.md +110 -0
  114. package/templates/rai-policy.md +103 -0
  115. package/templates/ralph-reference.md +141 -0
  116. package/templates/routing.md +1 -0
  117. package/templates/scribe-charter.md +18 -151
  118. package/templates/session-init-reference.md +199 -0
  119. package/templates/skills/e2e-template-testing/SKILL.md +557 -0
  120. package/templates/skills/fact-checking/SKILL.md +61 -0
  121. package/templates/spawn-reference.md +131 -0
  122. package/templates/squad.agent.md.template +200 -625
  123. package/templates/workflow-wiring-appendix-a-code-reviewer.md +131 -0
  124. package/templates/workflow-wiring-appendix-b-documenter.md +140 -0
  125. package/templates/workflow-wiring-guide.md +276 -0
  126. package/templates/workflows/squad-heartbeat.yml +167 -167
  127. package/templates/worktree-reference.md +126 -0
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/sharing/export.ts"],"names":[],"mappings":"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"}
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,CA8Ed"}
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"}
@@ -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
- const routingContent = formatRoutingRules(bundle.routingRules);
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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"}
@@ -9,4 +9,5 @@ export * from './agent-repo.js';
9
9
  export * from './cache.js';
10
10
  export * from './conflicts.js';
11
11
  export * from './consult.js';
12
+ export * from './repo-sync.js';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -9,4 +9,5 @@ export * from './agent-repo.js';
9
9
  export * from './cache.js';
10
10
  export * from './conflicts.js';
11
11
  export * from './consult.js';
12
+ export * from './repo-sync.js';
12
13
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -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 cachedAnchor;
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
- * Return the repo's root commit the first commit with no parents.
41
- * This commit exists on every branch, so the note persists across
42
- * branch switches (unlike HEAD, which moves with the checked-out branch).
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 getAnchorCommit;
117
+ private loadBlobAt;
118
+ /** Convenience reader at the live ref tip (used for read-only operations). */
45
119
  private loadBlob;
46
- private saveBlob;
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
- * Ralph promotes notes with promote_to_permanent after PR merge.
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
- private readonly notes;
124
- private readonly orphan;
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":"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"}
1
+ {"version":3,"file":"state-backend.d.ts","sourceRoot":"","sources":["../src/state-backend.ts"],"names":[],"mappings":"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"}