mstro-app 0.4.10 → 0.4.12
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/server/cli/headless/claude-invoker-process.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-process.js +2 -1
- package/dist/server/cli/headless/claude-invoker-process.js.map +1 -1
- package/dist/server/server-setup.js +1 -1
- package/dist/server/server-setup.js.map +1 -1
- package/dist/server/services/auth.d.ts.map +1 -1
- package/dist/server/services/auth.js +4 -2
- package/dist/server/services/auth.js.map +1 -1
- package/dist/server/services/instances.js +1 -1
- package/dist/server/services/instances.js.map +1 -1
- package/dist/server/services/plan/config-installer.d.ts +5 -14
- package/dist/server/services/plan/config-installer.d.ts.map +1 -1
- package/dist/server/services/plan/config-installer.js +14 -72
- package/dist/server/services/plan/config-installer.js.map +1 -1
- package/dist/server/services/plan/executor.d.ts +15 -8
- package/dist/server/services/plan/executor.d.ts.map +1 -1
- package/dist/server/services/plan/executor.js +95 -59
- package/dist/server/services/plan/executor.js.map +1 -1
- package/dist/server/services/plan/issue-prompt-builder.d.ts +17 -0
- package/dist/server/services/plan/issue-prompt-builder.d.ts.map +1 -0
- package/dist/server/services/plan/issue-prompt-builder.js +73 -0
- package/dist/server/services/plan/issue-prompt-builder.js.map +1 -0
- package/dist/server/services/plan/parser-core.d.ts.map +1 -1
- package/dist/server/services/plan/parser-core.js +9 -0
- package/dist/server/services/plan/parser-core.js.map +1 -1
- package/dist/server/services/plan/types.d.ts +2 -0
- package/dist/server/services/plan/types.d.ts.map +1 -1
- package/dist/server/services/platform.d.ts +1 -0
- package/dist/server/services/platform.d.ts.map +1 -1
- package/dist/server/services/platform.js +3 -7
- package/dist/server/services/platform.js.map +1 -1
- package/dist/server/services/websocket/file-explorer-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/file-explorer-handlers.js +5 -4
- package/dist/server/services/websocket/file-explorer-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-handlers.js +2 -2
- package/dist/server/services/websocket/git-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-pr-handlers.d.ts +1 -1
- package/dist/server/services/websocket/git-pr-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-pr-handlers.js +2 -2
- package/dist/server/services/websocket/git-pr-handlers.js.map +1 -1
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +12 -0
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/quality-complexity.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-complexity.js +5 -7
- package/dist/server/services/websocket/quality-complexity.js.map +1 -1
- package/dist/server/services/websocket/quality-linting.d.ts +1 -1
- package/dist/server/services/websocket/quality-linting.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-linting.js +16 -11
- package/dist/server/services/websocket/quality-linting.js.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.d.ts +14 -3
- package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.js +87 -23
- package/dist/server/services/websocket/quality-review-agent.js.map +1 -1
- package/dist/server/services/websocket/quality-service.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-service.js +62 -39
- package/dist/server/services/websocket/quality-service.js.map +1 -1
- package/dist/server/services/websocket/quality-types.d.ts +2 -0
- package/dist/server/services/websocket/quality-types.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-types.js.map +1 -1
- package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/session-handlers.js +3 -0
- package/dist/server/services/websocket/session-handlers.js.map +1 -1
- package/package.json +1 -1
- package/server/cli/headless/claude-invoker-process.ts +2 -1
- package/server/server-setup.ts +1 -1
- package/server/services/auth.ts +3 -2
- package/server/services/instances.ts +1 -1
- package/server/services/plan/config-installer.ts +13 -72
- package/server/services/plan/executor.ts +105 -61
- package/server/services/plan/issue-prompt-builder.ts +92 -0
- package/server/services/plan/parser-core.ts +8 -0
- package/server/services/plan/types.ts +2 -0
- package/server/services/platform.ts +3 -8
- package/server/services/websocket/file-explorer-handlers.ts +7 -3
- package/server/services/websocket/git-handlers.ts +3 -3
- package/server/services/websocket/git-pr-handlers.ts +3 -3
- package/server/services/websocket/handler.ts +12 -0
- package/server/services/websocket/quality-complexity.ts +5 -7
- package/server/services/websocket/quality-linting.ts +17 -10
- package/server/services/websocket/quality-review-agent.ts +95 -23
- package/server/services/websocket/quality-service.ts +70 -39
- package/server/services/websocket/quality-types.ts +2 -0
- package/server/services/websocket/session-handlers.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-invoker-process.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker-process.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKvE,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AA0B1E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,cAAc,EAC5B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,GAC9B,IAAI,CAYN;AAID,wBAAgB,eAAe,CAC7B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"claude-invoker-process.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker-process.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKvE,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AA0B1E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,cAAc,EAC5B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,GAC9B,IAAI,CAYN;AAID,wBAAgB,eAAe,CAC7B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,EAAE,CAyCV;AAqBD,mDAAmD;AACnD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAC3C,SAAS,EAAE,MAAM,GAChB,YAAY,CAyCd;AAID,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,oBAAoB,EACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,EAC7B,cAAc,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,eAAe,CAoBjB"}
|
|
@@ -69,7 +69,8 @@ export function buildClaudeArgs(config, prompt, hasImageAttachments, useStreamJs
|
|
|
69
69
|
// Reduce Edit-without-Read errors by reminding the model
|
|
70
70
|
args.push('--append-system-prompt', 'IMPORTANT: Always use the Read tool to read a file before using Edit or Write on it. Never edit a file you have not read in this session.');
|
|
71
71
|
if (!hasImageAttachments) {
|
|
72
|
-
args
|
|
72
|
+
// Strip null bytes — Node.js spawn rejects args containing \0
|
|
73
|
+
args.push(prompt.replaceAll('\0', ''));
|
|
73
74
|
}
|
|
74
75
|
return args;
|
|
75
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-invoker-process.js","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker-process.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"claude-invoker-process.js","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-setup.js","sourceRoot":"","sources":["../../server/server-setup.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AAEhE;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAI1C;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAA;IAChD,MAAM,KAAK,GAAG,UAAU,OAAO,EAAE,CAAA;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;IAErD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,mBAAmB,GAAG;QAC1B,GAAG,EAAE;YACH,6BAA6B,EAAE,OAAO;YACtC,4BAA4B,EAAE,GAAG;SAClC;KACF,CAAA;IAED,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACzE,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;IAC3E,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;YACxE,IAAI,OAAO,GAAG,KAAK,CAAA;YAEnB,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;gBAC1B,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAA;gBACzB,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;YAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,6BAA6B,EAAE,CAAC;gBACxD,gBAAgB,CAAC,GAAG,CAAC,6BAA6B,GAAG,OAAO,CAAA;gBAC5D,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;gBACvD,gBAAgB,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAA;gBACvD,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;gBACtE,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YAC/E,CAAC;QACH,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAiB,EAAE,UAAkB;IACjE,OAAO;QACL,IAAI,EAAE,CAAC,IAAqB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9C,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,UAAU,
|
|
1
|
+
{"version":3,"file":"server-setup.js","sourceRoot":"","sources":["../../server/server-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../server/services/auth.ts"],"names":[],"mappings":"AAkBA,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAQ;;IAM1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../server/services/auth.ts"],"names":[],"mappings":"AAkBA,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAQ;;IAM1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAK1C;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,MAAM,GAAG,IAAI;CAWvC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* All mstro instances on a machine share a single token from ~/.mstro/session-token.
|
|
8
8
|
* The token is created once (by `mstro login` or first server start) and reused.
|
|
9
9
|
*/
|
|
10
|
-
import { randomBytes } from 'node:crypto';
|
|
10
|
+
import { randomBytes, timingSafeEqual } from 'node:crypto';
|
|
11
11
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
12
12
|
import { homedir } from 'node:os';
|
|
13
13
|
import { join } from 'node:path';
|
|
@@ -44,7 +44,9 @@ export class AuthService {
|
|
|
44
44
|
* Validate the local session token (used for localhost API/WS auth)
|
|
45
45
|
*/
|
|
46
46
|
validateLocalToken(token) {
|
|
47
|
-
|
|
47
|
+
if (token.length !== this.localToken.length)
|
|
48
|
+
return false;
|
|
49
|
+
return timingSafeEqual(Buffer.from(token), Buffer.from(this.localToken));
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* Get the local session token (for passing to child processes)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../server/services/auth.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AAEhE;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../server/services/auth.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AAEhE;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;AAErE,MAAM,OAAO,WAAW;IACd,UAAU,CAAQ;IAE1B;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,EAAE,CAAA;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,KAAa;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;QACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAClD,CAAC;QACD,aAAa,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAa;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QACzD,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc;QACnB,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC9D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -69,7 +69,7 @@ export class InstanceRegistry {
|
|
|
69
69
|
*/
|
|
70
70
|
register(port, workingDirectory) {
|
|
71
71
|
const instance = {
|
|
72
|
-
id: `mstro-${Date.now()}-${Math.random().toString(36).
|
|
72
|
+
id: `mstro-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`,
|
|
73
73
|
port,
|
|
74
74
|
url: `http://localhost:${port}`,
|
|
75
75
|
workingDirectory,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instances.js","sourceRoot":"","sources":["../../../server/services/instances.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AAEhE;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAM;IACjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9D,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC;gBAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9D,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACpD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,OAAO,GAAG,IAAI;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACxB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;QACpC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACxB,IAAI,aAAa,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAA;QACxC,QAAQ,EAAE,CAAA;IACZ,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,CAAC;QACH,UAAU,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;AACH,CAAC;AAYD,MAAM,OAAO,gBAAgB;IACnB,YAAY,CAAQ;IACpB,eAAe,GAAyB,IAAI,CAAA;IAC5C,iBAAiB,GAA0C,IAAI,CAAA;IAEvE;QACE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACvD,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IACtD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAY,EAAE,gBAAwB;QAC7C,MAAM,QAAQ,GAAkB;YAC9B,EAAE,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"instances.js","sourceRoot":"","sources":["../../../server/services/instances.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,24 +2,15 @@ export declare class ConfigInstaller {
|
|
|
2
2
|
private workingDir;
|
|
3
3
|
private savedClaudeSettings;
|
|
4
4
|
private claudeSettingsInstalled;
|
|
5
|
-
private savedMcpJson;
|
|
6
|
-
private mcpJsonInstalled;
|
|
7
5
|
constructor(workingDir: string);
|
|
8
|
-
/** Restore .claude/settings.json
|
|
6
|
+
/** Restore .claude/settings.json from backups left by a previous crash. */
|
|
9
7
|
private recoverFromCrash;
|
|
10
8
|
/**
|
|
11
|
-
* Pre-approve tools in .claude/settings.json so
|
|
12
|
-
*
|
|
9
|
+
* Pre-approve tools in .claude/settings.json so headless instances
|
|
10
|
+
* can work without interactive permission prompts.
|
|
13
11
|
*/
|
|
14
|
-
|
|
12
|
+
installPermissions(): void;
|
|
15
13
|
/** Restore original .claude/settings.json after wave execution. */
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Write .mcp.json so Agent Teams teammates auto-discover the bouncer MCP server.
|
|
19
|
-
* Also generates ~/.mstro/mcp-config.json for the team lead (--mcp-config).
|
|
20
|
-
*/
|
|
21
|
-
installBouncerForSubagents(): void;
|
|
22
|
-
/** Restore or remove .mcp.json after execution. */
|
|
23
|
-
uninstallBouncerForSubagents(): void;
|
|
14
|
+
uninstallPermissions(): void;
|
|
24
15
|
}
|
|
25
16
|
//# sourceMappingURL=config-installer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-installer.d.ts","sourceRoot":"","sources":["../../../../server/services/plan/config-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-installer.d.ts","sourceRoot":"","sources":["../../../../server/services/plan/config-installer.ts"],"names":[],"mappings":"AAwCA,qBAAa,eAAe;IAId,OAAO,CAAC,UAAU;IAH9B,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,uBAAuB,CAAS;gBAEpB,UAAU,EAAE,MAAM;IAKtC,2EAA2E;IAC3E,OAAO,CAAC,gBAAgB;IAYxB;;;OAGG;IACH,kBAAkB,IAAI,IAAI;IAuC1B,mEAAmE;IACnE,oBAAoB,IAAI,IAAI;CAqB7B"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// Copyright (c) 2025-present Mstro, Inc. All rights reserved.
|
|
2
2
|
// Licensed under the MIT License. See LICENSE file for details.
|
|
3
3
|
/**
|
|
4
|
-
* Config Installer — Manages temporary
|
|
4
|
+
* Config Installer — Manages temporary .claude/settings.json modifications
|
|
5
|
+
* for headless execution.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
7
|
+
* Pre-approves tools so headless Claude Code instances can work without
|
|
8
|
+
* interactive permission prompts, then restores the original settings afterward.
|
|
8
9
|
*/
|
|
9
10
|
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
10
11
|
import { join } from 'node:path';
|
|
11
|
-
|
|
12
|
-
/** Tools that teammates may need during execution */
|
|
12
|
+
/** Tools that headless instances may need during execution */
|
|
13
13
|
const REQUIRED_PERMISSIONS = [
|
|
14
14
|
'Bash',
|
|
15
15
|
'Read',
|
|
@@ -19,7 +19,6 @@ const REQUIRED_PERMISSIONS = [
|
|
|
19
19
|
'Grep',
|
|
20
20
|
'WebFetch',
|
|
21
21
|
'WebSearch',
|
|
22
|
-
'Agent',
|
|
23
22
|
];
|
|
24
23
|
/** Restore a file from a .pm-backup, handling the __NONE__ sentinel for files that didn't exist. */
|
|
25
24
|
function restoreFromBackup(backupPath, targetPath) {
|
|
@@ -42,23 +41,24 @@ export class ConfigInstaller {
|
|
|
42
41
|
workingDir;
|
|
43
42
|
savedClaudeSettings = null;
|
|
44
43
|
claudeSettingsInstalled = false;
|
|
45
|
-
savedMcpJson = null;
|
|
46
|
-
mcpJsonInstalled = false;
|
|
47
44
|
constructor(workingDir) {
|
|
48
45
|
this.workingDir = workingDir;
|
|
49
46
|
// Recover from prior crash: if backup files exist, restore them
|
|
50
47
|
this.recoverFromCrash();
|
|
51
48
|
}
|
|
52
|
-
/** Restore .claude/settings.json
|
|
49
|
+
/** Restore .claude/settings.json from backups left by a previous crash. */
|
|
53
50
|
recoverFromCrash() {
|
|
54
51
|
restoreFromBackup(join(this.workingDir, '.claude', 'settings.json.pm-backup'), join(this.workingDir, '.claude', 'settings.json'));
|
|
52
|
+
// Legacy: clean up .mcp.json backup from previous Agent Teams implementation
|
|
55
53
|
restoreFromBackup(join(this.workingDir, '.mcp.json.pm-backup'), join(this.workingDir, '.mcp.json'));
|
|
56
54
|
}
|
|
57
55
|
/**
|
|
58
|
-
* Pre-approve tools in .claude/settings.json so
|
|
59
|
-
*
|
|
56
|
+
* Pre-approve tools in .claude/settings.json so headless instances
|
|
57
|
+
* can work without interactive permission prompts.
|
|
60
58
|
*/
|
|
61
|
-
|
|
59
|
+
installPermissions() {
|
|
60
|
+
if (this.claudeSettingsInstalled)
|
|
61
|
+
return;
|
|
62
62
|
const claudeDir = join(this.workingDir, '.claude');
|
|
63
63
|
const settingsPath = join(claudeDir, 'settings.json');
|
|
64
64
|
if (!existsSync(claudeDir)) {
|
|
@@ -91,11 +91,11 @@ export class ConfigInstaller {
|
|
|
91
91
|
this.claudeSettingsInstalled = true;
|
|
92
92
|
}
|
|
93
93
|
catch {
|
|
94
|
-
// Non-fatal —
|
|
94
|
+
// Non-fatal — headless instances may hit permission prompts
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
/** Restore original .claude/settings.json after wave execution. */
|
|
98
|
-
|
|
98
|
+
uninstallPermissions() {
|
|
99
99
|
if (!this.claudeSettingsInstalled)
|
|
100
100
|
return;
|
|
101
101
|
const settingsPath = join(this.workingDir, '.claude', 'settings.json');
|
|
@@ -120,63 +120,5 @@ export class ConfigInstaller {
|
|
|
120
120
|
this.savedClaudeSettings = null;
|
|
121
121
|
this.claudeSettingsInstalled = false;
|
|
122
122
|
}
|
|
123
|
-
/**
|
|
124
|
-
* Write .mcp.json so Agent Teams teammates auto-discover the bouncer MCP server.
|
|
125
|
-
* Also generates ~/.mstro/mcp-config.json for the team lead (--mcp-config).
|
|
126
|
-
*/
|
|
127
|
-
installBouncerForSubagents() {
|
|
128
|
-
const mcpJsonPath = join(this.workingDir, '.mcp.json');
|
|
129
|
-
const backupPath = join(this.workingDir, '.mcp.json.pm-backup');
|
|
130
|
-
try {
|
|
131
|
-
const generatedPath = generateMcpConfig(this.workingDir);
|
|
132
|
-
if (!generatedPath)
|
|
133
|
-
return;
|
|
134
|
-
const mcpConfig = readFileSync(generatedPath, 'utf-8');
|
|
135
|
-
if (existsSync(mcpJsonPath)) {
|
|
136
|
-
this.savedMcpJson = readFileSync(mcpJsonPath, 'utf-8');
|
|
137
|
-
writeFileSync(backupPath, this.savedMcpJson);
|
|
138
|
-
const existing = JSON.parse(this.savedMcpJson);
|
|
139
|
-
const generated = JSON.parse(mcpConfig);
|
|
140
|
-
existing.mcpServers = {
|
|
141
|
-
...existing.mcpServers,
|
|
142
|
-
'mstro-bouncer': generated.mcpServers['mstro-bouncer'],
|
|
143
|
-
};
|
|
144
|
-
writeFileSync(mcpJsonPath, JSON.stringify(existing, null, 2));
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
writeFileSync(backupPath, '__NONE__');
|
|
148
|
-
writeFileSync(mcpJsonPath, mcpConfig);
|
|
149
|
-
}
|
|
150
|
-
this.mcpJsonInstalled = true;
|
|
151
|
-
}
|
|
152
|
-
catch {
|
|
153
|
-
// Non-fatal: parent has MCP via --mcp-config, teammates fall back to PreToolUse hooks
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
/** Restore or remove .mcp.json after execution. */
|
|
157
|
-
uninstallBouncerForSubagents() {
|
|
158
|
-
if (!this.mcpJsonInstalled)
|
|
159
|
-
return;
|
|
160
|
-
const mcpJsonPath = join(this.workingDir, '.mcp.json');
|
|
161
|
-
const backupPath = join(this.workingDir, '.mcp.json.pm-backup');
|
|
162
|
-
try {
|
|
163
|
-
if (this.savedMcpJson !== null) {
|
|
164
|
-
writeFileSync(mcpJsonPath, this.savedMcpJson);
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
unlinkSync(mcpJsonPath);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
catch {
|
|
171
|
-
// Best effort cleanup
|
|
172
|
-
}
|
|
173
|
-
try {
|
|
174
|
-
if (existsSync(backupPath))
|
|
175
|
-
unlinkSync(backupPath);
|
|
176
|
-
}
|
|
177
|
-
catch { /* ok */ }
|
|
178
|
-
this.savedMcpJson = null;
|
|
179
|
-
this.mcpJsonInstalled = false;
|
|
180
|
-
}
|
|
181
123
|
}
|
|
182
124
|
//# sourceMappingURL=config-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-installer.js","sourceRoot":"","sources":["../../../../server/services/plan/config-installer.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gEAAgE;AAEhE
|
|
1
|
+
{"version":3,"file":"config-installer.js","sourceRoot":"","sources":["../../../../server/services/plan/config-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Plan Executor — Wave-based execution with Claude Code
|
|
2
|
+
* Plan Executor — Wave-based execution with parallel headless Claude Code instances.
|
|
3
3
|
*
|
|
4
|
-
* Orchestrates the execution loop: picks ready issues, executes waves
|
|
5
|
-
* runs AI review gate,
|
|
4
|
+
* Orchestrates the execution loop: picks ready issues, executes waves of
|
|
5
|
+
* parallel headless runners (one per issue), runs AI review gate,
|
|
6
|
+
* reconciles state, and repeats.
|
|
6
7
|
*
|
|
7
8
|
* Implementation is split across focused modules:
|
|
8
|
-
* - config-installer.ts
|
|
9
|
-
* - prompt-builder.ts
|
|
10
|
-
* - output-manager.ts
|
|
11
|
-
* - review-gate.ts
|
|
12
|
-
* - front-matter.ts
|
|
9
|
+
* - config-installer.ts — tool permissions install/uninstall
|
|
10
|
+
* - issue-prompt-builder.ts — per-issue prompt construction
|
|
11
|
+
* - output-manager.ts — output path resolution, listing, publishing
|
|
12
|
+
* - review-gate.ts — AI-powered quality gate (review, parse, persist)
|
|
13
|
+
* - front-matter.ts — YAML front matter field editing utility
|
|
13
14
|
*/
|
|
14
15
|
import { EventEmitter } from 'node:events';
|
|
15
16
|
export type ExecutionStatus = 'idle' | 'starting' | 'executing' | 'paused' | 'stopping' | 'complete' | 'error';
|
|
@@ -27,6 +28,8 @@ export declare class PlanExecutor extends EventEmitter {
|
|
|
27
28
|
private shouldStop;
|
|
28
29
|
private shouldPause;
|
|
29
30
|
private epicScope;
|
|
31
|
+
/** Cached PM directory path — resolved once per start(). */
|
|
32
|
+
private pmDir;
|
|
30
33
|
/** Board directory path (e.g. /path/.pm/boards/BOARD-001). Used for outputs, reviews, progress. */
|
|
31
34
|
private boardDir;
|
|
32
35
|
/** Board ID being executed (e.g. "BOARD-001") */
|
|
@@ -48,6 +51,8 @@ export declare class PlanExecutor extends EventEmitter {
|
|
|
48
51
|
stop(): void;
|
|
49
52
|
resume(): Promise<void>;
|
|
50
53
|
private executeWave;
|
|
54
|
+
/** Run a single issue via its own headless Claude Code instance. */
|
|
55
|
+
private runSingleIssue;
|
|
51
56
|
/**
|
|
52
57
|
* Post-wave operations wrapped individually so a failure in one
|
|
53
58
|
* doesn't prevent the others or kill the while loop in start().
|
|
@@ -61,6 +66,8 @@ export declare class PlanExecutor extends EventEmitter {
|
|
|
61
66
|
private reconcileWaveResults;
|
|
62
67
|
/** Run the review gate for a single issue that agents marked as done. Returns 1 if passed, 0 otherwise. */
|
|
63
68
|
private runReviewGate;
|
|
69
|
+
/** Read the board's maxParallelAgents setting, falling back to default. */
|
|
70
|
+
private getBoardMaxParallelAgents;
|
|
64
71
|
private pickReadyIssues;
|
|
65
72
|
/** Load issues from a specific board, auto-activating draft boards. Returns null on error. */
|
|
66
73
|
private loadBoardIssues;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../server/services/plan/executor.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../server/services/plan/executor.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAe3C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAc/G,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uDAAuD;IACvD,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAuB;IACxC,4DAA4D;IAC5D,OAAO,CAAC,KAAK,CAAuB;IACpC,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAuB;IACvC,iDAAiD;IACjD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,eAAe,CAAkB;IACzC,8EAA8E;IAC9E,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAMb;gBAEU,UAAU,EAAE,MAAM;IAM9B,SAAS,IAAI,eAAe;IAC5B,UAAU,IAAI,gBAAgB;IAExB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,8DAA8D;IACxD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC5B,uGAAuG;YACzF,WAAW;IAoBzB,KAAK,IAAI,IAAI;IACb,IAAI,IAAI,IAAI;IAEZ,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAUT,WAAW;IAoDzB,oEAAoE;YACtD,cAAc;IAqC5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAkCpB;;;;OAIG;YACW,oBAAoB;IAqClC,2GAA2G;YAC7F,aAAa;IA4C3B,2EAA2E;IAC3E,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,eAAe;IAwBvB,8FAA8F;IAC9F,OAAO,CAAC,eAAe;IAmBvB,8EAA8E;IAC9E,OAAO,CAAC,iBAAiB;IAazB,iEAAiE;IACjE,OAAO,CAAC,aAAa;IASrB,2EAA2E;IAC3E,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,mBAAmB;IA2C3B,OAAO,CAAC,kBAAkB;IAW1B,oFAAoF;IACpF,OAAO,CAAC,eAAe;CAUxB"}
|