@bradygaster/squad-sdk 0.9.0 → 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 +44 -0
- 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 +39 -48
- 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/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 +84 -63
- 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 +66 -64
- 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/scribe-charter.md +4 -0
- package/templates/skills/cross-machine-coordination/SKILL.md +434 -0
- package/templates/skills/error-recovery/SKILL.md +99 -0
- package/templates/skills/iterative-retrieval/SKILL.md +165 -0
- package/templates/skills/notification-routing/SKILL.md +105 -0
- package/templates/skills/pr-screenshots/SKILL.md +149 -0
- 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 +84 -376
- package/templates/skills/retro-enforcement/SKILL.md +148 -0
- package/templates/skills/tiered-memory/SKILL.md +234 -0
- package/templates/skills/windows-compatibility/SKILL.md +24 -0
- package/templates/{squad.agent.md → squad.agent.md.template} +57 -28
- package/templates/workflows/squad-ci.yml +1 -1
- package/templates/workflows/squad-heartbeat.yml +0 -4
- package/templates/workflows/squad-insider-release.yml +1 -1
- package/templates/workflows/squad-preview.yml +1 -1
- package/templates/workflows/squad-release.yml +1 -1
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Agent Source Registry
|
|
3
3
|
* Pluggable agent discovery and loading
|
|
4
4
|
*/
|
|
5
|
-
import * as fs from 'fs/promises';
|
|
6
5
|
import * as path from 'path';
|
|
6
|
+
import { FSStorageProvider } from '../storage/index.js';
|
|
7
7
|
/** Directories to scan for agents, in priority order. */
|
|
8
8
|
const AGENT_DIRS = ['.squad/agents', '.ai-team/agents'];
|
|
9
9
|
/**
|
|
@@ -45,10 +45,14 @@ export function parseCharterMetadata(content) {
|
|
|
45
45
|
}
|
|
46
46
|
export class LocalAgentSource {
|
|
47
47
|
basePath;
|
|
48
|
+
storage;
|
|
49
|
+
state;
|
|
48
50
|
name = 'local';
|
|
49
51
|
type = 'local';
|
|
50
|
-
constructor(basePath) {
|
|
52
|
+
constructor(basePath, storage = new FSStorageProvider(), state) {
|
|
51
53
|
this.basePath = basePath;
|
|
54
|
+
this.storage = storage;
|
|
55
|
+
this.state = state;
|
|
52
56
|
}
|
|
53
57
|
/**
|
|
54
58
|
* Resolve the agents directory, preferring .squad/agents over .ai-team/agents.
|
|
@@ -56,69 +60,104 @@ export class LocalAgentSource {
|
|
|
56
60
|
async resolveAgentsDir() {
|
|
57
61
|
for (const dir of AGENT_DIRS) {
|
|
58
62
|
const fullPath = path.join(this.basePath, dir);
|
|
63
|
+
if (await this.storage.isDirectory(fullPath))
|
|
64
|
+
return fullPath;
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
async listAgents() {
|
|
69
|
+
// Use SquadState agents collection when available
|
|
70
|
+
if (this.state) {
|
|
59
71
|
try {
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
72
|
+
const names = await this.state.agents.list();
|
|
73
|
+
const manifests = [];
|
|
74
|
+
for (const entryName of names) {
|
|
75
|
+
try {
|
|
76
|
+
const content = await this.state.agents.get(entryName).charter();
|
|
77
|
+
const meta = parseCharterMetadata(content);
|
|
78
|
+
manifests.push({
|
|
79
|
+
name: meta.name || entryName,
|
|
80
|
+
role: meta.role || 'agent',
|
|
81
|
+
source: 'local',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return manifests;
|
|
63
89
|
}
|
|
64
90
|
catch {
|
|
65
|
-
//
|
|
91
|
+
// Fall through to raw StorageProvider path
|
|
66
92
|
}
|
|
67
93
|
}
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
async listAgents() {
|
|
94
|
+
// Fallback: raw StorageProvider scan
|
|
71
95
|
const agentsDir = await this.resolveAgentsDir();
|
|
72
96
|
if (!agentsDir)
|
|
73
97
|
return [];
|
|
74
98
|
const manifests = [];
|
|
75
99
|
let entries;
|
|
76
100
|
try {
|
|
77
|
-
entries = await
|
|
101
|
+
entries = await this.storage.list(agentsDir);
|
|
78
102
|
}
|
|
79
103
|
catch {
|
|
80
104
|
return [];
|
|
81
105
|
}
|
|
82
|
-
for (const
|
|
83
|
-
|
|
106
|
+
for (const entryName of entries) {
|
|
107
|
+
const entryPath = path.join(agentsDir, entryName);
|
|
108
|
+
if (!(await this.storage.isDirectory(entryPath)))
|
|
84
109
|
continue;
|
|
85
|
-
const charterPath = path.join(
|
|
110
|
+
const charterPath = path.join(entryPath, 'charter.md');
|
|
111
|
+
const content = await this.storage.read(charterPath);
|
|
112
|
+
if (!content)
|
|
113
|
+
continue;
|
|
114
|
+
const meta = parseCharterMetadata(content);
|
|
115
|
+
manifests.push({
|
|
116
|
+
name: meta.name || entryName,
|
|
117
|
+
role: meta.role || 'agent',
|
|
118
|
+
source: 'local',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return manifests;
|
|
122
|
+
}
|
|
123
|
+
async getAgent(name) {
|
|
124
|
+
// Use SquadState agents collection when available
|
|
125
|
+
if (this.state) {
|
|
86
126
|
try {
|
|
87
|
-
const
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
127
|
+
const handle = this.state.agents.get(name);
|
|
128
|
+
const charter = await handle.charter();
|
|
129
|
+
const meta = parseCharterMetadata(charter);
|
|
130
|
+
// Read history via raw storage (history parsing is more granular in shadow module)
|
|
131
|
+
const agentsDir = await this.resolveAgentsDir();
|
|
132
|
+
const history = agentsDir
|
|
133
|
+
? await this.storage.read(path.join(agentsDir, name, 'history.md'))
|
|
134
|
+
: undefined;
|
|
135
|
+
return {
|
|
136
|
+
name: meta.name || name,
|
|
91
137
|
role: meta.role || 'agent',
|
|
92
138
|
source: 'local',
|
|
93
|
-
|
|
139
|
+
charter,
|
|
140
|
+
model: meta.model,
|
|
141
|
+
tools: meta.tools,
|
|
142
|
+
skills: meta.skills,
|
|
143
|
+
history,
|
|
144
|
+
};
|
|
94
145
|
}
|
|
95
146
|
catch {
|
|
96
|
-
//
|
|
147
|
+
// Agent not found via state, fall through
|
|
97
148
|
}
|
|
98
149
|
}
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
async getAgent(name) {
|
|
150
|
+
// Fallback: raw StorageProvider
|
|
102
151
|
const agentsDir = await this.resolveAgentsDir();
|
|
103
152
|
if (!agentsDir)
|
|
104
153
|
return null;
|
|
105
154
|
const charterPath = path.join(agentsDir, name, 'charter.md');
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
charter = await fs.readFile(charterPath, 'utf-8');
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
155
|
+
const charter = await this.storage.read(charterPath);
|
|
156
|
+
if (!charter)
|
|
111
157
|
return null;
|
|
112
|
-
}
|
|
113
158
|
const meta = parseCharterMetadata(charter);
|
|
114
159
|
// Optionally read history.md
|
|
115
|
-
|
|
116
|
-
try {
|
|
117
|
-
history = await fs.readFile(path.join(agentsDir, name, 'history.md'), 'utf-8');
|
|
118
|
-
}
|
|
119
|
-
catch {
|
|
120
|
-
// history is optional
|
|
121
|
-
}
|
|
160
|
+
const history = await this.storage.read(path.join(agentsDir, name, 'history.md'));
|
|
122
161
|
return {
|
|
123
162
|
name: meta.name || name,
|
|
124
163
|
role: meta.role || 'agent',
|
|
@@ -131,15 +170,20 @@ export class LocalAgentSource {
|
|
|
131
170
|
};
|
|
132
171
|
}
|
|
133
172
|
async getCharter(name) {
|
|
173
|
+
// Use SquadState agents collection when available
|
|
174
|
+
if (this.state) {
|
|
175
|
+
try {
|
|
176
|
+
return await this.state.agents.get(name).charter();
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Fallback: raw StorageProvider
|
|
134
183
|
const agentsDir = await this.resolveAgentsDir();
|
|
135
184
|
if (!agentsDir)
|
|
136
185
|
return null;
|
|
137
|
-
|
|
138
|
-
return await fs.readFile(path.join(agentsDir, name, 'charter.md'), 'utf-8');
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
return null;
|
|
142
|
-
}
|
|
186
|
+
return await this.storage.read(path.join(agentsDir, name, 'charter.md')) ?? null;
|
|
143
187
|
}
|
|
144
188
|
}
|
|
145
189
|
/** Parse "owner/repo" format into components. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-source.js","sourceRoot":"","sources":["../../src/config/agent-source.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-source.js","sourceRoot":"","sources":["../../src/config/agent-source.ts"],"names":[],"mappings":"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"}
|
package/dist/config/init.d.ts
CHANGED
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module config/init
|
|
9
9
|
*/
|
|
10
|
+
import type { StorageProvider } from '../storage/index.js';
|
|
10
11
|
import type { SubSquadDefinition } from '../streams/types.js';
|
|
11
12
|
/**
|
|
12
13
|
* Get the SDK templates directory path.
|
|
13
14
|
*/
|
|
14
|
-
export declare function getSDKTemplatesDir(): string | null;
|
|
15
|
+
export declare function getSDKTemplatesDir(storage?: StorageProvider): string | null;
|
|
15
16
|
/**
|
|
16
17
|
* Agent specification for initialization.
|
|
17
18
|
*/
|
|
@@ -83,12 +84,12 @@ export interface InitResult {
|
|
|
83
84
|
/** Path to .squad/ directory */
|
|
84
85
|
squadDir: string;
|
|
85
86
|
}
|
|
86
|
-
export declare function initSquad(options: InitOptions): Promise<InitResult>;
|
|
87
|
+
export declare function initSquad(options: InitOptions, storage?: StorageProvider): Promise<InitResult>;
|
|
87
88
|
/**
|
|
88
89
|
* Clean up orphan .init-prompt file.
|
|
89
90
|
* Called by CLI on Ctrl+C abort to remove partial state.
|
|
90
91
|
*
|
|
91
92
|
* @param squadDir - Path to the .squad directory
|
|
92
93
|
*/
|
|
93
|
-
export declare function cleanupOrphanInitPrompt(squadDir: string): Promise<void>;
|
|
94
|
+
export declare function cleanupOrphanInitPrompt(squadDir: string, storage?: StorageProvider): Promise<void>;
|
|
94
95
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/config/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/config/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAyC,GAAG,MAAM,GAAG,IAAI,CAiBpG;AA0BD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uBAAuB;IACvB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,iHAAiH;IACjH,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;IAC1D,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChF,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sFAAsF;IACtF,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,qFAAqF;IACrF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,SAAS,CAAC,EAAE;QACV,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wDAAwD;IACxD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkdD,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,eAAyC,GAAG,OAAO,CAAC,UAAU,CAAC,CAykB7H;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,eAAyC,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjI"}
|
package/dist/config/init.js
CHANGED
|
@@ -7,10 +7,9 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module config/init
|
|
9
9
|
*/
|
|
10
|
-
import { mkdir, writeFile, appendFile, unlink } from 'fs/promises';
|
|
11
10
|
import { join, dirname } from 'path';
|
|
12
11
|
import { fileURLToPath } from 'url';
|
|
13
|
-
import {
|
|
12
|
+
import { FSStorageProvider } from '../storage/index.js';
|
|
14
13
|
import { execFileSync } from 'node:child_process';
|
|
15
14
|
import { MODELS } from '../runtime/constants.js';
|
|
16
15
|
import { getRoleById } from '../roles/index.js';
|
|
@@ -20,17 +19,17 @@ import { getRoleById } from '../roles/index.js';
|
|
|
20
19
|
/**
|
|
21
20
|
* Get the SDK templates directory path.
|
|
22
21
|
*/
|
|
23
|
-
export function getSDKTemplatesDir() {
|
|
22
|
+
export function getSDKTemplatesDir(storage = new FSStorageProvider()) {
|
|
24
23
|
// Use fileURLToPath for cross-platform compatibility (handles Windows drive letters, URL encoding)
|
|
25
24
|
const currentDir = dirname(fileURLToPath(import.meta.url));
|
|
26
25
|
// Try relative to this file (in dist/)
|
|
27
26
|
const distPath = join(currentDir, '../../templates');
|
|
28
|
-
if (existsSync(distPath)) {
|
|
27
|
+
if (storage.existsSync(distPath)) {
|
|
29
28
|
return distPath;
|
|
30
29
|
}
|
|
31
30
|
// Try relative to package root (for dev)
|
|
32
31
|
const pkgPath = join(currentDir, '../../../templates');
|
|
33
|
-
if (existsSync(pkgPath)) {
|
|
32
|
+
if (storage.existsSync(pkgPath)) {
|
|
34
33
|
return pkgPath;
|
|
35
34
|
}
|
|
36
35
|
return null;
|
|
@@ -38,18 +37,18 @@ export function getSDKTemplatesDir() {
|
|
|
38
37
|
/**
|
|
39
38
|
* Copy a directory recursively.
|
|
40
39
|
*/
|
|
41
|
-
function copyRecursiveSync(src, dest) {
|
|
42
|
-
if (!existsSync(dest)) {
|
|
43
|
-
mkdirSync(dest, { recursive: true });
|
|
40
|
+
function copyRecursiveSync(src, dest, storage = new FSStorageProvider()) {
|
|
41
|
+
if (!storage.existsSync(dest)) {
|
|
42
|
+
storage.mkdirSync(dest, { recursive: true });
|
|
44
43
|
}
|
|
45
|
-
for (const entry of
|
|
44
|
+
for (const entry of storage.isDirectorySync(src) ? storage.listSync(src) : []) {
|
|
46
45
|
const srcPath = join(src, entry);
|
|
47
46
|
const destPath = join(dest, entry);
|
|
48
|
-
if (
|
|
49
|
-
copyRecursiveSync(srcPath, destPath);
|
|
47
|
+
if (storage.isDirectorySync(srcPath)) {
|
|
48
|
+
copyRecursiveSync(srcPath, destPath, storage);
|
|
50
49
|
}
|
|
51
50
|
else {
|
|
52
|
-
|
|
51
|
+
storage.copySync(srcPath, destPath);
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
}
|
|
@@ -467,7 +466,7 @@ const FRAMEWORK_WORKFLOWS = [
|
|
|
467
466
|
'squad-triage.yml',
|
|
468
467
|
'sync-squad-labels.yml',
|
|
469
468
|
];
|
|
470
|
-
export async function initSquad(options) {
|
|
469
|
+
export async function initSquad(options, storage = new FSStorageProvider()) {
|
|
471
470
|
const { teamRoot, projectName, projectDescription, agents, configFormat = 'typescript', userName, skipExisting = true, includeWorkflows = true, includeTemplates = true, includeMcpConfig = true, projectType = 'unknown', version = '0.0.0', } = options;
|
|
472
471
|
const createdFiles = [];
|
|
473
472
|
const skippedFiles = [];
|
|
@@ -498,23 +497,22 @@ export async function initSquad(options) {
|
|
|
498
497
|
};
|
|
499
498
|
// Helper to write file (respects skipExisting)
|
|
500
499
|
const writeIfNotExists = async (filePath, content) => {
|
|
501
|
-
if (existsSync(filePath) && skipExisting) {
|
|
500
|
+
if (storage.existsSync(filePath) && skipExisting) {
|
|
502
501
|
skippedFiles.push(toRelativePath(filePath));
|
|
503
502
|
return false;
|
|
504
503
|
}
|
|
505
|
-
await
|
|
506
|
-
await writeFile(filePath, content, 'utf-8');
|
|
504
|
+
await storage.write(filePath, content);
|
|
507
505
|
createdFiles.push(toRelativePath(filePath));
|
|
508
506
|
return true;
|
|
509
507
|
};
|
|
510
508
|
// Helper to copy file (respects skipExisting)
|
|
511
509
|
const copyIfNotExists = async (src, dest) => {
|
|
512
|
-
if (existsSync(dest) && skipExisting) {
|
|
510
|
+
if (storage.existsSync(dest) && skipExisting) {
|
|
513
511
|
skippedFiles.push(toRelativePath(dest));
|
|
514
512
|
return false;
|
|
515
513
|
}
|
|
516
|
-
await mkdir(dirname(dest), { recursive: true });
|
|
517
|
-
|
|
514
|
+
await storage.mkdir(dirname(dest), { recursive: true });
|
|
515
|
+
storage.copySync(src, dest);
|
|
518
516
|
createdFiles.push(toRelativePath(dest));
|
|
519
517
|
return true;
|
|
520
518
|
};
|
|
@@ -534,19 +532,45 @@ export async function initSquad(options) {
|
|
|
534
532
|
join(squadDir, 'log'),
|
|
535
533
|
];
|
|
536
534
|
for (const dir of directories) {
|
|
537
|
-
if (!existsSync(dir)) {
|
|
538
|
-
await mkdir(dir, { recursive: true });
|
|
535
|
+
if (!storage.existsSync(dir)) {
|
|
536
|
+
await storage.mkdir(dir, { recursive: true });
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
// -------------------------------------------------------------------------
|
|
540
|
+
// Scaffold .squad/casting/ files (policy, registry, history)
|
|
541
|
+
// -------------------------------------------------------------------------
|
|
542
|
+
const castingDir = join(squadDir, 'casting');
|
|
543
|
+
const castingFiles = [
|
|
544
|
+
{ name: 'policy.json', templateName: 'casting-policy.json', fallback: JSON.stringify({ casting_policy_version: '1.1', allowlist_universes: [], universe_capacity: {} }, null, 2) + '\n' },
|
|
545
|
+
{ name: 'registry.json', templateName: 'casting-registry.json', fallback: JSON.stringify({ agents: {} }, null, 2) + '\n' },
|
|
546
|
+
{ name: 'history.json', templateName: 'casting-history.json', fallback: JSON.stringify({ universe_usage_history: [], assignment_cast_snapshots: {} }, null, 2) + '\n' },
|
|
547
|
+
];
|
|
548
|
+
for (const cf of castingFiles) {
|
|
549
|
+
const dest = join(castingDir, cf.name);
|
|
550
|
+
if (!storage.existsSync(dest)) {
|
|
551
|
+
// Try to copy from SDK templates first, fall back to inline defaults
|
|
552
|
+
const templateSrc = templatesDir ? join(templatesDir, cf.templateName) : null;
|
|
553
|
+
if (templateSrc && storage.existsSync(templateSrc)) {
|
|
554
|
+
storage.copySync(templateSrc, dest);
|
|
555
|
+
}
|
|
556
|
+
else {
|
|
557
|
+
await storage.write(dest, cf.fallback);
|
|
558
|
+
}
|
|
559
|
+
createdFiles.push(toRelativePath(dest));
|
|
560
|
+
}
|
|
561
|
+
else {
|
|
562
|
+
skippedFiles.push(toRelativePath(dest));
|
|
539
563
|
}
|
|
540
564
|
}
|
|
541
565
|
// -------------------------------------------------------------------------
|
|
542
566
|
// Create .squad/config.json for squad settings
|
|
543
567
|
// -------------------------------------------------------------------------
|
|
544
568
|
const squadConfigPath = join(squadDir, 'config.json');
|
|
545
|
-
if (!existsSync(squadConfigPath)) {
|
|
569
|
+
if (!storage.existsSync(squadConfigPath)) {
|
|
546
570
|
// Detect platform from git remote for config
|
|
547
571
|
let detectedPlatform;
|
|
548
572
|
try {
|
|
549
|
-
const remoteUrl = execFileSync('git', ['remote', 'get-url', 'origin'], { cwd: teamRoot, encoding: 'utf-8' }).trim();
|
|
573
|
+
const remoteUrl = execFileSync('git', ['remote', 'get-url', 'origin'], { cwd: teamRoot, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
550
574
|
const remoteUrlLower = remoteUrl.toLowerCase();
|
|
551
575
|
if (remoteUrlLower.includes('dev.azure.com') || remoteUrlLower.includes('visualstudio.com') || remoteUrlLower.includes('ssh.dev.azure.com')) {
|
|
552
576
|
detectedPlatform = 'azure-devops';
|
|
@@ -566,7 +590,7 @@ export async function initSquad(options) {
|
|
|
566
590
|
// to discover available work item types for the project.
|
|
567
591
|
let introspectedTypes;
|
|
568
592
|
try {
|
|
569
|
-
const remoteUrl = execFileSync('git', ['remote', 'get-url', 'origin'], { cwd: teamRoot, encoding: 'utf-8' }).trim();
|
|
593
|
+
const remoteUrl = execFileSync('git', ['remote', 'get-url', 'origin'], { cwd: teamRoot, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
570
594
|
// Parse org/project from remote URL for introspection
|
|
571
595
|
const httpsMatch = remoteUrl.match(/dev\.azure\.com\/([^/]+)\/([^/]+)\/_git/i);
|
|
572
596
|
const sshMatch = remoteUrl.match(/ssh\.dev\.azure\.com:v3\/([^/]+)\/([^/]+)\//i);
|
|
@@ -605,7 +629,7 @@ export async function initSquad(options) {
|
|
|
605
629
|
if (options.extractionDisabled) {
|
|
606
630
|
squadConfig.extractionDisabled = true;
|
|
607
631
|
}
|
|
608
|
-
await
|
|
632
|
+
await storage.write(squadConfigPath, JSON.stringify(squadConfig, null, 2));
|
|
609
633
|
createdFiles.push(toRelativePath(squadConfigPath));
|
|
610
634
|
}
|
|
611
635
|
// -------------------------------------------------------------------------
|
|
@@ -633,7 +657,6 @@ export async function initSquad(options) {
|
|
|
633
657
|
const agentsDir = join(squadDir, 'agents');
|
|
634
658
|
for (const agent of agents) {
|
|
635
659
|
const agentDir = join(agentsDir, agent.name);
|
|
636
|
-
await mkdir(agentDir, { recursive: true });
|
|
637
660
|
agentDirs.push(agentDir);
|
|
638
661
|
// Create charter.md
|
|
639
662
|
const charterPath = join(agentDir, 'charter.md');
|
|
@@ -678,7 +701,7 @@ Reusable patterns and heuristics learned through work. NOT transcripts — each
|
|
|
678
701
|
// Create ceremonies.md
|
|
679
702
|
// -------------------------------------------------------------------------
|
|
680
703
|
const ceremoniesDest = join(squadDir, 'ceremonies.md');
|
|
681
|
-
if (templatesDir && existsSync(join(templatesDir, 'ceremonies.md'))) {
|
|
704
|
+
if (templatesDir && storage.existsSync(join(templatesDir, 'ceremonies.md'))) {
|
|
682
705
|
await copyIfNotExists(join(templatesDir, 'ceremonies.md'), ceremoniesDest);
|
|
683
706
|
}
|
|
684
707
|
// -------------------------------------------------------------------------
|
|
@@ -727,7 +750,7 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
727
750
|
// Create routing.md
|
|
728
751
|
// -------------------------------------------------------------------------
|
|
729
752
|
const routingPath = join(squadDir, 'routing.md');
|
|
730
|
-
if (templatesDir && existsSync(join(templatesDir, 'routing.md'))) {
|
|
753
|
+
if (templatesDir && storage.existsSync(join(templatesDir, 'routing.md'))) {
|
|
731
754
|
await copyIfNotExists(join(templatesDir, 'routing.md'), routingPath);
|
|
732
755
|
}
|
|
733
756
|
else {
|
|
@@ -749,11 +772,11 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
749
772
|
// Copy starter skills
|
|
750
773
|
// -------------------------------------------------------------------------
|
|
751
774
|
const skillsDir = join(teamRoot, '.copilot', 'skills');
|
|
752
|
-
if (templatesDir && existsSync(join(templatesDir, 'skills'))) {
|
|
775
|
+
if (templatesDir && storage.existsSync(join(templatesDir, 'skills'))) {
|
|
753
776
|
const skillsSrc = join(templatesDir, 'skills');
|
|
754
|
-
const existingSkills = existsSync(skillsDir) ?
|
|
777
|
+
const existingSkills = storage.existsSync(skillsDir) ? storage.listSync(skillsDir) : [];
|
|
755
778
|
if (existingSkills.length === 0) {
|
|
756
|
-
|
|
779
|
+
copyRecursiveSync(skillsSrc, skillsDir, storage);
|
|
757
780
|
createdFiles.push('.copilot/skills');
|
|
758
781
|
}
|
|
759
782
|
}
|
|
@@ -768,15 +791,15 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
768
791
|
'.squad/orchestration-log/** merge=union',
|
|
769
792
|
];
|
|
770
793
|
let existingAttrs = '';
|
|
771
|
-
if (existsSync(gitattributesPath)) {
|
|
772
|
-
existingAttrs =
|
|
794
|
+
if (storage.existsSync(gitattributesPath)) {
|
|
795
|
+
existingAttrs = storage.readSync(gitattributesPath) ?? '';
|
|
773
796
|
}
|
|
774
797
|
const missingRules = unionRules.filter(rule => !existingAttrs.includes(rule));
|
|
775
798
|
if (missingRules.length > 0) {
|
|
776
799
|
const block = (existingAttrs && !existingAttrs.endsWith('\n') ? '\n' : '')
|
|
777
800
|
+ '# Squad: union merge for append-only team state files\n'
|
|
778
801
|
+ missingRules.join('\n') + '\n';
|
|
779
|
-
await
|
|
802
|
+
await storage.append(gitattributesPath, block);
|
|
780
803
|
createdFiles.push(toRelativePath(gitattributesPath));
|
|
781
804
|
}
|
|
782
805
|
// -------------------------------------------------------------------------
|
|
@@ -792,27 +815,26 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
792
815
|
'.squad/sessions/',
|
|
793
816
|
];
|
|
794
817
|
let existingIgnore = '';
|
|
795
|
-
if (existsSync(gitignorePath)) {
|
|
796
|
-
existingIgnore =
|
|
818
|
+
if (storage.existsSync(gitignorePath)) {
|
|
819
|
+
existingIgnore = storage.readSync(gitignorePath) ?? '';
|
|
797
820
|
}
|
|
798
821
|
const missingIgnore = ignoreEntries.filter(entry => !existingIgnore.includes(entry));
|
|
799
822
|
if (missingIgnore.length > 0) {
|
|
800
823
|
const block = (existingIgnore && !existingIgnore.endsWith('\n') ? '\n' : '')
|
|
801
824
|
+ '# Squad: ignore runtime state (logs, inbox, sessions)\n'
|
|
802
825
|
+ missingIgnore.join('\n') + '\n';
|
|
803
|
-
await
|
|
826
|
+
await storage.append(gitignorePath, block);
|
|
804
827
|
createdFiles.push(toRelativePath(gitignorePath));
|
|
805
828
|
}
|
|
806
829
|
// -------------------------------------------------------------------------
|
|
807
830
|
// Create .github/agents/squad.agent.md
|
|
808
831
|
// -------------------------------------------------------------------------
|
|
809
832
|
const agentFile = join(teamRoot, '.github', 'agents', 'squad.agent.md');
|
|
810
|
-
if (!existsSync(agentFile) || !skipExisting) {
|
|
811
|
-
if (templatesDir && existsSync(join(templatesDir, 'squad.agent.md'))) {
|
|
812
|
-
let agentContent =
|
|
833
|
+
if (!storage.existsSync(agentFile) || !skipExisting) {
|
|
834
|
+
if (templatesDir && storage.existsSync(join(templatesDir, 'squad.agent.md.template'))) {
|
|
835
|
+
let agentContent = storage.readSync(join(templatesDir, 'squad.agent.md.template')) ?? '';
|
|
813
836
|
agentContent = stampVersionInContent(agentContent, version);
|
|
814
|
-
await
|
|
815
|
-
await writeFile(agentFile, agentContent, 'utf-8');
|
|
837
|
+
await storage.write(agentFile, agentContent);
|
|
816
838
|
createdFiles.push(toRelativePath(agentFile));
|
|
817
839
|
}
|
|
818
840
|
}
|
|
@@ -824,8 +846,8 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
824
846
|
// -------------------------------------------------------------------------
|
|
825
847
|
if (includeTemplates && templatesDir) {
|
|
826
848
|
const templatesDest = join(teamRoot, '.squad', 'templates');
|
|
827
|
-
if (!existsSync(templatesDest)) {
|
|
828
|
-
|
|
849
|
+
if (!storage.existsSync(templatesDest)) {
|
|
850
|
+
copyRecursiveSync(templatesDir, templatesDest, storage);
|
|
829
851
|
createdFiles.push(toRelativePath(templatesDest));
|
|
830
852
|
}
|
|
831
853
|
else {
|
|
@@ -837,7 +859,7 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
837
859
|
// -------------------------------------------------------------------------
|
|
838
860
|
let isGitHub = true;
|
|
839
861
|
try {
|
|
840
|
-
const remoteUrl = execFileSync('git', ['remote', 'get-url', 'origin'], { cwd: teamRoot, encoding: 'utf-8' }).trim();
|
|
862
|
+
const remoteUrl = execFileSync('git', ['remote', 'get-url', 'origin'], { cwd: teamRoot, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
841
863
|
const remoteUrlLower = remoteUrl.toLowerCase();
|
|
842
864
|
if (remoteUrlLower.includes('dev.azure.com') || remoteUrlLower.includes('visualstudio.com') || remoteUrlLower.includes('ssh.dev.azure.com')) {
|
|
843
865
|
isGitHub = false;
|
|
@@ -849,17 +871,17 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
849
871
|
// -------------------------------------------------------------------------
|
|
850
872
|
// Copy workflows (optional) — skip for ADO repos
|
|
851
873
|
// -------------------------------------------------------------------------
|
|
852
|
-
if (includeWorkflows && isGitHub && templatesDir && existsSync(join(templatesDir, 'workflows'))) {
|
|
874
|
+
if (includeWorkflows && isGitHub && templatesDir && storage.existsSync(join(templatesDir, 'workflows'))) {
|
|
853
875
|
const workflowsSrc = join(templatesDir, 'workflows');
|
|
854
876
|
const workflowsDest = join(teamRoot, '.github', 'workflows');
|
|
855
|
-
if (
|
|
856
|
-
const allWorkflowFiles =
|
|
877
|
+
if (storage.isDirectorySync(workflowsSrc)) {
|
|
878
|
+
const allWorkflowFiles = storage.listSync(workflowsSrc).filter(f => f.endsWith('.yml'));
|
|
857
879
|
const workflowFiles = allWorkflowFiles.filter(f => FRAMEWORK_WORKFLOWS.includes(f));
|
|
858
|
-
await mkdir(workflowsDest, { recursive: true });
|
|
880
|
+
await storage.mkdir(workflowsDest, { recursive: true });
|
|
859
881
|
for (const file of workflowFiles) {
|
|
860
882
|
const destFile = join(workflowsDest, file);
|
|
861
|
-
if (!existsSync(destFile) || !skipExisting) {
|
|
862
|
-
|
|
883
|
+
if (!storage.existsSync(destFile) || !skipExisting) {
|
|
884
|
+
storage.copySync(join(workflowsSrc, file), destFile);
|
|
863
885
|
createdFiles.push(toRelativePath(destFile));
|
|
864
886
|
}
|
|
865
887
|
else {
|
|
@@ -873,7 +895,7 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
873
895
|
// -------------------------------------------------------------------------
|
|
874
896
|
if (includeMcpConfig) {
|
|
875
897
|
const mcpConfigPath = join(teamRoot, '.copilot', 'mcp-config.json');
|
|
876
|
-
if (!existsSync(mcpConfigPath)) {
|
|
898
|
+
if (!storage.existsSync(mcpConfigPath)) {
|
|
877
899
|
const mcpSample = isGitHub
|
|
878
900
|
? {
|
|
879
901
|
mcpServers: {
|
|
@@ -898,8 +920,7 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
898
920
|
}
|
|
899
921
|
}
|
|
900
922
|
};
|
|
901
|
-
await
|
|
902
|
-
await writeFile(mcpConfigPath, JSON.stringify(mcpSample, null, 2) + '\n', 'utf-8');
|
|
923
|
+
await storage.write(mcpConfigPath, JSON.stringify(mcpSample, null, 2) + '\n');
|
|
903
924
|
createdFiles.push(toRelativePath(mcpConfigPath));
|
|
904
925
|
}
|
|
905
926
|
else {
|
|
@@ -923,14 +944,14 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
923
944
|
{
|
|
924
945
|
const workstreamIgnoreEntry = '.squad-workstream';
|
|
925
946
|
let currentIgnore = '';
|
|
926
|
-
if (existsSync(gitignorePath)) {
|
|
927
|
-
currentIgnore =
|
|
947
|
+
if (storage.existsSync(gitignorePath)) {
|
|
948
|
+
currentIgnore = storage.readSync(gitignorePath) ?? '';
|
|
928
949
|
}
|
|
929
950
|
if (!currentIgnore.includes(workstreamIgnoreEntry)) {
|
|
930
951
|
const block = (currentIgnore && !currentIgnore.endsWith('\n') ? '\n' : '')
|
|
931
952
|
+ '# Squad: SubSquad activation file (local to this machine)\n'
|
|
932
953
|
+ workstreamIgnoreEntry + '\n';
|
|
933
|
-
await
|
|
954
|
+
await storage.append(gitignorePath, block);
|
|
934
955
|
createdFiles.push(toRelativePath(gitignorePath));
|
|
935
956
|
}
|
|
936
957
|
}
|
|
@@ -938,8 +959,8 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
938
959
|
// Create .first-run marker
|
|
939
960
|
// -------------------------------------------------------------------------
|
|
940
961
|
const firstRunMarker = join(squadDir, '.first-run');
|
|
941
|
-
if (!existsSync(firstRunMarker)) {
|
|
942
|
-
await
|
|
962
|
+
if (!storage.existsSync(firstRunMarker)) {
|
|
963
|
+
await storage.write(firstRunMarker, new Date().toISOString() + '\n');
|
|
943
964
|
createdFiles.push(toRelativePath(firstRunMarker));
|
|
944
965
|
}
|
|
945
966
|
// -------------------------------------------------------------------------
|
|
@@ -947,7 +968,7 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
947
968
|
// -------------------------------------------------------------------------
|
|
948
969
|
if (options.prompt) {
|
|
949
970
|
const promptFile = join(squadDir, '.init-prompt');
|
|
950
|
-
await
|
|
971
|
+
await storage.write(promptFile, options.prompt);
|
|
951
972
|
createdFiles.push(toRelativePath(promptFile));
|
|
952
973
|
}
|
|
953
974
|
return {
|
|
@@ -965,10 +986,10 @@ ${projectDescription ? `- **Description:** ${projectDescription}\n` : ''}- **Cre
|
|
|
965
986
|
*
|
|
966
987
|
* @param squadDir - Path to the .squad directory
|
|
967
988
|
*/
|
|
968
|
-
export async function cleanupOrphanInitPrompt(squadDir) {
|
|
989
|
+
export async function cleanupOrphanInitPrompt(squadDir, storage = new FSStorageProvider()) {
|
|
969
990
|
const promptFile = join(squadDir, '.init-prompt');
|
|
970
|
-
if (existsSync(promptFile)) {
|
|
971
|
-
await
|
|
991
|
+
if (storage.existsSync(promptFile)) {
|
|
992
|
+
await storage.delete(promptFile);
|
|
972
993
|
}
|
|
973
994
|
}
|
|
974
995
|
//# sourceMappingURL=init.js.map
|