agent-nuvira 3.3.1 → 3.3.3
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 +5 -8
- package/dist/agents/agents/runner.d.ts +9 -0
- package/dist/agents/agents/runner.d.ts.map +1 -1
- package/dist/agents/agents/runner.js +34 -12
- package/dist/agents/agents/runner.js.map +1 -1
- package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
- package/dist/agents/agents/writer-tool-calling.js +7 -2
- package/dist/agents/agents/writer-tool-calling.js.map +1 -1
- package/dist/agents/agents/writer.d.ts.map +1 -1
- package/dist/agents/agents/writer.js +7 -1
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/agents/artifact-verification.d.ts +102 -0
- package/dist/agents/artifact-verification.d.ts.map +1 -0
- package/dist/agents/artifact-verification.js +216 -0
- package/dist/agents/artifact-verification.js.map +1 -0
- package/dist/agents/checkpoint-store.d.ts +73 -0
- package/dist/agents/checkpoint-store.d.ts.map +1 -1
- package/dist/agents/checkpoint-store.js +161 -0
- package/dist/agents/checkpoint-store.js.map +1 -1
- package/dist/agents/credential-store.d.ts +120 -0
- package/dist/agents/credential-store.d.ts.map +1 -1
- package/dist/agents/credential-store.js +358 -19
- package/dist/agents/credential-store.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +10 -1
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +234 -75
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/phase-engine.d.ts +61 -0
- package/dist/agents/phase-engine.d.ts.map +1 -1
- package/dist/agents/phase-engine.js +68 -2
- package/dist/agents/phase-engine.js.map +1 -1
- package/dist/agents/prompt-assembly.d.ts +11 -0
- package/dist/agents/prompt-assembly.d.ts.map +1 -1
- package/dist/agents/prompt-assembly.js +17 -0
- package/dist/agents/prompt-assembly.js.map +1 -1
- package/dist/agents/release-preflight.d.ts +121 -0
- package/dist/agents/release-preflight.d.ts.map +1 -0
- package/dist/agents/release-preflight.js +259 -0
- package/dist/agents/release-preflight.js.map +1 -0
- package/dist/agents/release-runner.d.ts +157 -0
- package/dist/agents/release-runner.d.ts.map +1 -0
- package/dist/agents/release-runner.js +719 -0
- package/dist/agents/release-runner.js.map +1 -0
- package/dist/agents/step-handoff.d.ts +190 -0
- package/dist/agents/step-handoff.d.ts.map +1 -0
- package/dist/agents/step-handoff.js +443 -0
- package/dist/agents/step-handoff.js.map +1 -0
- package/dist/cli/benchmark.d.ts.map +1 -1
- package/dist/cli/benchmark.js +11 -4
- package/dist/cli/benchmark.js.map +1 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +25 -4
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +3 -0
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/credentials.d.ts +28 -0
- package/dist/cli/credentials.d.ts.map +1 -0
- package/dist/cli/credentials.js +213 -0
- package/dist/cli/credentials.js.map +1 -0
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +9 -3
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +74 -7
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/nlu.d.ts.map +1 -1
- package/dist/cli/nlu.js +8 -2
- package/dist/cli/nlu.js.map +1 -1
- package/dist/cli/publish.d.ts +22 -0
- package/dist/cli/publish.d.ts.map +1 -1
- package/dist/cli/publish.js +109 -13
- package/dist/cli/publish.js.map +1 -1
- package/dist/config/live-credentials.d.ts +57 -0
- package/dist/config/live-credentials.d.ts.map +1 -0
- package/dist/config/live-credentials.js +126 -0
- package/dist/config/live-credentials.js.map +1 -0
- package/dist/config/paths.d.ts +18 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +25 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/federation/a2a-types.js +1 -1
- package/dist/federation/a2a-types.js.map +1 -1
- package/dist/inference/model-validator.d.ts +6 -1
- package/dist/inference/model-validator.d.ts.map +1 -1
- package/dist/inference/model-validator.js +7 -2
- package/dist/inference/model-validator.js.map +1 -1
- package/dist/inference/route-resolver.d.ts +116 -0
- package/dist/inference/route-resolver.d.ts.map +1 -0
- package/dist/inference/route-resolver.js +159 -0
- package/dist/inference/route-resolver.js.map +1 -0
- package/dist/learning/autonomy-policy.d.ts +18 -0
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +35 -0
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +1 -1
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +25 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +29 -17
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +30 -9
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/mcp/catalog.js +2 -3
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +5 -3
- package/dist/mcp/manager.js.map +1 -1
- package/dist/skills/secret-capture.d.ts.map +1 -1
- package/dist/skills/secret-capture.js +9 -4
- package/dist/skills/secret-capture.js.map +1 -1
- package/dist/tools/credentials-tool.d.ts +24 -0
- package/dist/tools/credentials-tool.d.ts.map +1 -0
- package/dist/tools/credentials-tool.js +125 -0
- package/dist/tools/credentials-tool.js.map +1 -0
- package/dist/tools/git-tool.d.ts +25 -7
- package/dist/tools/git-tool.d.ts.map +1 -1
- package/dist/tools/git-tool.js +155 -15
- package/dist/tools/git-tool.js.map +1 -1
- package/dist/tools/loop-project-context.d.ts.map +1 -1
- package/dist/tools/loop-project-context.js +16 -0
- package/dist/tools/loop-project-context.js.map +1 -1
- package/dist/tools/loop-route-feed.d.ts +57 -0
- package/dist/tools/loop-route-feed.d.ts.map +1 -0
- package/dist/tools/loop-route-feed.js +101 -0
- package/dist/tools/loop-route-feed.js.map +1 -0
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +8 -2
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/publish-tool.d.ts.map +1 -1
- package/dist/tools/publish-tool.js +76 -10
- package/dist/tools/publish-tool.js.map +1 -1
- package/dist/tools/registry.d.ts +21 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +44 -6
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/run-terminal.d.ts +9 -0
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +80 -2
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +12 -5
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +148 -0
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/toolsets.js +2 -2
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/workflow/registry.js +1 -1
- package/dist/workflow/registry.js.map +1 -1
- package/package.json +5 -4
- package/src/web-dashboard/public/assets/{index-CjvoBhlz.js → index-CxDj7p6i.js} +2 -2
- package/src/web-dashboard/public/assets/{index-CjvoBhlz.js.map → index-CxDj7p6i.js.map} +1 -1
- package/src/web-dashboard/public/index.html +1 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The route feed — what the model is TOLD about the model that is serving it.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. The loop's system prompt describes the tool surface, the
|
|
5
|
+
* project, and the contract, and it says nothing about the route. So when a user
|
|
6
|
+
* asks "which model are you?" — or when the model narrates its own run — the only
|
|
7
|
+
* available answers are a guess, the user's config (`nuviraconfig.json`, which is
|
|
8
|
+
* what the ROUTER reads, not what answered), or a model name from its own
|
|
9
|
+
* training data. All three are fabrications. On this machine the config pins
|
|
10
|
+
* `providers.groq.model = openai/gpt-oss-120b` while a run can be served by a
|
|
11
|
+
* Gemini model, a repaired replacement, or a local model after a failover; a
|
|
12
|
+
* model that answers from config is simply wrong, and confidently so.
|
|
13
|
+
*
|
|
14
|
+
* The fix is the one this repo already applies to every other claim: state the
|
|
15
|
+
* fact that was measured, at the moment it was measured. The loop re-reads this
|
|
16
|
+
* feed BEFORE EVERY MODEL CALL, so a mid-turn failover cannot leave the model
|
|
17
|
+
* believing it is still something it stopped being three steps ago.
|
|
18
|
+
*
|
|
19
|
+
* The rules that make it honest rather than decorative:
|
|
20
|
+
* - It is generated from the resolver's own result, never from config.
|
|
21
|
+
* - Unknown stays unknown: an unresolved route says so and forbids inventing one.
|
|
22
|
+
* - A substitution is NAMED, in both directions, because "the router quietly ran
|
|
23
|
+
* you on something else" is the defect (see the route resolver).
|
|
24
|
+
* - It tells the model what to do with the fact (answer from this line; if a user
|
|
25
|
+
* asks, quote it), because a fact with no instruction is a fact the model
|
|
26
|
+
* paraphrases into something else.
|
|
27
|
+
*/
|
|
28
|
+
import type { ServedRoute } from '../inference/route-resolver.js';
|
|
29
|
+
/** Marker that identifies the feed inside the thread (used to replace it). */
|
|
30
|
+
export declare const ROUTE_FEED_MARKER = "ROUTE \u2014 what is actually serving this turn";
|
|
31
|
+
export declare function isUnresolvedModel(model: string | undefined): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* The thread frame.
|
|
34
|
+
*
|
|
35
|
+
* `requested`/`substituted` and `previous` are all optional because they are all
|
|
36
|
+
* facts that may not exist yet; the frame degrades to fewer true lines rather
|
|
37
|
+
* than filling gaps.
|
|
38
|
+
*/
|
|
39
|
+
export declare function routeFeedText(route: ServedRoute): string;
|
|
40
|
+
/**
|
|
41
|
+
* Record a NEW serving route, carrying the ones it replaced (bounded).
|
|
42
|
+
*
|
|
43
|
+
* The history is what turns "you are on local/gemma4:e4b" into the honest
|
|
44
|
+
* "steps 1-3 were answered by groq/openai/gpt-oss-120b, then it failed over" — a
|
|
45
|
+
* model told only the current pair will happily describe the whole turn as
|
|
46
|
+
* having been run by it.
|
|
47
|
+
*/
|
|
48
|
+
export declare function noteServedRoute(previous: ServedRoute | null, next: ServedRoute): ServedRoute;
|
|
49
|
+
/** Cap on remembered serving pairs — enough for a turn's failovers, not a log. */
|
|
50
|
+
export declare const MAX_ROUTE_HISTORY = 4;
|
|
51
|
+
/**
|
|
52
|
+
* Identity of a feed, for change detection. Two feeds with the same fingerprint
|
|
53
|
+
* render the same text, so the loop can skip a rewrite instead of churning the
|
|
54
|
+
* thread on every step.
|
|
55
|
+
*/
|
|
56
|
+
export declare function routeFeedFingerprint(route: ServedRoute | null | undefined): string;
|
|
57
|
+
//# sourceMappingURL=loop-route-feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-route-feed.d.ts","sourceRoot":"","sources":["../../src/tools/loop-route-feed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,oDAA+C,CAAC;AAK9E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CA0BxD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,GAAG,WAAW,CAS5F;AAED,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAUlF"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The route feed — what the model is TOLD about the model that is serving it.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS. The loop's system prompt describes the tool surface, the
|
|
5
|
+
* project, and the contract, and it says nothing about the route. So when a user
|
|
6
|
+
* asks "which model are you?" — or when the model narrates its own run — the only
|
|
7
|
+
* available answers are a guess, the user's config (`nuviraconfig.json`, which is
|
|
8
|
+
* what the ROUTER reads, not what answered), or a model name from its own
|
|
9
|
+
* training data. All three are fabrications. On this machine the config pins
|
|
10
|
+
* `providers.groq.model = openai/gpt-oss-120b` while a run can be served by a
|
|
11
|
+
* Gemini model, a repaired replacement, or a local model after a failover; a
|
|
12
|
+
* model that answers from config is simply wrong, and confidently so.
|
|
13
|
+
*
|
|
14
|
+
* The fix is the one this repo already applies to every other claim: state the
|
|
15
|
+
* fact that was measured, at the moment it was measured. The loop re-reads this
|
|
16
|
+
* feed BEFORE EVERY MODEL CALL, so a mid-turn failover cannot leave the model
|
|
17
|
+
* believing it is still something it stopped being three steps ago.
|
|
18
|
+
*
|
|
19
|
+
* The rules that make it honest rather than decorative:
|
|
20
|
+
* - It is generated from the resolver's own result, never from config.
|
|
21
|
+
* - Unknown stays unknown: an unresolved route says so and forbids inventing one.
|
|
22
|
+
* - A substitution is NAMED, in both directions, because "the router quietly ran
|
|
23
|
+
* you on something else" is the defect (see the route resolver).
|
|
24
|
+
* - It tells the model what to do with the fact (answer from this line; if a user
|
|
25
|
+
* asks, quote it), because a fact with no instruction is a fact the model
|
|
26
|
+
* paraphrases into something else.
|
|
27
|
+
*/
|
|
28
|
+
/** Marker that identifies the feed inside the thread (used to replace it). */
|
|
29
|
+
export const ROUTE_FEED_MARKER = 'ROUTE — what is actually serving this turn';
|
|
30
|
+
/** Sentinel model values that mean "nothing was resolved". */
|
|
31
|
+
const UNRESOLVED = new Set(['', 'default', 'auto', 'unknown', 'undefined']);
|
|
32
|
+
export function isUnresolvedModel(model) {
|
|
33
|
+
return !model || UNRESOLVED.has(model);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The thread frame.
|
|
37
|
+
*
|
|
38
|
+
* `requested`/`substituted` and `previous` are all optional because they are all
|
|
39
|
+
* facts that may not exist yet; the frame degrades to fewer true lines rather
|
|
40
|
+
* than filling gaps.
|
|
41
|
+
*/
|
|
42
|
+
export function routeFeedText(route) {
|
|
43
|
+
const lines = [ROUTE_FEED_MARKER + ' (measured by the resolver, not a guess):'];
|
|
44
|
+
lines.push(`- provider: ${route.providerType || 'unknown'}${route.providerName && route.providerName !== route.providerType ? ` (${route.providerName})` : ''}`);
|
|
45
|
+
if (isUnresolvedModel(route.model)) {
|
|
46
|
+
lines.push('- model: UNRESOLVED — the provider chooses at call time. You do NOT know which model is answering.');
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
lines.push(`- model: ${route.model}`);
|
|
50
|
+
}
|
|
51
|
+
if (route.requested && route.substituted) {
|
|
52
|
+
lines.push(`- requested: ${route.requested} → NOT available on ${route.providerType}; the router substituted ${route.model}. Say it that way if it comes up.`);
|
|
53
|
+
}
|
|
54
|
+
else if (route.requested && !route.substituted) {
|
|
55
|
+
lines.push(`- requested: ${route.requested} (served as asked)`);
|
|
56
|
+
}
|
|
57
|
+
if (route.previous && route.previous.length > 0) {
|
|
58
|
+
lines.push(`- earlier in this turn: ${route.previous.join(', ')} (a failover moved the work; the newest line above is the truth)`);
|
|
59
|
+
}
|
|
60
|
+
lines.push('- If the user asks which model/provider you are, answer from THIS line. If it says UNRESOLVED, say the route is unresolved — do not name a model from memory, from the user\'s config, or from an earlier step, and do not claim a model you have not been told about.');
|
|
61
|
+
return lines.join('\n');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Record a NEW serving route, carrying the ones it replaced (bounded).
|
|
65
|
+
*
|
|
66
|
+
* The history is what turns "you are on local/gemma4:e4b" into the honest
|
|
67
|
+
* "steps 1-3 were answered by groq/openai/gpt-oss-120b, then it failed over" — a
|
|
68
|
+
* model told only the current pair will happily describe the whole turn as
|
|
69
|
+
* having been run by it.
|
|
70
|
+
*/
|
|
71
|
+
export function noteServedRoute(previous, next) {
|
|
72
|
+
const history = [...(previous?.previous ?? [])];
|
|
73
|
+
if (previous && !isUnresolvedModel(previous.model)) {
|
|
74
|
+
const pair = `${previous.providerType}/${previous.model}`;
|
|
75
|
+
const current = `${next.providerType}/${next.model}`;
|
|
76
|
+
if (pair !== current && !history.includes(pair))
|
|
77
|
+
history.push(pair);
|
|
78
|
+
}
|
|
79
|
+
const bounded = history.slice(-MAX_ROUTE_HISTORY);
|
|
80
|
+
return bounded.length > 0 ? { ...next, previous: bounded } : next;
|
|
81
|
+
}
|
|
82
|
+
/** Cap on remembered serving pairs — enough for a turn's failovers, not a log. */
|
|
83
|
+
export const MAX_ROUTE_HISTORY = 4;
|
|
84
|
+
/**
|
|
85
|
+
* Identity of a feed, for change detection. Two feeds with the same fingerprint
|
|
86
|
+
* render the same text, so the loop can skip a rewrite instead of churning the
|
|
87
|
+
* thread on every step.
|
|
88
|
+
*/
|
|
89
|
+
export function routeFeedFingerprint(route) {
|
|
90
|
+
if (!route)
|
|
91
|
+
return '';
|
|
92
|
+
return [
|
|
93
|
+
route.providerType || '',
|
|
94
|
+
route.providerName || '',
|
|
95
|
+
route.model || '',
|
|
96
|
+
route.requested || '',
|
|
97
|
+
route.substituted ? '1' : '0',
|
|
98
|
+
(route.previous || []).join('>'),
|
|
99
|
+
].join('|');
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=loop-route-feed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-route-feed.js","sourceRoot":"","sources":["../../src/tools/loop-route-feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-tool.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,GAAG,EAClB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"pipeline-tool.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,GAAG,EAClB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CA+H7B;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAYxE;AA0BD;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* board, and D1 recall wiring for `continue` (mode 'recall').
|
|
17
17
|
*/
|
|
18
18
|
import { resolveProvider } from '../cli/router.js';
|
|
19
|
-
import {
|
|
19
|
+
import { resolveRoute } from '../inference/route-resolver.js';
|
|
20
20
|
import { getAutoRouter, isAutoProvider, isAutoModel } from '../learning/auto-router.js';
|
|
21
21
|
import { Orchestrator } from '../agents/orchestrator.js';
|
|
22
22
|
import { getEventBus, EventNames } from '../observability/event-bus.js';
|
|
@@ -46,7 +46,13 @@ export async function runPipelineTool(goal, configManager, opts) {
|
|
|
46
46
|
const decision = getAutoRouter().resolve('chat', goal, { verbose: true, useRuntimeStats: true }, configManager);
|
|
47
47
|
const resolved = resolveProvider(configManager, decision.provider);
|
|
48
48
|
provider = resolved.type;
|
|
49
|
-
model = await
|
|
49
|
+
model = (await resolveRoute({
|
|
50
|
+
providerType: decision.provider,
|
|
51
|
+
provider: resolved.provider,
|
|
52
|
+
model: decision.model,
|
|
53
|
+
source: 'cli',
|
|
54
|
+
task: goal,
|
|
55
|
+
})).model;
|
|
50
56
|
}
|
|
51
57
|
catch (err) {
|
|
52
58
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-tool.js","sourceRoot":"","sources":["../../src/tools/pipeline-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pipeline-tool.js","sourceRoot":"","sources":["../../src/tools/pipeline-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,YAAY,EAA4B,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC7G,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAyCzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,aAAkB,EAClB,IAAyB;IAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;IACnC,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,IAAI,CAAC,MAAM,+GAA+G,CAAC;IAClK,CAAC;IACD,qEAAqE;IACrE,2CAA2C;IAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC,OAAO,CACtC,MAAM,EACN,IAAI,EACJ,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EACxC,aAAa,CACd,CAAC;YACF,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;YACzB,KAAK,GAAG,CAAC,MAAM,YAAY,CAAC;gBAC1B,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI;aACX,CAAC,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,6DAA6D;gBACtE,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,yEAAyE;IACzE,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,0EAA0E;IAC1E,0EAA0E;IAC1E,kEAAkE;IAClE,uEAAuE;IACvE,0EAA0E;IAC1E,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC;IAEtC,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,uEAAuE;IACvE,mDAAmD;IACnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,mEAAmE;IACnE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,yEAAyE;IACzE,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;IACxC,MAAM,KAAK,GAAa;QACtB,kBAAkB,QAAQ,CAAC,WAAW,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,4CAA4C;QAC3H,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;KACtB,CAAC;IACF,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACvC,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,oBAAoB,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,IAAI,oBAAoB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACvF,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/E,CAAC;gBACD,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;IACpD,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IAExD,wEAAwE;IACxE,IAAI,SAAS,GAAyB,IAAI,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,WAAW,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IAEjF,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;YAC9C,QAAQ;YACR,KAAK;YACL,eAAe,EAAE,SAAS;YAC1B,OAAO,EAAE,KAAK;YACd,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc;YAC9D,aAAa;YACb,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,wEAAwE;YACxE,wEAAwE;YACxE,oDAAoD;YACpD,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC;YACnC,MAAM;SACP,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/G,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,MAA2B;IAC5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,UAAU,YAAY,CAAC,CAAC;IAC/E,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,mBAAmB,EAAE,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+EAA+E;AAE/E,MAAM,WAAW,GAA6B;IAC5C,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,SAAS;IACjB,wEAAwE;IACxE,0EAA0E;IAC1E,sEAAsE;IACtE,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,SAAS;CAChB,CAAC;AACF,MAAM,aAAa,GAA+B;IAChD,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,cAAc;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAc,EACd,IAAa,EACb,GAAgB;IAEhB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,4BAA4B,MAAM,EAAE,CAAC;IAEvD,MAAM,CAAC,GAAG,IAAqG,CAAC;IAChH,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,MAAM,gBAAgB,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC;IAElG,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,EAAE;QAC5D,IAAI;QACJ,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC;QACrC,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;QACnD,KAAK,EAAE,CAAC,KAAK,MAAM,4BAA4B,CAAC;KACjD,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,SAAS;QAC/D,MAAM,CAAC,OAAO;QACd,GAAG,MAAM,CAAC,OAAO;KAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-tool.d.ts","sourceRoot":"","sources":["../../src/tools/publish-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"publish-tool.d.ts","sourceRoot":"","sources":["../../src/tools/publish-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkCjD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA2IrF"}
|
|
@@ -15,15 +15,38 @@
|
|
|
15
15
|
* - `dry_run: true` previews the phases without touching anything.
|
|
16
16
|
* - Returns a summary text fed back to the model (never throws).
|
|
17
17
|
*/
|
|
18
|
+
import { readFileSync } from 'node:fs';
|
|
19
|
+
import { join } from 'node:path';
|
|
18
20
|
import { CredentialStore } from '../agents/credential-store.js';
|
|
19
21
|
import { Orchestrator } from '../agents/orchestrator.js';
|
|
20
22
|
import { buildPublishPhases } from '../cli/publish.js';
|
|
23
|
+
import { maskSecret } from '../enterprise/secrets.js';
|
|
21
24
|
import { logger } from '../utils/logger.js';
|
|
25
|
+
/**
|
|
26
|
+
* One masked line naming the credentials the release will ACTUALLY use.
|
|
27
|
+
*
|
|
28
|
+
* The failure this exists to prevent: a release ran its whole pipeline and
|
|
29
|
+
* reported "complete" while holding no credentials at all, so every push and
|
|
30
|
+
* publish silently no-opped. Saying which token is in play (masked — never the
|
|
31
|
+
* value) makes that state visible in the tool result the model reads back.
|
|
32
|
+
*/
|
|
33
|
+
function describeReleaseCredentials(store) {
|
|
34
|
+
const gitToken = store.git?.token;
|
|
35
|
+
const sshKey = store.git?.sshKeyPath;
|
|
36
|
+
const npmToken = store.npm?.token;
|
|
37
|
+
const parts = [
|
|
38
|
+
gitToken ? `git ✓ (${maskSecret(gitToken)})` : sshKey ? 'git ✓ (ssh key)' : 'git ✗',
|
|
39
|
+
npmToken ? `npm ✓ (${maskSecret(npmToken)})` : 'npm ✗',
|
|
40
|
+
];
|
|
41
|
+
return `🔑 Credentials: ${parts.join(' ')}`;
|
|
42
|
+
}
|
|
22
43
|
/** P5a — post-publish release-sync (website/docs kept at release level). */
|
|
23
44
|
function currentPackageVersion() {
|
|
24
45
|
try {
|
|
25
|
-
|
|
26
|
-
|
|
46
|
+
// Static ESM imports — the previous inline `require('node:fs')` threw
|
|
47
|
+
// `require is not defined` in the published build, and because this sits in
|
|
48
|
+
// a try/catch the version silently read as '' rather than failing loudly.
|
|
49
|
+
const raw = readFileSync(join(process.cwd(), 'package.json'), 'utf-8');
|
|
27
50
|
return JSON.parse(raw).version ?? '';
|
|
28
51
|
}
|
|
29
52
|
catch {
|
|
@@ -51,20 +74,53 @@ export async function runPublishTool(args, ctx) {
|
|
|
51
74
|
].join('\n');
|
|
52
75
|
}
|
|
53
76
|
if (!dry_run) {
|
|
54
|
-
//
|
|
55
|
-
//
|
|
77
|
+
// NON-INTERACTIVE init FIRST. `setupGitCredentials()` / `setupNpmAuth()`
|
|
78
|
+
// both refuse to run until the store is collected, and this tool never
|
|
79
|
+
// prompts — so before `initialize()` existed these two calls threw on
|
|
80
|
+
// every tool-driven release AND a single shared try/catch hid the pair.
|
|
81
|
+
// The pipeline then ran with no credentials while reporting success.
|
|
82
|
+
credStore.initialize();
|
|
83
|
+
// Separate catches: a failure to set up git auth must not swallow the npm
|
|
84
|
+
// one (and vice versa) — that is exactly how the pair went missing before.
|
|
56
85
|
try {
|
|
57
86
|
credStore.setupGitCredentials();
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
logger.warn(` ⚠️ Git credential setup issue: ${err}`);
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
58
92
|
credStore.setupNpmAuth();
|
|
59
93
|
}
|
|
60
94
|
catch (err) {
|
|
61
|
-
logger.warn(` ⚠️
|
|
95
|
+
logger.warn(` ⚠️ npm credential setup issue: ${err}`);
|
|
62
96
|
}
|
|
63
97
|
}
|
|
64
98
|
const phases = buildPublishPhases(bump, skip_tests, {
|
|
65
99
|
git: credStore.git,
|
|
66
100
|
npm: credStore.npm,
|
|
67
101
|
});
|
|
102
|
+
// ── PREFLIGHT before anything irreversible ───────────────────────────────
|
|
103
|
+
// The same checks the CLI runs, for the same reason: a tool-driven release is
|
|
104
|
+
// MORE likely to be unattended, so starting one that cannot finish is worse
|
|
105
|
+
// here than at a terminal. Non-interactive by construction — a definitive
|
|
106
|
+
// blocker is reported back to the model, which can fix it or ask the user;
|
|
107
|
+
// "unanswerable" (offline) warns and proceeds.
|
|
108
|
+
if (!dry_run) {
|
|
109
|
+
const { runReleasePreflight, formatPreflight } = await import('../agents/release-preflight.js');
|
|
110
|
+
const { bumpVersionString, readVersion } = await import('../agents/release-runner.js');
|
|
111
|
+
const current = readVersion();
|
|
112
|
+
const targetVersion = current ? bumpVersionString(current, bump) : '';
|
|
113
|
+
const needsModel = phases.some((p) => !p.runner);
|
|
114
|
+
const preflight = await runReleasePreflight({ targetVersion, needsModel });
|
|
115
|
+
if (preflight.blocked) {
|
|
116
|
+
return [
|
|
117
|
+
formatPreflight(preflight),
|
|
118
|
+
'',
|
|
119
|
+
'❌ The release was NOT started: the checks above are definitive, so nothing was committed, tagged or published.',
|
|
120
|
+
' Fix the blocker (or bump to a free version) and call this tool again.',
|
|
121
|
+
].join('\n');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
68
124
|
if (dry_run) {
|
|
69
125
|
return [
|
|
70
126
|
`📋 Publish DRY RUN — "${publishGoal}" (${bump} bump)`,
|
|
@@ -73,7 +129,12 @@ export async function runPublishTool(args, ctx) {
|
|
|
73
129
|
].join('\n');
|
|
74
130
|
}
|
|
75
131
|
const orchestrator = new Orchestrator(ctx.configManager);
|
|
76
|
-
const lines = [
|
|
132
|
+
const lines = [
|
|
133
|
+
// State the credentials up front, so the model (and the user reading the
|
|
134
|
+
// transcript) can see a release that is about to no-op for want of a token
|
|
135
|
+
// BEFORE it reports itself complete.
|
|
136
|
+
describeReleaseCredentials(credStore),
|
|
137
|
+
];
|
|
77
138
|
let hasFailure = false;
|
|
78
139
|
// P5a — capture the PRE-publish version so a post-publish sync check can
|
|
79
140
|
// diff the release markers against what was actually bumped.
|
|
@@ -82,10 +143,15 @@ export async function runPublishTool(args, ctx) {
|
|
|
82
143
|
const phase = phases[i];
|
|
83
144
|
lines.push(`📦 ${i + 1}/${phases.length}: ${phase.description}`);
|
|
84
145
|
try {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
146
|
+
// A phase with a runner is a mechanical step with a known-correct
|
|
147
|
+
// outcome (bump, tag, push, publish) and runs deterministically; only a
|
|
148
|
+
// phase without one needs the orchestrator to plan it.
|
|
149
|
+
const result = phase.runner
|
|
150
|
+
? await phase.runner()
|
|
151
|
+
: await orchestrator.execute(phase.goal, {
|
|
152
|
+
verbose: false,
|
|
153
|
+
skipTests: skip_tests,
|
|
154
|
+
});
|
|
89
155
|
if (result.success) {
|
|
90
156
|
lines.push(` ✅ ${result.summary ? result.summary.slice(0, 120) : 'completed'}`);
|
|
91
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-tool.js","sourceRoot":"","sources":["../../src/tools/publish-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C
|
|
1
|
+
{"version":3,"file":"publish-tool.js","sourceRoot":"","sources":["../../src/tools/publish-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAAC,KAAsB;IACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAClC,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO;QACnF,QAAQ,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;KACvD,CAAC;IACF,OAAO,mBAAmB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,4EAA4E;AAC5E,SAAS,qBAAqB;IAC5B,IAAI,CAAC;QACH,sEAAsE;QACtE,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;QACvE,OAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC,OAAO,IAAI,EAAE,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAa,EAAE,GAAgB;IAClE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,WAAW,IAAI,UAAU,CAAC;IAE9D,kEAAkE;IAClE,8DAA8D;IAC9D,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IAExC,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC5D,OAAO;YACL,6EAA6E;YAC7E,kEAAkE;YAClE,0FAA0F;YAC1F,+CAA+C;SAChD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,wEAAwE;QACxE,qEAAqE;QACrE,SAAS,CAAC,UAAU,EAAE,CAAC;QACvB,0EAA0E;QAC1E,2EAA2E;QAC3E,IAAI,CAAC;YACH,SAAS,CAAC,mBAAmB,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC;YACH,SAAS,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE;QAClD,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,GAAG,EAAE,SAAS,CAAC,GAAG;KACnB,CAAC,CAAC;IAEH,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,+CAA+C;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAChG,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3E,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO;gBACL,eAAe,CAAC,SAAS,CAAC;gBAC1B,EAAE;gBACF,gHAAgH;gBAChH,0EAA0E;aAC3E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,yBAAyB,WAAW,MAAM,IAAI,QAAQ;YACtD,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACrE,2BAA2B;SAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,KAAK,GAAa;QACtB,yEAAyE;QACzE,2EAA2E;QAC3E,qCAAqC;QACrC,0BAA0B,CAAC,SAAS,CAAC;KACtC,CAAC;IACF,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,yEAAyE;IACzE,6DAA6D;IAC7D,MAAM,oBAAoB,GAAG,qBAAqB,EAAE,CAAC;IAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,kEAAkE;YAClE,wEAAwE;YACxE,uDAAuD;YACvD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;gBACzB,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE;gBACtB,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;oBACrC,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,UAAU;iBACtB,CAAC,CAAC;YACP,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,IAAI,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAO,EAAE,CAAC;IAEpB,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,yDAAyD;IACzD,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,qBAAqB,EAAE,IAAI,oBAAoB,CAAC;YAClE,QAAQ,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC1C,IAAI,oBAAoB;gBAAE,KAAK,CAAC,IAAI,CAAC,+BAA+B,oBAAoB,EAAE,CAAC,CAAC;QAC9F,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC,CAAC,gDAAgD;QACnE,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;YACR,CAAC,CAAC,gBAAgB,WAAW,4BAA4B,MAAM,CAAC,MAAM,UAAU;YAChF,CAAC,CAAC,eAAe,WAAW,eAAe,MAAM,CAAC,MAAM,UAAU;QACpE,GAAG,KAAK;QACR,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
package/dist/tools/registry.d.ts
CHANGED
|
@@ -252,6 +252,22 @@ export declare const publishToolSchema: z.ZodObject<{
|
|
|
252
252
|
dry_run: z.ZodDefault<z.ZodBoolean>;
|
|
253
253
|
skip_tests: z.ZodDefault<z.ZodBoolean>;
|
|
254
254
|
}, z.core.$strip>;
|
|
255
|
+
/**
|
|
256
|
+
* Release credentials (store/status/forget/verify) — the E3c publish tool can
|
|
257
|
+
* only release with a GitHub and an npm token, and this is how the agent keeps
|
|
258
|
+
* them. Storing is NOT an irreversible external action, so it is not gated —
|
|
259
|
+
* but the VALUE must come from the user: `ask_user` for it, never invent one.
|
|
260
|
+
*/
|
|
261
|
+
export declare const credentialsToolSchema: z.ZodObject<{
|
|
262
|
+
action: z.ZodDefault<z.ZodEnum<{
|
|
263
|
+
store: "store";
|
|
264
|
+
status: "status";
|
|
265
|
+
verify: "verify";
|
|
266
|
+
forget: "forget";
|
|
267
|
+
}>>;
|
|
268
|
+
key: z.ZodOptional<z.ZodString>;
|
|
269
|
+
value: z.ZodOptional<z.ZodString>;
|
|
270
|
+
}, z.core.$strip>;
|
|
255
271
|
/** E3g — gateway message delivery: target + text + optional media (model-decides vocabulary). */
|
|
256
272
|
export declare const gatewaySendSchema: z.ZodObject<{
|
|
257
273
|
target: z.ZodString;
|
|
@@ -264,9 +280,10 @@ export declare const runCliSchema: z.ZodObject<{
|
|
|
264
280
|
ask: z.ZodString;
|
|
265
281
|
confirm: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
266
282
|
}, z.core.$strip>;
|
|
267
|
-
/** P3b — gated git args: structured status/log/diff/commit. */
|
|
283
|
+
/** P3b — gated git args: structured status/log/diff/commit, plus the gated push. */
|
|
268
284
|
export declare const gitToolSchema: z.ZodObject<{
|
|
269
285
|
action: z.ZodEnum<{
|
|
286
|
+
push: "push";
|
|
270
287
|
status: "status";
|
|
271
288
|
log: "log";
|
|
272
289
|
diff: "diff";
|
|
@@ -276,6 +293,9 @@ export declare const gitToolSchema: z.ZodObject<{
|
|
|
276
293
|
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
277
294
|
confirm: z.ZodDefault<z.ZodBoolean>;
|
|
278
295
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
296
|
+
remote: z.ZodOptional<z.ZodString>;
|
|
297
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
298
|
+
tags: z.ZodDefault<z.ZodBoolean>;
|
|
279
299
|
}, z.core.$strip>;
|
|
280
300
|
/** P3a — clone_repo args: a git URL to assess (depth-1 shallow only). */
|
|
281
301
|
export declare const cloneRepoSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -98,6 +98,26 @@ export const publishToolSchema = z.object({
|
|
|
98
98
|
dry_run: z.boolean().default(false).describe('Preview the publish phases without publishing anything'),
|
|
99
99
|
skip_tests: z.boolean().default(false).describe('Skip the test-verification phase'),
|
|
100
100
|
});
|
|
101
|
+
/**
|
|
102
|
+
* Release credentials (store/status/forget/verify) — the E3c publish tool can
|
|
103
|
+
* only release with a GitHub and an npm token, and this is how the agent keeps
|
|
104
|
+
* them. Storing is NOT an irreversible external action, so it is not gated —
|
|
105
|
+
* but the VALUE must come from the user: `ask_user` for it, never invent one.
|
|
106
|
+
*/
|
|
107
|
+
export const credentialsToolSchema = z.object({
|
|
108
|
+
action: z
|
|
109
|
+
.enum(['status', 'store', 'forget', 'verify'])
|
|
110
|
+
.default('status')
|
|
111
|
+
.describe('status = which credentials exist and where each came from; store = persist a token the user supplied; forget = delete a stored token; verify = check the tokens against the live services'),
|
|
112
|
+
key: z
|
|
113
|
+
.string()
|
|
114
|
+
.optional()
|
|
115
|
+
.describe('Credential name for store/forget: GITHUB_TOKEN | GIT_USERNAME | NPM_TOKEN | NPM_REGISTRY'),
|
|
116
|
+
value: z
|
|
117
|
+
.string()
|
|
118
|
+
.optional()
|
|
119
|
+
.describe('Value to store (action=store). Must come from the USER via ask_user — never invent, guess or reuse a token from elsewhere in the transcript.'),
|
|
120
|
+
});
|
|
101
121
|
/** E3c — the task tools all carry a goal (model-decides vocabulary). */
|
|
102
122
|
const taskGoalArgs = z.object({ goal: z.string().describe('The task goal passed to the agent pipeline') });
|
|
103
123
|
/** E3g — gateway message delivery: target + text + optional media (model-decides vocabulary). */
|
|
@@ -128,13 +148,16 @@ export const runCliSchema = z.object({
|
|
|
128
148
|
.default(false)
|
|
129
149
|
.describe('Set true ONLY after the user explicitly confirmed a destructive/system-level command you initiated. When the user’s own request resolves to the exact command (they asked to stop the dashboard), that IS the confirmation — the tool applies it. Irreversible intents (history.clear, memory.prune, stats.cost.clear, publish) always need it.'),
|
|
130
150
|
});
|
|
131
|
-
/** P3b — gated git args: structured status/log/diff/commit. */
|
|
151
|
+
/** P3b — gated git args: structured status/log/diff/commit, plus the gated push. */
|
|
132
152
|
export const gitToolSchema = z.object({
|
|
133
|
-
action: z.enum(['status', 'log', 'diff', 'commit']).describe('What to do — status/log are read-only; diff returns a structured diff (rendered as a card); commit is GATED unless the user’s own request asked for the commit.'),
|
|
153
|
+
action: z.enum(['status', 'log', 'diff', 'commit', 'push']).describe('What to do — status/log are read-only; diff returns a structured diff (rendered as a card); commit is GATED unless the user’s own request asked for the commit; push is GATED and STAYS gated unless the user’s own request named the push ("commit and push this to GitHub"). A request to commit locally does NOT authorize a push.'),
|
|
134
154
|
message: z.string().optional().describe('Commit message (action=commit, required)'),
|
|
135
155
|
files: z.array(z.string()).optional().describe('Files to stage+commit — the ACCEPTED subset after the user reviewed the diff card (absent = all changes)'),
|
|
136
|
-
confirm: z.boolean().default(false).describe('
|
|
156
|
+
confirm: z.boolean().default(false).describe('Gate for the two history-changing actions (commit, push) — required when the MODEL initiated the action. When the user’s own request asks for it, that request IS the approval: call it with confirm:false and it applies (for commit: "commit these changes"; for push: the request must name the push itself).'),
|
|
137
157
|
limit: z.number().int().min(1).max(100).optional().describe('Log limit (action=log, default 20)'),
|
|
158
|
+
remote: z.string().optional().describe('Push destination (action=push, default: the repository’s first remote)'),
|
|
159
|
+
branch: z.string().optional().describe('Push source branch (action=push, default: the current branch)'),
|
|
160
|
+
tags: z.boolean().default(false).describe('action=push — also push tags after the branch'),
|
|
138
161
|
});
|
|
139
162
|
/** P3a — clone_repo args: a git URL to assess (depth-1 shallow only). */
|
|
140
163
|
export const cloneRepoSchema = z.object({
|
|
@@ -438,6 +461,16 @@ registerTool({
|
|
|
438
461
|
endsAgentStep: true,
|
|
439
462
|
run: (args, ctx) => runPublishTool(args, ctx),
|
|
440
463
|
});
|
|
464
|
+
registerTool({
|
|
465
|
+
name: 'credentials',
|
|
466
|
+
description: 'Release credentials: status (what exists, and where from), store (persist a GitHub/npm token so releases work without an environment export), forget (delete one), verify (check the tokens against the live services). Call status before a release; if a token is missing, ask_user for it and store it — never invent one.',
|
|
467
|
+
category: 'workflow',
|
|
468
|
+
inputSchema: credentialsToolSchema,
|
|
469
|
+
// Not a dispenser: the model must read the credential picture and act on it
|
|
470
|
+
// (store the missing token, or proceed with the release).
|
|
471
|
+
endsAgentStep: false,
|
|
472
|
+
run: (args, ctx) => runCredentialsTool(args, ctx),
|
|
473
|
+
});
|
|
441
474
|
registerTool({
|
|
442
475
|
name: 'ask_user',
|
|
443
476
|
description: 'Ask the user a clarifying question with 2–4 choices (multi-select optional). Use when a request is ambiguous or missing information.',
|
|
@@ -848,11 +881,12 @@ registerTool({
|
|
|
848
881
|
// The agent can commit IN CONVERSATION, visibly: `git diff` emits a
|
|
849
882
|
// structured event the dashboard renders as a 🔧 diff card (per-file +/−
|
|
850
883
|
// sections); `git commit` is GATED (confirm:true after ask_user) and stages
|
|
851
|
-
// only the ACCEPTED files subset. push
|
|
852
|
-
//
|
|
884
|
+
// only the ACCEPTED files subset. `git push` is a real GATED action here (the
|
|
885
|
+
// only outbound one — it asks unless the user's own request named the push),
|
|
886
|
+
// while reset --hard/clean remain structurally unexpressible AND deny-guarded.
|
|
853
887
|
registerTool({
|
|
854
888
|
name: 'git',
|
|
855
|
-
description: 'Structured git operations: status/log (read-only), diff (unified output + a diff card in the GUI),
|
|
889
|
+
description: 'Structured git operations: status/log (read-only), diff (unified output + a diff card in the GUI), commit (GATED — confirm:true only after the user approved via ask_user; optional files = the accepted subset to stage+commit), and push (GATED — sends a branch to a remote; runs when the user’s own request named the push, otherwise ask via ask_user first). Use for the whole flow: diff → ask_user (accept/reject files) → commit → push.',
|
|
856
890
|
category: 'workflow',
|
|
857
891
|
inputSchema: gitToolSchema,
|
|
858
892
|
endsAgentStep: false,
|
|
@@ -944,6 +978,10 @@ function runPipelineTool(action, args, ctx) {
|
|
|
944
978
|
function runPublishTool(args, ctx) {
|
|
945
979
|
return import('./publish-tool.js').then((m) => m.runPublishTool(args, ctx));
|
|
946
980
|
}
|
|
981
|
+
/** Release credentials as a tool (store/status/forget/verify) — see credentials-tool.ts. */
|
|
982
|
+
function runCredentialsTool(args, ctx) {
|
|
983
|
+
return import('./credentials-tool.js').then((m) => m.runCredentialsTool(args, ctx));
|
|
984
|
+
}
|
|
947
985
|
/** The C2 requirementState check — see executor.ts. */
|
|
948
986
|
function verifyRequirement(request, ctx) {
|
|
949
987
|
return import('./verify-requirement.js').then((m) => m.verifyRequirementTool(request, ctx));
|