@bradygaster/squad-cli 0.9.4-insider.1 → 0.9.5-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/dist/cli/commands/cast.d.ts.map +1 -1
- package/dist/cli/commands/cast.js +9 -2
- package/dist/cli/commands/cast.js.map +1 -1
- package/dist/cli/commands/externalize.d.ts.map +1 -1
- package/dist/cli/commands/externalize.js +50 -48
- package/dist/cli/commands/externalize.js.map +1 -1
- package/dist/cli/commands/loop.js +9 -9
- package/dist/cli/commands/loop.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +2 -1
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/skill.d.ts +31 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +496 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +31 -5
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/watch/agent-spawn.d.ts +62 -0
- package/dist/cli/commands/watch/agent-spawn.d.ts.map +1 -0
- package/dist/cli/commands/watch/agent-spawn.js +127 -0
- package/dist/cli/commands/watch/agent-spawn.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/board.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/board.js +10 -7
- package/dist/cli/commands/watch/capabilities/board.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js +3 -3
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/execute.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/execute.js +15 -5
- package/dist/cli/commands/watch/capabilities/execute.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/fleet-dispatch.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/fleet-dispatch.js +13 -7
- package/dist/cli/commands/watch/capabilities/fleet-dispatch.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.js +3 -3
- package/dist/cli/commands/watch/capabilities/monitor-email.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.js +3 -3
- package/dist/cli/commands/watch/capabilities/monitor-teams.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/retro.js +3 -3
- package/dist/cli/commands/watch/capabilities/retro.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/self-pull.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/self-pull.js +10 -9
- package/dist/cli/commands/watch/capabilities/self-pull.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/two-pass.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/two-pass.js +7 -5
- package/dist/cli/commands/watch/capabilities/two-pass.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/wave-dispatch.js +3 -3
- package/dist/cli/commands/watch/capabilities/wave-dispatch.js.map +1 -1
- package/dist/cli/commands/watch/config.d.ts +10 -0
- package/dist/cli/commands/watch/config.d.ts.map +1 -1
- package/dist/cli/commands/watch/config.js +28 -1
- package/dist/cli/commands/watch/config.js.map +1 -1
- package/dist/cli/commands/watch/external-loader.d.ts +14 -0
- package/dist/cli/commands/watch/external-loader.d.ts.map +1 -0
- package/dist/cli/commands/watch/external-loader.js +85 -0
- package/dist/cli/commands/watch/external-loader.js.map +1 -0
- package/dist/cli/commands/watch/health.js +10 -9
- package/dist/cli/commands/watch/health.js.map +1 -1
- package/dist/cli/commands/watch/index.d.ts +10 -0
- package/dist/cli/commands/watch/index.d.ts.map +1 -1
- package/dist/cli/commands/watch/index.js +53 -7
- package/dist/cli/commands/watch/index.js.map +1 -1
- package/dist/cli/commands/watch/pid-tracker.d.ts +35 -0
- package/dist/cli/commands/watch/pid-tracker.d.ts.map +1 -0
- package/dist/cli/commands/watch/pid-tracker.js +127 -0
- package/dist/cli/commands/watch/pid-tracker.js.map +1 -0
- package/dist/cli/commands/watch/types.d.ts +10 -1
- package/dist/cli/commands/watch/types.d.ts.map +1 -1
- package/dist/cli/core/gh-cli.d.ts +2 -1
- package/dist/cli/core/gh-cli.d.ts.map +1 -1
- package/dist/cli/core/gh-cli.js +10 -8
- package/dist/cli/core/gh-cli.js.map +1 -1
- package/dist/cli/core/init.d.ts +10 -0
- package/dist/cli/core/init.d.ts.map +1 -1
- package/dist/cli/core/init.js +75 -30
- package/dist/cli/core/init.js.map +1 -1
- package/dist/cli/core/upgrade.d.ts.map +1 -1
- package/dist/cli/core/upgrade.js +18 -0
- package/dist/cli/core/upgrade.js.map +1 -1
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/shell/index.d.ts.map +1 -1
- package/dist/cli/shell/index.js +22 -0
- package/dist/cli/shell/index.js.map +1 -1
- package/dist/cli-entry.js +49 -0
- package/dist/cli-entry.js.map +1 -1
- package/package.json +6 -2
- package/templates/mcp-config.md +0 -2
- package/templates/scribe-charter.md +1 -1
- package/templates/squad.agent.md.template +13 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retro.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/retro.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAExC,SAAS,iBAAiB,CAAC,MAAc,EAAE,OAAqB;IAC9D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"retro.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/retro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-pull.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/self-pull.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"self-pull.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/self-pull.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpG,qBAAa,kBAAmB,YAAW,eAAe;IACxD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,6DAA6D;IACjF,QAAQ,CAAC,WAAW,EAAG,SAAS,CAAU;IAC1C,QAAQ,CAAC,QAAQ,WAAW;IAC5B,QAAQ,CAAC,KAAK,EAAG,UAAU,CAAU;IAE/B,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ3D,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAkEhE"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* and warns if watch source files changed (restart recommended).
|
|
6
6
|
*/
|
|
7
7
|
import { execFile, execFileSync } from 'node:child_process';
|
|
8
|
+
import { IS_WINDOWS } from '../agent-spawn.js';
|
|
8
9
|
export class SelfPullCapability {
|
|
9
10
|
name = 'self-pull';
|
|
10
11
|
description = 'Git fetch/pull at round start to keep work-tree current';
|
|
@@ -13,7 +14,7 @@ export class SelfPullCapability {
|
|
|
13
14
|
phase = 'pre-scan';
|
|
14
15
|
async preflight(_context) {
|
|
15
16
|
return new Promise((resolve) => {
|
|
16
|
-
execFile('git', ['--version'], (err) => {
|
|
17
|
+
execFile('git', ['--version'], { shell: IS_WINDOWS }, (err) => {
|
|
17
18
|
resolve(err ? { ok: false, reason: 'git not found' } : { ok: true });
|
|
18
19
|
});
|
|
19
20
|
});
|
|
@@ -24,30 +25,30 @@ export class SelfPullCapability {
|
|
|
24
25
|
// Capture HEAD before pull for change detection
|
|
25
26
|
let headBefore = '';
|
|
26
27
|
try {
|
|
27
|
-
headBefore = execFileSync('git', ['rev-parse', 'HEAD'], { cwd, encoding: 'utf-8' }).trim();
|
|
28
|
+
headBefore = execFileSync('git', ['rev-parse', 'HEAD'], { cwd, encoding: 'utf-8', shell: IS_WINDOWS }).trim();
|
|
28
29
|
}
|
|
29
30
|
catch { /* non-fatal */ }
|
|
30
31
|
// Stash if there are local changes
|
|
31
32
|
let didStash = false;
|
|
32
33
|
try {
|
|
33
|
-
const status = execFileSync('git', ['status', '--porcelain'], { cwd, encoding: 'utf-8' }).trim();
|
|
34
|
+
const status = execFileSync('git', ['status', '--porcelain'], { cwd, encoding: 'utf-8', shell: IS_WINDOWS }).trim();
|
|
34
35
|
if (status.length > 0) {
|
|
35
|
-
execFileSync('git', ['stash', '--include-untracked'], { cwd, encoding: 'utf-8' });
|
|
36
|
+
execFileSync('git', ['stash', '--include-untracked'], { cwd, encoding: 'utf-8', shell: IS_WINDOWS });
|
|
36
37
|
didStash = true;
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
catch { /* non-fatal — proceed without stash */ }
|
|
40
41
|
// Fetch + pull
|
|
41
42
|
await new Promise((resolve, reject) => {
|
|
42
|
-
execFile('git', ['fetch', '--quiet'], { cwd }, (err) => err ? reject(err) : resolve());
|
|
43
|
+
execFile('git', ['fetch', '--quiet'], { cwd, shell: IS_WINDOWS }, (err) => err ? reject(err) : resolve());
|
|
43
44
|
});
|
|
44
45
|
await new Promise((resolve, reject) => {
|
|
45
|
-
execFile('git', ['pull', '--ff-only', '--quiet'], { cwd }, (err) => err ? reject(err) : resolve());
|
|
46
|
+
execFile('git', ['pull', '--ff-only', '--quiet'], { cwd, shell: IS_WINDOWS }, (err) => err ? reject(err) : resolve());
|
|
46
47
|
});
|
|
47
48
|
// Pop stash if we created one
|
|
48
49
|
if (didStash) {
|
|
49
50
|
try {
|
|
50
|
-
execFileSync('git', ['stash', 'pop'], { cwd, encoding: 'utf-8' });
|
|
51
|
+
execFileSync('git', ['stash', 'pop'], { cwd, encoding: 'utf-8', shell: IS_WINDOWS });
|
|
51
52
|
}
|
|
52
53
|
catch {
|
|
53
54
|
console.log('⚠️ git stash pop failed (possible merge conflict) — changes remain in stash');
|
|
@@ -57,9 +58,9 @@ export class SelfPullCapability {
|
|
|
57
58
|
let sourceChanged = false;
|
|
58
59
|
if (headBefore) {
|
|
59
60
|
try {
|
|
60
|
-
const headAfter = execFileSync('git', ['rev-parse', 'HEAD'], { cwd, encoding: 'utf-8' }).trim();
|
|
61
|
+
const headAfter = execFileSync('git', ['rev-parse', 'HEAD'], { cwd, encoding: 'utf-8', shell: IS_WINDOWS }).trim();
|
|
61
62
|
if (headBefore !== headAfter) {
|
|
62
|
-
const diff = execFileSync('git', ['diff', '--name-only', headBefore, headAfter, '--', 'packages/squad-cli/src/'], { cwd, encoding: 'utf-8' }).trim();
|
|
63
|
+
const diff = execFileSync('git', ['diff', '--name-only', headBefore, headAfter, '--', 'packages/squad-cli/src/'], { cwd, encoding: 'utf-8', shell: IS_WINDOWS }).trim();
|
|
63
64
|
if (diff.length > 0) {
|
|
64
65
|
sourceChanged = true;
|
|
65
66
|
console.log('⚠️ Watch source changed — restart recommended for latest behavior');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-pull.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/self-pull.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"self-pull.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/self-pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"two-pass.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/two-pass.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"two-pass.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/two-pass.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAYpG,qBAAa,iBAAkB,YAAW,eAAe;IACvD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,0DAA0D;IAC9E,QAAQ,CAAC,WAAW,EAAG,SAAS,CAAU;IAC1C,QAAQ,CAAC,QAAQ,WAAU;IAC3B,QAAQ,CAAC,KAAK,EAAG,aAAa,CAAU;IAElC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAI3D,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA2ChE"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { execFile } from 'node:child_process';
|
|
5
5
|
import { promisify } from 'node:util';
|
|
6
|
+
import { IS_WINDOWS } from '../agent-spawn.js';
|
|
6
7
|
const execFileAsync = promisify(execFile);
|
|
7
8
|
/** Labels that block autonomous execution. */
|
|
8
9
|
const BLOCKED_LABELS = new Set([
|
|
@@ -22,10 +23,11 @@ export class TwoPassCapability {
|
|
|
22
23
|
async execute(context) {
|
|
23
24
|
try {
|
|
24
25
|
const memberLabels = new Set(context.roster.map(m => m.label));
|
|
25
|
-
//
|
|
26
|
-
const allItems =
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
// Use shared round data when available (#923), otherwise fetch
|
|
27
|
+
const allItems = context.roundData?.issues
|
|
28
|
+
?? await context.adapter.listWorkItems({
|
|
29
|
+
tags: ['squad'], state: 'open', limit: 200,
|
|
30
|
+
});
|
|
29
31
|
const total = allItems.length;
|
|
30
32
|
// Filter to actionable
|
|
31
33
|
const actionable = allItems.filter(item => {
|
|
@@ -45,7 +47,7 @@ export class TwoPassCapability {
|
|
|
45
47
|
const { stdout: detailJson } = await execFileAsync('gh', [
|
|
46
48
|
'issue', 'view', String(item.id),
|
|
47
49
|
'--json', 'number,title,body,labels,assignees',
|
|
48
|
-
], { maxBuffer: 5 * 1024 * 1024 });
|
|
50
|
+
], { maxBuffer: 5 * 1024 * 1024, shell: IS_WINDOWS });
|
|
49
51
|
hydrated.push(JSON.parse(detailJson));
|
|
50
52
|
}
|
|
51
53
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"two-pass.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/two-pass.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"two-pass.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/two-pass.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,12 +26,12 @@ function parseSubTasks(body) {
|
|
|
26
26
|
function buildAgentCommand(prompt, context) {
|
|
27
27
|
if (context.agentCmd) {
|
|
28
28
|
const parts = context.agentCmd.trim().split(/\s+/);
|
|
29
|
-
return { cmd: parts[0], args: [...parts.slice(1), '
|
|
29
|
+
return { cmd: parts[0], args: [...parts.slice(1), '-p', prompt] };
|
|
30
30
|
}
|
|
31
|
-
const args = ['
|
|
31
|
+
const args = ['-p', prompt];
|
|
32
32
|
if (context.copilotFlags)
|
|
33
33
|
args.push(...context.copilotFlags.trim().split(/\s+/));
|
|
34
|
-
return { cmd: '
|
|
34
|
+
return { cmd: 'copilot', args };
|
|
35
35
|
}
|
|
36
36
|
function executeSubTask(prompt, context, timeoutMs) {
|
|
37
37
|
const { cmd, args } = buildAgentCommand(prompt, context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wave-dispatch.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/wave-dispatch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAqB,MAAM,oBAAoB,CAAC;AAQjE,gDAAgD;AAChD,SAAS,aAAa,CAAC,IAAwB;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAc,EAAE,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,IAAI,WAAW,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,SAAS,GAAa,EAAE,CAAC;QAE7B,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACjE,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvE,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,OAAqB;IAC9D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"wave-dispatch.js","sourceRoot":"","sources":["../../../../../src/cli/commands/watch/capabilities/wave-dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,16 @@ export interface WatchConfig {
|
|
|
24
24
|
verbose?: boolean;
|
|
25
25
|
/** Preferred auth user for platform operations (e.g. gh auth switch --user). */
|
|
26
26
|
authUser?: string;
|
|
27
|
+
/** Notification level for watch events. */
|
|
28
|
+
notifyLevel?: 'all' | 'important' | 'none';
|
|
29
|
+
/** Hour to begin overnight mode (e.g. "22:00"). */
|
|
30
|
+
overnightStart?: string;
|
|
31
|
+
/** Hour to end overnight mode (e.g. "08:00"). */
|
|
32
|
+
overnightEnd?: string;
|
|
33
|
+
/** Path to a sentinel file — watch shuts down gracefully when removed. */
|
|
34
|
+
sentinelFile?: string;
|
|
35
|
+
/** State persistence backend. */
|
|
36
|
+
stateBackend?: 'worktree' | 'git-notes' | 'orphan' | 'external';
|
|
27
37
|
}
|
|
28
38
|
/**
|
|
29
39
|
* Load watch config from `.squad/config.json` then merge CLI overrides.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/watch/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/watch/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;IAC3C,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,YAAY,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CACjE;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,GACjC,WAAW,CAyCb"}
|
|
@@ -51,6 +51,12 @@ export function loadWatchConfig(teamRoot, cliOverrides) {
|
|
|
51
51
|
...(cliOverrides.capabilities ?? {}),
|
|
52
52
|
},
|
|
53
53
|
verbose: cliOverrides.verbose ?? fileConfig.verbose ?? false,
|
|
54
|
+
authUser: cliOverrides.authUser ?? fileConfig.authUser,
|
|
55
|
+
notifyLevel: cliOverrides.notifyLevel ?? fileConfig.notifyLevel,
|
|
56
|
+
overnightStart: cliOverrides.overnightStart ?? fileConfig.overnightStart,
|
|
57
|
+
overnightEnd: cliOverrides.overnightEnd ?? fileConfig.overnightEnd,
|
|
58
|
+
sentinelFile: cliOverrides.sentinelFile ?? fileConfig.sentinelFile,
|
|
59
|
+
stateBackend: cliOverrides.stateBackend ?? fileConfig.stateBackend,
|
|
54
60
|
};
|
|
55
61
|
return merged;
|
|
56
62
|
}
|
|
@@ -79,9 +85,30 @@ function normalizeFileConfig(raw) {
|
|
|
79
85
|
}
|
|
80
86
|
if (typeof raw['logFile'] === 'string')
|
|
81
87
|
result.logFile = raw['logFile'];
|
|
88
|
+
if (typeof raw['authUser'] === 'string')
|
|
89
|
+
result.authUser = raw['authUser'];
|
|
90
|
+
if (typeof raw['notifyLevel'] === 'string') {
|
|
91
|
+
const level = raw['notifyLevel'];
|
|
92
|
+
if (level === 'all' || level === 'important' || level === 'none') {
|
|
93
|
+
result.notifyLevel = level;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (typeof raw['overnightStart'] === 'string')
|
|
97
|
+
result.overnightStart = raw['overnightStart'];
|
|
98
|
+
if (typeof raw['overnightEnd'] === 'string')
|
|
99
|
+
result.overnightEnd = raw['overnightEnd'];
|
|
100
|
+
if (typeof raw['sentinelFile'] === 'string')
|
|
101
|
+
result.sentinelFile = raw['sentinelFile'];
|
|
102
|
+
if (typeof raw['stateBackend'] === 'string') {
|
|
103
|
+
const backend = raw['stateBackend'];
|
|
104
|
+
const validBackends = ['worktree', 'git-notes', 'orphan', 'external'];
|
|
105
|
+
if (validBackends.includes(backend)) {
|
|
106
|
+
result.stateBackend = backend;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
82
109
|
// Everything else is a capability key
|
|
83
110
|
const caps = {};
|
|
84
|
-
const reserved = new Set(['interval', 'execute', 'maxConcurrent', 'timeout', 'copilotFlags', 'agentCmd', 'verbose', 'dispatchMode', 'logFile']);
|
|
111
|
+
const reserved = new Set(['interval', 'execute', 'maxConcurrent', 'timeout', 'copilotFlags', 'agentCmd', 'verbose', 'dispatchMode', 'logFile', 'authUser', 'notifyLevel', 'overnightStart', 'overnightEnd', 'sentinelFile', 'stateBackend']);
|
|
85
112
|
for (const [key, value] of Object.entries(raw)) {
|
|
86
113
|
if (reserved.has(key))
|
|
87
114
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/cli/commands/watch/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/cli/commands/watch/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External capability loader — scans .squad/capabilities/ for user-defined
|
|
3
|
+
* WatchCapability modules and registers them alongside built-in capabilities.
|
|
4
|
+
*/
|
|
5
|
+
import type { CapabilityRegistry } from './registry.js';
|
|
6
|
+
/**
|
|
7
|
+
* Load external WatchCapability modules from `{teamRoot}/.squad/capabilities/`.
|
|
8
|
+
*
|
|
9
|
+
* - Skips silently when the directory does not exist.
|
|
10
|
+
* - Logs a warning and continues when a file fails to load.
|
|
11
|
+
* - Returns the count of successfully loaded capabilities.
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadExternalCapabilities(teamRoot: string, registry: CapabilityRegistry): Promise<number>;
|
|
14
|
+
//# sourceMappingURL=external-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-loader.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/watch/external-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAexD;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAsFjB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External capability loader — scans .squad/capabilities/ for user-defined
|
|
3
|
+
* WatchCapability modules and registers them alongside built-in capabilities.
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync } from 'node:fs';
|
|
6
|
+
import { readdir } from 'node:fs/promises';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
import { pathToFileURL } from 'node:url';
|
|
9
|
+
import { GREEN, YELLOW, BOLD, DIM, RESET } from '../../core/output.js';
|
|
10
|
+
/** Required fields on a valid WatchCapability. */
|
|
11
|
+
const REQUIRED_FIELDS = [
|
|
12
|
+
'name',
|
|
13
|
+
'description',
|
|
14
|
+
'configShape',
|
|
15
|
+
'requires',
|
|
16
|
+
'phase',
|
|
17
|
+
'preflight',
|
|
18
|
+
'execute',
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Load external WatchCapability modules from `{teamRoot}/.squad/capabilities/`.
|
|
22
|
+
*
|
|
23
|
+
* - Skips silently when the directory does not exist.
|
|
24
|
+
* - Logs a warning and continues when a file fails to load.
|
|
25
|
+
* - Returns the count of successfully loaded capabilities.
|
|
26
|
+
*/
|
|
27
|
+
export async function loadExternalCapabilities(teamRoot, registry) {
|
|
28
|
+
const capDir = join(teamRoot, '.squad', 'capabilities');
|
|
29
|
+
if (!existsSync(capDir)) {
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
const entries = await readdir(capDir);
|
|
33
|
+
const jsFiles = entries.filter(f => f.endsWith('.js')).sort();
|
|
34
|
+
if (jsFiles.length === 0) {
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
// Security: warn user before executing external code
|
|
38
|
+
console.log(`\n${YELLOW}${BOLD}⚠️ SECURITY: Loading ${jsFiles.length} external capability file(s) from .squad/capabilities/${RESET}`);
|
|
39
|
+
for (const f of jsFiles) {
|
|
40
|
+
console.log(`${DIM} • ${f}${RESET}`);
|
|
41
|
+
}
|
|
42
|
+
console.log(`${YELLOW} External capabilities execute with FULL process permissions (file system, network, credentials).${RESET}`);
|
|
43
|
+
console.log(`${YELLOW} Review these files if you did not author them.${RESET}\n`);
|
|
44
|
+
let loaded = 0;
|
|
45
|
+
for (const filename of jsFiles) {
|
|
46
|
+
const filePath = join(capDir, filename);
|
|
47
|
+
try {
|
|
48
|
+
const mod = await import(pathToFileURL(filePath).href);
|
|
49
|
+
let cap = mod.default ?? mod;
|
|
50
|
+
// Support class-based capabilities with a no-arg constructor
|
|
51
|
+
if (typeof cap === 'function') {
|
|
52
|
+
cap = new cap();
|
|
53
|
+
}
|
|
54
|
+
// Validate required fields
|
|
55
|
+
const missing = REQUIRED_FIELDS.filter(f => !(f in cap));
|
|
56
|
+
if (missing.length > 0) {
|
|
57
|
+
console.log(`${YELLOW}⚠️ Failed to load capability from ${filename}: missing fields: ${missing.join(', ')}${RESET}`);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
// Validate field types
|
|
61
|
+
if (typeof cap.preflight !== 'function' || typeof cap.execute !== 'function') {
|
|
62
|
+
console.log(`${YELLOW}⚠️ Failed to load capability from ${filename}: preflight and execute must be functions${RESET}`);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const validPhases = ['pre-scan', 'post-triage', 'post-execute', 'housekeeping'];
|
|
66
|
+
if (!validPhases.includes(cap.phase)) {
|
|
67
|
+
console.log(`${YELLOW}⚠️ Failed to load capability from ${filename}: invalid phase '${cap.phase}' (must be one of: ${validPhases.join(', ')})${RESET}`);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
// Security: block hijacking of built-in capabilities
|
|
71
|
+
if (registry.get(cap.name)) {
|
|
72
|
+
console.log(`${YELLOW}⚠️ External capability "${cap.name}" conflicts with built-in — skipped (potential hijack)${RESET}`);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
registry.register(cap);
|
|
76
|
+
console.log(`${GREEN}✅ Loaded external capability: ${cap.name} (phase: ${cap.phase})${RESET}`);
|
|
77
|
+
loaded++;
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
console.log(`${YELLOW}⚠️ Failed to load capability from ${filename}: ${err instanceof Error ? err.message : String(err)}${RESET}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return loaded;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=external-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-loader.js","sourceRoot":"","sources":["../../../../src/cli/commands/watch/external-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import fs from 'node:fs';
|
|
|
9
9
|
import path from 'node:path';
|
|
10
10
|
import os from 'node:os';
|
|
11
11
|
import crypto from 'node:crypto';
|
|
12
|
-
import {
|
|
12
|
+
import { spawnSync } from 'node:child_process';
|
|
13
13
|
/**
|
|
14
14
|
* Path to the PID file in the OS temp directory.
|
|
15
15
|
* Uses an MD5 hash of the repo path so different clones/worktrees get
|
|
@@ -65,20 +65,21 @@ function formatUptime(ms) {
|
|
|
65
65
|
* Duplicated from index.ts to avoid circular imports — the canonical
|
|
66
66
|
* version lives in `getActiveGhUser()` in the watch index.
|
|
67
67
|
*/
|
|
68
|
-
/** Probes gh
|
|
68
|
+
/** Probes current gh user — uses `gh api user` which writes to stdout reliably. */
|
|
69
69
|
function probeCurrentGhUser() {
|
|
70
70
|
try {
|
|
71
|
-
const result =
|
|
71
|
+
const result = spawnSync('gh', ['api', 'user', '-q', '.login'], {
|
|
72
72
|
encoding: 'utf-8',
|
|
73
73
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
74
|
+
timeout: 5000,
|
|
74
75
|
});
|
|
75
|
-
const
|
|
76
|
-
|
|
76
|
+
const login = (result.stdout ?? '').trim();
|
|
77
|
+
if (login && result.status === 0)
|
|
78
|
+
return login;
|
|
79
|
+
return undefined;
|
|
77
80
|
}
|
|
78
|
-
catch
|
|
79
|
-
|
|
80
|
-
const match = stderr.match(/account\s+(\S+)/);
|
|
81
|
-
return match?.[1];
|
|
81
|
+
catch {
|
|
82
|
+
return undefined;
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../src/cli/commands/watch/health.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../src/cli/commands/watch/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ export type { WatchCapability, WatchContext, WatchPhase, PreflightResult, Capabi
|
|
|
13
13
|
export { CapabilityRegistry } from './registry.js';
|
|
14
14
|
export { createDefaultRegistry } from './capabilities/index.js';
|
|
15
15
|
export { createVerboseLogger, type VerboseLogger } from './verbose.js';
|
|
16
|
+
export { loadExternalCapabilities } from './external-loader.js';
|
|
17
|
+
export { PidTracker, type TrackedProcess } from './pid-tracker.js';
|
|
16
18
|
export { getWatchHealth, writePidFile, removePidFile, getPidPath, isProcessAlive, type WatchPidInfo } from './health.js';
|
|
17
19
|
/** Normalized work item for watch operations. */
|
|
18
20
|
export interface WatchWorkItem {
|
|
@@ -55,10 +57,18 @@ export interface BoardState {
|
|
|
55
57
|
readyToMerge: number;
|
|
56
58
|
executed: number;
|
|
57
59
|
}
|
|
60
|
+
/** Outcome of a runCheck call — wraps BoardState with scan status. */
|
|
61
|
+
export type RunCheckStatus = 'ok' | 'rate-limited' | 'error';
|
|
62
|
+
export interface RunCheckResult {
|
|
63
|
+
state: BoardState;
|
|
64
|
+
status: RunCheckStatus;
|
|
65
|
+
}
|
|
58
66
|
export interface ReportBoardOptions {
|
|
59
67
|
notifyLevel?: 'all' | 'important' | 'none';
|
|
60
68
|
machineName?: string;
|
|
61
69
|
repoName?: string;
|
|
70
|
+
/** When set, overrides the "Board is clear" message for failed scans. */
|
|
71
|
+
scanStatus?: RunCheckStatus;
|
|
62
72
|
}
|
|
63
73
|
export declare function reportBoard(state: BoardState, round: number, options?: ReportBoardOptions): void;
|
|
64
74
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/watch/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8BH,OAAO,KAAK,EAAE,eAAe,EAA2C,MAAM,iCAAiC,CAAC;AAEhH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ/C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAIzH,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrC;AAED,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAmFD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/watch/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8BH,OAAO,KAAK,EAAE,eAAe,EAA2C,MAAM,iCAAiC,CAAC;AAEhH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ/C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAIzH,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrC;AAED,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAmFD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAoChG;AA0UD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA2BD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEhF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,GACpB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CASjC;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9D;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB/C;AAID;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6X/F"}
|