cawdex 1.35.75 → 1.35.76
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 -5
- package/bin/anycode.js +2 -2
- package/bin/cawdex.js +408 -408
- package/bin/ecc-hooks.cjs +11 -11
- package/dist/agents-md.d.ts +31 -0
- package/dist/agents-md.js +340 -0
- package/dist/agents-md.js.map +1 -0
- package/dist/agents.js +1424 -1424
- package/dist/api.d.ts +1 -0
- package/dist/api.js +19 -14
- package/dist/api.js.map +1 -1
- package/dist/autonomous-loops.js +287 -287
- package/dist/benchmark-repos.d.ts +31 -0
- package/dist/benchmark-repos.js +234 -8
- package/dist/benchmark-repos.js.map +1 -1
- package/dist/command-palette.js +4 -2
- package/dist/command-palette.js.map +1 -1
- package/dist/compaction.js +8 -8
- package/dist/config.js +51 -36
- package/dist/config.js.map +1 -1
- package/dist/content-engine.js +543 -543
- package/dist/context-brief.d.ts +4 -0
- package/dist/context-brief.js +230 -0
- package/dist/context-brief.js.map +1 -0
- package/dist/cost-tracker.d.ts +33 -14
- package/dist/cost-tracker.js +81 -19
- package/dist/cost-tracker.js.map +1 -1
- package/dist/coverage.js +39 -39
- package/dist/docs-sync.js +98 -98
- package/dist/evaluation.js +452 -452
- package/dist/fixed-footer.d.ts +7 -1
- package/dist/fixed-footer.js +92 -18
- package/dist/fixed-footer.js.map +1 -1
- package/dist/git-workflow.js +49 -49
- package/dist/index.d.ts +2 -0
- package/dist/index.js +161 -63
- package/dist/index.js.map +1 -1
- package/dist/live-queue.js +1 -1
- package/dist/live-queue.js.map +1 -1
- package/dist/model-aliases.d.ts +37 -0
- package/dist/model-aliases.js +203 -0
- package/dist/model-aliases.js.map +1 -0
- package/dist/orchestration.js +15 -15
- package/dist/permissions.d.ts +6 -0
- package/dist/permissions.js +53 -0
- package/dist/permissions.js.map +1 -1
- package/dist/pm2-manager.js +26 -26
- package/dist/query.d.ts +0 -1
- package/dist/query.js +74 -39
- package/dist/query.js.map +1 -1
- package/dist/refactor.js +87 -87
- package/dist/repo-command.js +7 -1
- package/dist/repo-command.js.map +1 -1
- package/dist/search-first.js +92 -92
- package/dist/skill-create.js +100 -100
- package/dist/stitch.js +1 -1
- package/dist/system-prompt.d.ts +2 -1
- package/dist/system-prompt.js +10 -5
- package/dist/system-prompt.js.map +1 -1
- package/dist/tools/github-repo-digest.d.ts +1 -1
- package/dist/tools/github-repo-digest.js +38 -6
- package/dist/tools/github-repo-digest.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.js.map +1 -1
- package/dist/verification.js +55 -55
- package/package.json +1 -1
- package/resources/__init__.py +1 -1
- package/resources/exgentic/cawdex_agent/README.md +114 -114
- package/resources/exgentic/cawdex_agent/__init__.py +5 -5
- package/resources/exgentic/cawdex_agent/agent.py +605 -605
- package/resources/exgentic/cawdex_agent/requirements.txt +2 -2
- package/resources/exgentic/cawdex_agent/setup.sh +21 -21
- package/resources/exgentic/cawdex_agent/utils.py +1061 -1061
- package/resources/hal/cawdex_agent/README.md +24 -24
- package/resources/hal/cawdex_agent/__init__.py +1 -1
- package/resources/hal/cawdex_agent/main.py +550 -550
- package/resources/hal/cawdex_agent/requirements.txt +2 -2
- package/resources/kbench/cawdex_agent/README.md +107 -107
- package/resources/kbench/cawdex_agent/adapter.manifest.json +19 -19
- package/resources/kbench/cawdex_agent/runner.mjs +753 -753
- package/resources/open_agent_leaderboard/cawdex-agent-card.md +119 -119
- package/resources/terminal_bench/__init__.py +1 -1
- package/resources/terminal_bench/cawdex_agent.py +174 -174
- package/resources/terminal_bench/setup.sh +121 -121
package/dist/live-queue.js
CHANGED
|
@@ -63,7 +63,7 @@ export function shouldUseLiveQueue(platform = process.platform, env = process.en
|
|
|
63
63
|
*/
|
|
64
64
|
export function activate() {
|
|
65
65
|
if (isFooterActive()) {
|
|
66
|
-
setFooterActivity('
|
|
66
|
+
setFooterActivity('Sumi ink moving', 0, Date.now());
|
|
67
67
|
setFooterDraft('');
|
|
68
68
|
return true;
|
|
69
69
|
}
|
package/dist/live-queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-queue.js","sourceRoot":"","sources":["../src/live-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtF,MAAM,IAAI,GAAG;IACX,UAAU,EAAE,OAAO,EAA+B,mCAAmC;IACrF,aAAa,EAAE,OAAO,EAA4B,QAAQ;IAC1D,YAAY,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG;IACjE,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG;IAC3D,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;CACf,CAAC;AASF,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,MAAM,UAAU,kBAAkB,CAChC,WAA4B,OAAO,CAAC,QAAQ,EAC5C,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClF,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAEhF,qEAAqE;IACrE,sEAAsE;IACtE,0EAA0E;IAC1E,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ;IACtB,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"live-queue.js","sourceRoot":"","sources":["../src/live-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtF,MAAM,IAAI,GAAG;IACX,UAAU,EAAE,OAAO,EAA+B,mCAAmC;IACrF,aAAa,EAAE,OAAO,EAA4B,QAAQ;IAC1D,YAAY,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG;IACjE,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG;IAC3D,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;CACf,CAAC;AASF,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,MAAM,UAAU,kBAAkB,CAChC,WAA4B,OAAO,CAAC,QAAQ,EAC5C,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClF,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAEhF,qEAAqE;IACrE,sEAAsE;IACtE,0EAA0E;IAC1E,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ;IACtB,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC,kBAAkB,EAAE;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC5B,gEAAgE;IAChE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7C,iEAAiE;IACjE,mEAAmE;IACnE,4CAA4C;IAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnB,kEAAkE;IAClE,iEAAiE;IACjE,gEAAgE;IAChE,8DAA8D;IAC9D,kEAAkE;IAClE,UAAU;IACV,EAAE;IACF,+DAA+D;IAC/D,6DAA6D;IAC7D,6DAA6D;IAC7D,8DAA8D;IAC9D,8DAA8D;IAC9D,gEAAgE;IAChE,+DAA+D;IAC/D,6DAA6D;IAC7D,EAAE;IACF,mEAAmE;IACnE,gEAAgE;IAChE,2BAA2B;IAC3B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7C,MAAM,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAEtC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEhC,sCAAsC;IACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE9B,iEAAiE;IACjE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,IAAI,OAAO,GAAG,aAAa;QACzB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,oEAAoE,CAAC;IACzE,kEAAkE;IAClE,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,sEAAsE;IACtE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE7C,qEAAqE;IACrE,wEAAwE;IACxE,iCAAiC;IACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;IAEtI,gDAAgD;IAChD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE1B,iEAAiE;IACjE,kEAAkE;IAClE,iEAAiE;IACjE,gEAAgE;IAChE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEjC,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,QAAQ;IACtB,OAAO,MAAM,KAAK,IAAI,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { CawdexConfig, ReasoningEffort } from './types.js';
|
|
2
|
+
export interface ModelResolution {
|
|
3
|
+
model: string;
|
|
4
|
+
source: 'user-alias' | 'builtin-alias' | 'tier' | 'direct';
|
|
5
|
+
alias?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ModelTurnOverride {
|
|
8
|
+
model?: string;
|
|
9
|
+
reasoningEffort?: ReasoningEffort;
|
|
10
|
+
source: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ParsedModelOnce {
|
|
13
|
+
override?: ModelTurnOverride;
|
|
14
|
+
error?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const REASONING_EFFORTS: readonly ReasoningEffort[];
|
|
17
|
+
export declare function isValidModelAliasName(value: string): boolean;
|
|
18
|
+
export declare function normalizeReasoningEffort(value: string | undefined): ReasoningEffort | null;
|
|
19
|
+
export declare function tokenizeModelCommandArgs(args: string): string[];
|
|
20
|
+
export declare function listModelAliases(config: CawdexConfig): Array<{
|
|
21
|
+
alias: string;
|
|
22
|
+
model: string;
|
|
23
|
+
source: 'user' | 'builtin';
|
|
24
|
+
description?: string;
|
|
25
|
+
}>;
|
|
26
|
+
export declare function resolveModelReference(config: CawdexConfig, value: string, depth?: number): ModelResolution;
|
|
27
|
+
export declare function setModelAlias(config: CawdexConfig, alias: string, target: string): {
|
|
28
|
+
ok: true;
|
|
29
|
+
model: string;
|
|
30
|
+
} | {
|
|
31
|
+
ok: false;
|
|
32
|
+
error: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function deleteModelAlias(config: CawdexConfig, alias: string): boolean;
|
|
35
|
+
export declare function parseModelOnce(config: CawdexConfig, args: string): ParsedModelOnce;
|
|
36
|
+
export declare function formatModelResolution(resolution: ModelResolution): string;
|
|
37
|
+
export declare function formatTurnOverride(override: ModelTurnOverride, currentModel: string): string;
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { switchModel } from './model-router.js';
|
|
2
|
+
export const REASONING_EFFORTS = [
|
|
3
|
+
'none',
|
|
4
|
+
'minimal',
|
|
5
|
+
'low',
|
|
6
|
+
'medium',
|
|
7
|
+
'high',
|
|
8
|
+
'xhigh',
|
|
9
|
+
];
|
|
10
|
+
const RESERVED_ALIAS_NAMES = new Set([
|
|
11
|
+
'alias',
|
|
12
|
+
'aliases',
|
|
13
|
+
'unalias',
|
|
14
|
+
'rm',
|
|
15
|
+
'remove',
|
|
16
|
+
'delete',
|
|
17
|
+
'set',
|
|
18
|
+
'once',
|
|
19
|
+
'next',
|
|
20
|
+
'effort',
|
|
21
|
+
'reasoning',
|
|
22
|
+
'off',
|
|
23
|
+
'none',
|
|
24
|
+
]);
|
|
25
|
+
const BUILTIN_ALIASES = [
|
|
26
|
+
{
|
|
27
|
+
alias: 'free',
|
|
28
|
+
model: 'openrouter/free',
|
|
29
|
+
description: 'OpenRouter free router',
|
|
30
|
+
provider: /openrouter/i,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
alias: 'or-free',
|
|
34
|
+
model: 'openrouter/free',
|
|
35
|
+
description: 'OpenRouter free router',
|
|
36
|
+
provider: /openrouter/i,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
alias: 'openrouter-free',
|
|
40
|
+
model: 'openrouter/free',
|
|
41
|
+
description: 'OpenRouter free router',
|
|
42
|
+
provider: /openrouter/i,
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
function aliasKey(value) {
|
|
46
|
+
return value.trim().toLowerCase();
|
|
47
|
+
}
|
|
48
|
+
export function isValidModelAliasName(value) {
|
|
49
|
+
const key = aliasKey(value);
|
|
50
|
+
return /^[a-z][a-z0-9._-]{0,63}$/i.test(key) && !RESERVED_ALIAS_NAMES.has(key);
|
|
51
|
+
}
|
|
52
|
+
export function normalizeReasoningEffort(value) {
|
|
53
|
+
const key = String(value || '').trim().toLowerCase();
|
|
54
|
+
return REASONING_EFFORTS.includes(key) ? key : null;
|
|
55
|
+
}
|
|
56
|
+
export function tokenizeModelCommandArgs(args) {
|
|
57
|
+
const tokens = [];
|
|
58
|
+
const re = /"([^"]*)"|'([^']*)'|(\S+)/g;
|
|
59
|
+
let match;
|
|
60
|
+
while ((match = re.exec(args)) !== null) {
|
|
61
|
+
tokens.push(match[1] ?? match[2] ?? match[3]);
|
|
62
|
+
}
|
|
63
|
+
return tokens;
|
|
64
|
+
}
|
|
65
|
+
export function listModelAliases(config) {
|
|
66
|
+
const user = Object.entries(config.modelAliases || {})
|
|
67
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
68
|
+
.map(([alias, model]) => ({ alias, model, source: 'user' }));
|
|
69
|
+
const builtin = BUILTIN_ALIASES
|
|
70
|
+
.filter((entry) => !entry.provider || entry.provider.test(config.provider))
|
|
71
|
+
.filter((entry) => !(config.modelAliases || {})[entry.alias])
|
|
72
|
+
.map((entry) => ({
|
|
73
|
+
alias: entry.alias,
|
|
74
|
+
model: entry.model,
|
|
75
|
+
source: 'builtin',
|
|
76
|
+
description: entry.description,
|
|
77
|
+
}));
|
|
78
|
+
return [...user, ...builtin];
|
|
79
|
+
}
|
|
80
|
+
export function resolveModelReference(config, value, depth = 0) {
|
|
81
|
+
const raw = value.trim();
|
|
82
|
+
const key = aliasKey(raw);
|
|
83
|
+
const userAliases = config.modelAliases || {};
|
|
84
|
+
if (key && userAliases[key]) {
|
|
85
|
+
if (depth > 5) {
|
|
86
|
+
return { model: userAliases[key], source: 'user-alias', alias: raw };
|
|
87
|
+
}
|
|
88
|
+
const resolved = resolveModelReference(config, userAliases[key], depth + 1);
|
|
89
|
+
return { model: resolved.model, source: 'user-alias', alias: raw };
|
|
90
|
+
}
|
|
91
|
+
const builtin = BUILTIN_ALIASES.find((entry) => entry.alias === key && (!entry.provider || entry.provider.test(config.provider)));
|
|
92
|
+
if (builtin) {
|
|
93
|
+
return { model: builtin.model, source: 'builtin-alias', alias: raw };
|
|
94
|
+
}
|
|
95
|
+
const tier = switchModel(config, raw);
|
|
96
|
+
if (tier)
|
|
97
|
+
return { model: tier, source: 'tier', alias: raw };
|
|
98
|
+
return { model: raw, source: 'direct' };
|
|
99
|
+
}
|
|
100
|
+
export function setModelAlias(config, alias, target) {
|
|
101
|
+
const key = aliasKey(alias);
|
|
102
|
+
if (!isValidModelAliasName(key)) {
|
|
103
|
+
return {
|
|
104
|
+
ok: false,
|
|
105
|
+
error: 'Alias names must start with a letter, use only letters/numbers/._-, and cannot be reserved words like once or effort.',
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const trimmedTarget = target.trim();
|
|
109
|
+
if (!trimmedTarget)
|
|
110
|
+
return { ok: false, error: 'Alias target cannot be empty.' };
|
|
111
|
+
if (aliasKey(trimmedTarget) === key)
|
|
112
|
+
return { ok: false, error: 'Alias cannot point to itself.' };
|
|
113
|
+
const resolved = resolveModelReference(config, trimmedTarget);
|
|
114
|
+
config.modelAliases = { ...(config.modelAliases || {}), [key]: resolved.model };
|
|
115
|
+
return { ok: true, model: resolved.model };
|
|
116
|
+
}
|
|
117
|
+
export function deleteModelAlias(config, alias) {
|
|
118
|
+
const key = aliasKey(alias);
|
|
119
|
+
if (!config.modelAliases?.[key])
|
|
120
|
+
return false;
|
|
121
|
+
const next = { ...config.modelAliases };
|
|
122
|
+
delete next[key];
|
|
123
|
+
config.modelAliases = Object.keys(next).length > 0 ? next : undefined;
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
function extractEffort(tokens) {
|
|
127
|
+
const rest = [];
|
|
128
|
+
let effort;
|
|
129
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
130
|
+
const token = tokens[i];
|
|
131
|
+
const lower = token.toLowerCase();
|
|
132
|
+
let raw;
|
|
133
|
+
if (lower === '--effort' || lower === '--reasoning' || lower === 'effort' || lower === 'reasoning') {
|
|
134
|
+
raw = tokens[++i];
|
|
135
|
+
}
|
|
136
|
+
else if (lower.startsWith('--effort=')) {
|
|
137
|
+
raw = token.slice('--effort='.length);
|
|
138
|
+
}
|
|
139
|
+
else if (lower.startsWith('effort=')) {
|
|
140
|
+
raw = token.slice('effort='.length);
|
|
141
|
+
}
|
|
142
|
+
else if (lower.startsWith('--reasoning=')) {
|
|
143
|
+
raw = token.slice('--reasoning='.length);
|
|
144
|
+
}
|
|
145
|
+
else if (lower.startsWith('reasoning=')) {
|
|
146
|
+
raw = token.slice('reasoning='.length);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
rest.push(token);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
const normalized = normalizeReasoningEffort(raw);
|
|
153
|
+
if (!normalized) {
|
|
154
|
+
return {
|
|
155
|
+
tokens,
|
|
156
|
+
error: `Invalid reasoning effort "${raw || ''}". Use: ${REASONING_EFFORTS.join(', ')}.`,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
effort = normalized;
|
|
160
|
+
}
|
|
161
|
+
return { tokens: rest, effort };
|
|
162
|
+
}
|
|
163
|
+
export function parseModelOnce(config, args) {
|
|
164
|
+
const tokens = tokenizeModelCommandArgs(args);
|
|
165
|
+
const { tokens: positional, effort, error } = extractEffort(tokens);
|
|
166
|
+
if (error)
|
|
167
|
+
return { error };
|
|
168
|
+
const modelRef = positional.join(' ').trim();
|
|
169
|
+
if (!modelRef && !effort) {
|
|
170
|
+
return {
|
|
171
|
+
error: 'Usage: /model once <model-or-alias> [--effort low|medium|high] or /model effort <level>',
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const override = {
|
|
175
|
+
source: 'manual',
|
|
176
|
+
};
|
|
177
|
+
if (modelRef) {
|
|
178
|
+
override.model = resolveModelReference(config, modelRef).model;
|
|
179
|
+
}
|
|
180
|
+
if (effort)
|
|
181
|
+
override.reasoningEffort = effort;
|
|
182
|
+
return { override };
|
|
183
|
+
}
|
|
184
|
+
export function formatModelResolution(resolution) {
|
|
185
|
+
if (resolution.source === 'user-alias')
|
|
186
|
+
return `${resolution.model} (alias: ${resolution.alias})`;
|
|
187
|
+
if (resolution.source === 'builtin-alias')
|
|
188
|
+
return `${resolution.model} (built-in alias: ${resolution.alias})`;
|
|
189
|
+
if (resolution.source === 'tier')
|
|
190
|
+
return `${resolution.model} (${resolution.alias})`;
|
|
191
|
+
return `${resolution.model} (custom)`;
|
|
192
|
+
}
|
|
193
|
+
export function formatTurnOverride(override, currentModel) {
|
|
194
|
+
const parts = [];
|
|
195
|
+
if (override.model && override.model !== currentModel)
|
|
196
|
+
parts.push(`model ${override.model}`);
|
|
197
|
+
if (override.reasoningEffort)
|
|
198
|
+
parts.push(`effort ${override.reasoningEffort}`);
|
|
199
|
+
if (parts.length === 0 && override.model)
|
|
200
|
+
parts.push(`model ${override.model}`);
|
|
201
|
+
return parts.join(', ') || 'no-op';
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=model-aliases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-aliases.js","sourceRoot":"","sources":["../src/model-aliases.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAmBhD,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,MAAM;IACN,SAAS;IACT,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;CACR,CAAC;AAEF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,OAAO;IACP,SAAS;IACT,SAAS;IACT,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,WAAW;IACX,KAAK;IACL,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,eAAe,GAKhB;IACH;QACE,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,aAAa;KACxB;IACD;QACE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,aAAa;KACxB;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,aAAa;KACxB;CACF,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAyB;IAChE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrD,OAAQ,iBAAuC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,4BAA4B,CAAC;IACxC,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IAMnD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;SACnD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG,eAAe;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC1E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,SAAkB;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC,CAAC;IAEN,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAoB,EACpB,KAAa,EACb,KAAK,GAAG,CAAC;IAET,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IAC9C,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACvE,CAAC;QACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5E,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7C,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CACjF,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAC7D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAoB,EAAE,KAAa,EAAE,MAAc;IAC/E,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,uHAAuH;SAC/H,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;IACjF,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;IAElG,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC9D,MAAM,CAAC,YAAY,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAChF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,KAAa;IAClE,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,MAAmC,CAAC;IACxC,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,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,GAAuB,CAAC;QAC5B,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YACnG,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,MAAM;gBACN,KAAK,EAAE,6BAA6B,GAAG,IAAI,EAAE,WAAW,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACxF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAoB,EAAE,IAAY;IAC/D,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE5B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,yFAAyF;SACjG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAsB;QAClC,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IACD,IAAI,MAAM;QAAE,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC;IAC9C,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAA2B;IAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,GAAG,UAAU,CAAC,KAAK,YAAY,UAAU,CAAC,KAAK,GAAG,CAAC;IAClG,IAAI,UAAU,CAAC,MAAM,KAAK,eAAe;QAAE,OAAO,GAAG,UAAU,CAAC,KAAK,qBAAqB,UAAU,CAAC,KAAK,GAAG,CAAC;IAC9G,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,GAAG,CAAC;IACrF,OAAO,GAAG,UAAU,CAAC,KAAK,WAAW,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAA2B,EAAE,YAAoB;IAClF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7F,IAAI,QAAQ,CAAC,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;AACrC,CAAC"}
|
package/dist/orchestration.js
CHANGED
|
@@ -96,21 +96,21 @@ export async function runCascade(task, config, contextMessages, fastModel, power
|
|
|
96
96
|
* Build an orchestration prompt for the AI to decompose a task.
|
|
97
97
|
*/
|
|
98
98
|
export function buildOrchestrationPrompt(task) {
|
|
99
|
-
return `Decompose this task into 2-4 parallel sub-tasks that can be executed independently:
|
|
100
|
-
|
|
101
|
-
Task: ${task}
|
|
102
|
-
|
|
103
|
-
For each sub-task, specify:
|
|
104
|
-
1. A short name (e.g., "frontend-changes")
|
|
105
|
-
2. The specific task description
|
|
106
|
-
3. Whether it needs a "fast" model (simple/lookup) or "powerful" model (complex/creative)
|
|
107
|
-
|
|
108
|
-
Format as JSON array:
|
|
109
|
-
[
|
|
110
|
-
{"name": "sub-task-name", "task": "description", "tier": "fast|powerful"},
|
|
111
|
-
...
|
|
112
|
-
]
|
|
113
|
-
|
|
99
|
+
return `Decompose this task into 2-4 parallel sub-tasks that can be executed independently:
|
|
100
|
+
|
|
101
|
+
Task: ${task}
|
|
102
|
+
|
|
103
|
+
For each sub-task, specify:
|
|
104
|
+
1. A short name (e.g., "frontend-changes")
|
|
105
|
+
2. The specific task description
|
|
106
|
+
3. Whether it needs a "fast" model (simple/lookup) or "powerful" model (complex/creative)
|
|
107
|
+
|
|
108
|
+
Format as JSON array:
|
|
109
|
+
[
|
|
110
|
+
{"name": "sub-task-name", "task": "description", "tier": "fast|powerful"},
|
|
111
|
+
...
|
|
112
|
+
]
|
|
113
|
+
|
|
114
114
|
Only output the JSON, no explanation.`;
|
|
115
115
|
}
|
|
116
116
|
export function mergeResults(agents) {
|
package/dist/permissions.d.ts
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
import * as readline from 'node:readline/promises';
|
|
13
13
|
import type { Tool } from './tools/types.js';
|
|
14
14
|
import type { CawdexConfig } from './types.js';
|
|
15
|
+
export interface PermissionExplanation {
|
|
16
|
+
decision: 'allow' | 'prompt' | 'deny';
|
|
17
|
+
reason: string;
|
|
18
|
+
lines: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function explainPermission(tool: Pick<Tool, 'name' | 'isReadOnly' | 'isDestructive'>, input: Record<string, unknown>, config: CawdexConfig): PermissionExplanation;
|
|
15
21
|
/**
|
|
16
22
|
* Check if a tool call is allowed under the current permission mode.
|
|
17
23
|
* Returns true if allowed, false if denied.
|
package/dist/permissions.js
CHANGED
|
@@ -1,6 +1,59 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { saveConfig } from './config.js';
|
|
3
3
|
import { evaluateCommand } from './execpolicy.js';
|
|
4
|
+
export function explainPermission(tool, input, config) {
|
|
5
|
+
const lines = [
|
|
6
|
+
`tool: ${tool.name}`,
|
|
7
|
+
`permission mode: ${config.permissionMode}`,
|
|
8
|
+
];
|
|
9
|
+
if (tool.name === 'bash') {
|
|
10
|
+
const command = String(input.command || '').trim();
|
|
11
|
+
const policy = evaluateCommand(command);
|
|
12
|
+
lines.push(`execpolicy: ${policy.decision}${policy.ruleId ? ` (${policy.ruleId})` : ''}`);
|
|
13
|
+
if (policy.reason)
|
|
14
|
+
lines.push(`execpolicy reason: ${policy.reason}`);
|
|
15
|
+
if (policy.decision === 'forbidden') {
|
|
16
|
+
lines.push('result: blocked before the normal permission prompt');
|
|
17
|
+
return {
|
|
18
|
+
decision: 'deny',
|
|
19
|
+
reason: policy.reason || 'blocked by execpolicy',
|
|
20
|
+
lines,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (policy.decision === 'allow') {
|
|
24
|
+
lines.push('result: allowed by execpolicy before mode checks');
|
|
25
|
+
return {
|
|
26
|
+
decision: 'allow',
|
|
27
|
+
reason: `execpolicy${policy.ruleId ? ` ${policy.ruleId}` : ''}`,
|
|
28
|
+
lines,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (config.permissionMode === 'yolo') {
|
|
33
|
+
lines.push('result: allowed because yolo permits all non-forbidden tools');
|
|
34
|
+
return { decision: 'allow', reason: 'permission mode yolo', lines };
|
|
35
|
+
}
|
|
36
|
+
if (tool.isReadOnly) {
|
|
37
|
+
lines.push('result: allowed because read-only tools do not prompt');
|
|
38
|
+
return { decision: 'allow', reason: 'read-only tool', lines };
|
|
39
|
+
}
|
|
40
|
+
if (config.alwaysAllowedTools?.includes(tool.name)) {
|
|
41
|
+
lines.push('result: allowed by the per-tool always-allow list');
|
|
42
|
+
return { decision: 'allow', reason: 'always-allow list', lines };
|
|
43
|
+
}
|
|
44
|
+
if (config.permissionMode === 'auto' && !tool.isDestructive) {
|
|
45
|
+
lines.push('result: allowed because auto permits non-destructive tools');
|
|
46
|
+
return { decision: 'allow', reason: 'auto mode non-destructive tool', lines };
|
|
47
|
+
}
|
|
48
|
+
lines.push('result: prompt required before execution');
|
|
49
|
+
return {
|
|
50
|
+
decision: 'prompt',
|
|
51
|
+
reason: config.permissionMode === 'auto'
|
|
52
|
+
? 'destructive tool in auto mode'
|
|
53
|
+
: 'ask mode requires confirmation',
|
|
54
|
+
lines,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
4
57
|
/**
|
|
5
58
|
* Check if a tool call is allowed under the current permission mode.
|
|
6
59
|
* Returns true if allowed, false if denied.
|
package/dist/permissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
|
package/dist/pm2-manager.js
CHANGED
|
@@ -63,32 +63,32 @@ export function listPM2Services(cwd) {
|
|
|
63
63
|
* @returns A prompt with guidance on creating ecosystem.config.js
|
|
64
64
|
*/
|
|
65
65
|
export function buildEcosystemPrompt(cwd) {
|
|
66
|
-
return `To manage multiple services with PM2, create an ecosystem.config.js file in ${cwd}.
|
|
67
|
-
|
|
68
|
-
Example structure:
|
|
69
|
-
module.exports = {
|
|
70
|
-
apps: [
|
|
71
|
-
{
|
|
72
|
-
name: 'api-server',
|
|
73
|
-
script: './dist/server.js',
|
|
74
|
-
instances: 2,
|
|
75
|
-
exec_mode: 'cluster',
|
|
76
|
-
max_memory_restart: '500M',
|
|
77
|
-
env: {
|
|
78
|
-
NODE_ENV: 'production'
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
name: 'worker',
|
|
83
|
-
script: './dist/worker.js',
|
|
84
|
-
instances: 1,
|
|
85
|
-
max_memory_restart: '300M'
|
|
86
|
-
}
|
|
87
|
-
]
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
Then start all services with: pm2 start ecosystem.config.js
|
|
91
|
-
Monitor logs with: pm2 logs
|
|
66
|
+
return `To manage multiple services with PM2, create an ecosystem.config.js file in ${cwd}.
|
|
67
|
+
|
|
68
|
+
Example structure:
|
|
69
|
+
module.exports = {
|
|
70
|
+
apps: [
|
|
71
|
+
{
|
|
72
|
+
name: 'api-server',
|
|
73
|
+
script: './dist/server.js',
|
|
74
|
+
instances: 2,
|
|
75
|
+
exec_mode: 'cluster',
|
|
76
|
+
max_memory_restart: '500M',
|
|
77
|
+
env: {
|
|
78
|
+
NODE_ENV: 'production'
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'worker',
|
|
83
|
+
script: './dist/worker.js',
|
|
84
|
+
instances: 1,
|
|
85
|
+
max_memory_restart: '300M'
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
Then start all services with: pm2 start ecosystem.config.js
|
|
91
|
+
Monitor logs with: pm2 logs
|
|
92
92
|
View status with: pm2 status`;
|
|
93
93
|
}
|
|
94
94
|
/**
|
package/dist/query.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import type { Mode } from './modes.js';
|
|
|
4
4
|
export declare function resolveFirstTokenTimeoutMs(config: Pick<CawdexConfig, 'model' | 'provider'>): number;
|
|
5
5
|
export declare function resolveStreamIdleTimeoutMs(fastDirect?: boolean): number;
|
|
6
6
|
export declare function isKnownFlakyOpenRouterModel(config: Pick<CawdexConfig, 'model' | 'provider'>): boolean;
|
|
7
|
-
export declare function fallbackModelForKnownFlakyTurn(config: CawdexConfig, usedFallbackModel?: boolean): string | null;
|
|
8
7
|
export declare function isTurnCancelKeySequence(chunk: Buffer): boolean;
|
|
9
8
|
export declare function shouldUseFastDirectReply(userQuery: string | undefined, mode: Mode, env?: NodeJS.ProcessEnv): boolean;
|
|
10
9
|
export interface WorkingIndicator {
|