@cursor/july 0.1.2 → 0.1.4
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/AGENTS.md +16 -5
- package/README.md +8 -9
- package/dist/bin/agent-serve.d.ts +3 -1
- package/dist/bin/agent-serve.d.ts.map +1 -1
- package/dist/bin/agent-serve.js +416 -155
- package/dist/channels/slack/log.d.ts +1 -1
- package/dist/channels/slack/log.d.ts.map +1 -1
- package/dist/channels/slack/log.js +4 -5
- package/dist/channels/slack/setup.js +1 -1
- package/dist/channels/slack/socket-mode.d.ts.map +1 -1
- package/dist/channels/slack/socket-mode.js +10 -9
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +3 -3
- package/dist/docs/assets/{app.Oje4vhlk.js → app.DF-Yx4OP.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.0XrheBv2.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.H5XZ2zCB.js → VPLocalSearchBox.DSeJSudL.js} +1 -1
- package/dist/docs/assets/chunks/{theme.CTR_TuaE.js → theme.DZVLTXOC.js} +2 -2
- package/dist/docs/assets/{index.md.m81y7TY7.js → index.md.Cylk70gg.js} +1 -1
- package/dist/docs/assets/{quickstart.md.CfU8_uTC.js → quickstart.md.BU6Iwi_9.js} +18 -6
- package/dist/docs/assets/{reference_cli.md.DA730zCu.js → reference_cli.md.Bv6pOxcF.js} +11 -6
- package/dist/docs/assets/{reference_cli.md.DA730zCu.lean.js → reference_cli.md.Bv6pOxcF.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +3 -3
- package/dist/docs/concepts.html +3 -3
- package/dist/docs/deployment.html +3 -3
- package/dist/docs/evals.html +3 -3
- package/dist/docs/guides/agent-to-agent.html +3 -3
- package/dist/docs/guides/cloud-runtime.html +3 -3
- package/dist/docs/guides/github.html +3 -3
- package/dist/docs/guides/human-in-the-loop.html +3 -3
- package/dist/docs/guides/slack.html +3 -3
- package/dist/docs/guides/webhooks.html +3 -3
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +3 -3
- package/dist/docs/index.html +5 -5
- package/dist/docs/quickstart.html +22 -10
- package/dist/docs/reference/agent-config.html +3 -3
- package/dist/docs/reference/channels.html +3 -3
- package/dist/docs/reference/cli.html +14 -9
- package/dist/docs/reference/connections.html +3 -3
- package/dist/docs/reference/hooks.html +3 -3
- package/dist/docs/reference/http-api.html +3 -3
- package/dist/docs/reference/instructions.html +3 -3
- package/dist/docs/reference/playground.html +3 -3
- package/dist/docs/reference/project-layout.html +3 -3
- package/dist/docs/reference/schedules.html +3 -3
- package/dist/docs/reference/sessions.html +3 -3
- package/dist/docs/reference/skills.html +3 -3
- package/dist/docs/reference/subagents.html +3 -3
- package/dist/docs/reference/tools.html +3 -3
- package/dist/docs/scaffolding-agents.html +3 -3
- package/dist/docs/storage.html +3 -3
- package/dist/docs/troubleshooting.html +3 -3
- package/dist/internal/ab-collector.js +3 -3
- package/dist/internal/ab-fold.js +1 -1
- package/dist/internal/chat-client.d.ts +29 -3
- package/dist/internal/chat-client.d.ts.map +1 -1
- package/dist/internal/chat-client.js +180 -27
- package/dist/internal/cli-ax.d.ts +83 -2
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +626 -52
- package/dist/internal/cli-cursor.d.ts.map +1 -1
- package/dist/internal/cli-cursor.js +8 -36
- package/dist/internal/cli-deploy.d.ts +59 -3
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +316 -38
- package/dist/internal/cli-github.js +13 -13
- package/dist/internal/cursor/account-mcp.js +3 -3
- package/dist/internal/cursor/backend-client.js +1 -1
- package/dist/internal/cursor/credentials.d.ts +14 -3
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +21 -6
- package/dist/internal/cursor/github-credentials.js +3 -3
- package/dist/internal/cursor-event-relay.js +1 -1
- package/dist/internal/cursor-relay-core.d.ts +1 -1
- package/dist/internal/cursor-relay-core.d.ts.map +1 -1
- package/dist/internal/cursor-relay-core.js +2 -1
- package/dist/internal/cursor-slack-relay.js +1 -1
- package/dist/internal/deploy-client.d.ts +9 -1
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +23 -3
- package/dist/internal/deploy-source.d.ts +35 -0
- package/dist/internal/deploy-source.d.ts.map +1 -0
- package/dist/internal/deploy-source.js +118 -0
- package/dist/internal/discovery.d.ts +11 -0
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +43 -14
- package/dist/internal/distribution.d.ts +7 -0
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +7 -0
- package/dist/internal/docs-site.js +3 -3
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-run-store.js +10 -9
- package/dist/internal/eval-runner.d.ts +2 -0
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +2 -0
- package/dist/internal/event-mapper.d.ts +54 -1
- package/dist/internal/event-mapper.d.ts.map +1 -1
- package/dist/internal/event-mapper.js +151 -41
- package/dist/internal/github-fanout.js +2 -2
- package/dist/internal/host-platforms.js +5 -5
- package/dist/internal/init-project.d.ts +88 -1
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +221 -31
- package/dist/internal/install-cursor-skills.d.ts +64 -0
- package/dist/internal/install-cursor-skills.d.ts.map +1 -0
- package/dist/internal/install-cursor-skills.js +274 -0
- package/dist/internal/logs-client.d.ts +60 -0
- package/dist/internal/logs-client.d.ts.map +1 -0
- package/dist/internal/logs-client.js +311 -0
- package/dist/internal/mcp-endpoint.d.ts.map +1 -1
- package/dist/internal/mcp-endpoint.js +1 -1
- package/dist/internal/open-browser.d.ts +5 -0
- package/dist/internal/open-browser.d.ts.map +1 -0
- package/dist/internal/open-browser.js +34 -0
- package/dist/internal/playground/toolchain.d.ts.map +1 -1
- package/dist/internal/playground/toolchain.js +19 -14
- package/dist/internal/playground-proxy.d.ts +69 -0
- package/dist/internal/playground-proxy.d.ts.map +1 -0
- package/dist/internal/playground-proxy.js +468 -0
- package/dist/internal/prompt-context.d.ts +35 -0
- package/dist/internal/prompt-context.d.ts.map +1 -0
- package/dist/internal/prompt-context.js +71 -0
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +11 -11
- package/dist/internal/request-headers.d.ts +11 -0
- package/dist/internal/request-headers.d.ts.map +1 -0
- package/dist/internal/request-headers.js +14 -0
- package/dist/internal/resolve-prod-target.d.ts +44 -0
- package/dist/internal/resolve-prod-target.d.ts.map +1 -0
- package/dist/internal/resolve-prod-target.js +134 -0
- package/dist/internal/resolved-connections.js +5 -5
- package/dist/internal/run-client.d.ts +2 -2
- package/dist/internal/run-client.d.ts.map +1 -1
- package/dist/internal/run-client.js +38 -23
- package/dist/internal/schedule-runner.js +1 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +23 -17
- package/dist/internal/session-engine.d.ts +1 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +34 -19
- package/dist/internal/sessions-client.d.ts +34 -0
- package/dist/internal/sessions-client.d.ts.map +1 -0
- package/dist/internal/sessions-client.js +193 -0
- package/dist/internal/storage-coordinator.js +6 -6
- package/dist/internal/stream-progress.d.ts.map +1 -1
- package/dist/internal/stream-progress.js +31 -3
- package/dist/internal/terminal-style.d.ts +22 -0
- package/dist/internal/terminal-style.d.ts.map +1 -0
- package/dist/internal/terminal-style.js +49 -0
- package/dist/internal/trajectory.d.ts +10 -5
- package/dist/internal/trajectory.d.ts.map +1 -1
- package/dist/internal/trajectory.js +82 -10
- package/dist/internal/update-check.d.ts +93 -0
- package/dist/internal/update-check.d.ts.map +1 -0
- package/dist/internal/update-check.js +431 -0
- package/dist/internal/workspace.d.ts +11 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +38 -4
- package/dist/playground/assets/index-Ct_Usdm8.css +1 -0
- package/dist/playground/assets/index-Dsyb-Vaj.js +319 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +29 -2
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +0 -1
- package/docs/quickstart.md +22 -7
- package/docs/reference/cli.md +51 -3
- package/package.json +4 -1
- package/skills/ab/SKILL.md +8 -8
- package/skills/create-agent/SKILL.md +28 -22
- package/skills/debug/SKILL.md +11 -11
- package/skills/evals/SKILL.md +16 -16
- package/skills/framework-map/SKILL.md +6 -6
- package/skills/github/SKILL.md +13 -13
- package/skills/hillclimb/SKILL.md +10 -10
- package/skills/setup-slack/SKILL.md +14 -14
- package/src/bin/agent-serve.ts +451 -191
- package/src/channels/slack/log.ts +5 -5
- package/src/channels/slack/setup.ts +1 -1
- package/src/channels/slack/socket-mode.ts +11 -9
- package/src/internal/ab-collector.ts +3 -3
- package/src/internal/ab-fold.ts +1 -1
- package/src/internal/chat-client.ts +252 -37
- package/src/internal/cli-ax.ts +761 -72
- package/src/internal/cli-cursor.ts +14 -42
- package/src/internal/cli-deploy.ts +428 -49
- package/src/internal/cli-github.ts +13 -15
- package/src/internal/cursor/account-mcp.ts +3 -3
- package/src/internal/cursor/backend-client.ts +1 -1
- package/src/internal/cursor/credentials.ts +26 -7
- package/src/internal/cursor/github-credentials.ts +3 -3
- package/src/internal/cursor-event-relay.ts +1 -1
- package/src/internal/cursor-relay-core.ts +4 -2
- package/src/internal/cursor-slack-relay.ts +1 -1
- package/src/internal/deploy-client.ts +45 -4
- package/src/internal/deploy-source.ts +133 -0
- package/src/internal/discovery.ts +53 -16
- package/src/internal/distribution.ts +8 -0
- package/src/internal/docs-site.ts +3 -3
- package/src/internal/eval-run-store.ts +10 -11
- package/src/internal/eval-runner.ts +5 -0
- package/src/internal/event-mapper.ts +222 -42
- package/src/internal/github-fanout.ts +2 -2
- package/src/internal/host-platforms.ts +5 -5
- package/src/internal/init-project.ts +333 -51
- package/src/internal/install-cursor-skills.ts +327 -0
- package/src/internal/logs-client.ts +442 -0
- package/src/internal/mcp-endpoint.ts +1 -3
- package/src/internal/open-browser.ts +41 -0
- package/src/internal/playground/toolchain.ts +18 -16
- package/src/internal/playground-proxy.ts +576 -0
- package/src/internal/prompt-context.ts +95 -0
- package/src/internal/reminder-runner.ts +11 -17
- package/src/internal/request-headers.ts +23 -0
- package/src/internal/resolve-prod-target.ts +182 -0
- package/src/internal/resolved-connections.ts +5 -5
- package/src/internal/run-client.ts +39 -36
- package/src/internal/schedule-runner.ts +1 -1
- package/src/internal/server.ts +25 -16
- package/src/internal/session-engine.ts +35 -18
- package/src/internal/sessions-client.ts +216 -0
- package/src/internal/storage-coordinator.ts +6 -6
- package/src/internal/stream-progress.ts +36 -2
- package/src/internal/terminal-style.ts +74 -0
- package/src/internal/trajectory.ts +91 -13
- package/src/internal/update-check.ts +552 -0
- package/src/internal/workspace.ts +42 -4
- package/src/types.ts +45 -7
- package/dist/docs/assets/chunks/@localSearchIndexroot.zwQ9RCQ7.js +0 -1
- package/dist/playground/assets/index-B1Qc9h2u.css +0 -1
- package/dist/playground/assets/index-CpDYCj8W.js +0 -79
- /package/dist/docs/assets/{index.md.m81y7TY7.lean.js → index.md.Cylk70gg.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.CfU8_uTC.lean.js → quickstart.md.BU6Iwi_9.lean.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-progress.d.ts","sourceRoot":"","sources":["../../src/internal/stream-progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAC7C,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"stream-progress.d.ts","sourceRoot":"","sources":["../../src/internal/stream-progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAC7C,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,cAAc,CAqNjB"}
|
|
@@ -21,7 +21,7 @@ export function createStreamProgress(options) {
|
|
|
21
21
|
const elapsed = (since) => `${Date.now() - since}ms`;
|
|
22
22
|
return {
|
|
23
23
|
onEvent(event) {
|
|
24
|
-
var _a, _b;
|
|
24
|
+
var _a, _b, _c;
|
|
25
25
|
switch (event.type) {
|
|
26
26
|
case "session.started": {
|
|
27
27
|
write(c.dim(`session ${event.sessionId}\n`));
|
|
@@ -49,6 +49,9 @@ export function createStreamProgress(options) {
|
|
|
49
49
|
break;
|
|
50
50
|
}
|
|
51
51
|
case "reasoning.appended": {
|
|
52
|
+
if (event.data.parentCallId !== undefined) {
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
52
55
|
if (!thinkingShown) {
|
|
53
56
|
thinkingShown = true;
|
|
54
57
|
write(c.dim(" · thinking…\n"));
|
|
@@ -56,6 +59,11 @@ export function createStreamProgress(options) {
|
|
|
56
59
|
break;
|
|
57
60
|
}
|
|
58
61
|
case "message.appended": {
|
|
62
|
+
// Nested subagent deltas stay inside the task chip/indent, not
|
|
63
|
+
// the parent agent stream.
|
|
64
|
+
if (event.data.parentCallId !== undefined) {
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
59
67
|
if (!assistantOpen) {
|
|
60
68
|
write(`${c.green("‹ agent")} `);
|
|
61
69
|
assistantOpen = true;
|
|
@@ -64,6 +72,9 @@ export function createStreamProgress(options) {
|
|
|
64
72
|
break;
|
|
65
73
|
}
|
|
66
74
|
case "message.completed": {
|
|
75
|
+
if (event.data.parentCallId !== undefined) {
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
67
78
|
closeAssistant();
|
|
68
79
|
break;
|
|
69
80
|
}
|
|
@@ -79,8 +90,16 @@ export function createStreamProgress(options) {
|
|
|
79
90
|
closeAssistant();
|
|
80
91
|
const now = Date.now();
|
|
81
92
|
for (const call of event.data.calls) {
|
|
93
|
+
if (call.toolName === "task" && call.parentCallId === undefined) {
|
|
94
|
+
// Covered by subagent.called; avoid a duplicate bare `task` line.
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
82
97
|
toolStartedAt.set(call.callId, now);
|
|
83
|
-
|
|
98
|
+
const indent = call.parentCallId !== undefined ||
|
|
99
|
+
event.data.parentCallId !== undefined
|
|
100
|
+
? " "
|
|
101
|
+
: " ";
|
|
102
|
+
write(`${indent}${c.magenta("⚙")} ${c.bold(call.toolName)}${c.dim(formatArgs(call.args))}\n`);
|
|
84
103
|
}
|
|
85
104
|
break;
|
|
86
105
|
}
|
|
@@ -95,11 +114,16 @@ export function createStreamProgress(options) {
|
|
|
95
114
|
break;
|
|
96
115
|
}
|
|
97
116
|
case "action.result": {
|
|
117
|
+
if (event.data.toolName === "task" &&
|
|
118
|
+
event.data.parentCallId === undefined) {
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
98
121
|
const started = toolStartedAt.get(event.data.callId);
|
|
99
122
|
toolStartedAt.delete(event.data.callId);
|
|
100
123
|
const dur = started === undefined ? "" : c.dim(` ${elapsed(started)}`);
|
|
101
124
|
const mark = event.data.isError ? c.red("✗") : c.magenta("✓");
|
|
102
|
-
|
|
125
|
+
const indent = event.data.parentCallId !== undefined ? " " : " ";
|
|
126
|
+
write(`${indent}${mark} ${c.bold(event.data.toolName)}${dur} ${c.dim(truncate(stringify(event.data.output), 90))}\n`);
|
|
103
127
|
break;
|
|
104
128
|
}
|
|
105
129
|
case "subagent.called": {
|
|
@@ -110,6 +134,10 @@ export function createStreamProgress(options) {
|
|
|
110
134
|
write(` ${c.magenta("task")} ${c.bold((_b = event.data.name) !== null && _b !== void 0 ? _b : "subagent")}${c.dim(detail)}\n`);
|
|
111
135
|
break;
|
|
112
136
|
}
|
|
137
|
+
case "subagent.completed": {
|
|
138
|
+
write(` ${c.magenta("✓")} ${c.bold((_c = event.data.name) !== null && _c !== void 0 ? _c : "subagent")} ${c.dim("done")}\n`);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
113
141
|
case "turn.completed": {
|
|
114
142
|
closeAssistant();
|
|
115
143
|
const usage = event.data.usage;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiny ANSI helpers for CLI progress output. Respects `NO_COLOR` and
|
|
3
|
+
* only enables when the target stream is a TTY.
|
|
4
|
+
*/
|
|
5
|
+
export interface TerminalPalette {
|
|
6
|
+
dim: (s: string) => string;
|
|
7
|
+
bold: (s: string) => string;
|
|
8
|
+
cyan: (s: string) => string;
|
|
9
|
+
green: (s: string) => string;
|
|
10
|
+
red: (s: string) => string;
|
|
11
|
+
magenta: (s: string) => string;
|
|
12
|
+
yellow: (s: string) => string;
|
|
13
|
+
}
|
|
14
|
+
export declare function colorEnabledFor(stream?: NodeJS.WriteStream): boolean;
|
|
15
|
+
export declare function makePalette(enabled: boolean): TerminalPalette;
|
|
16
|
+
/** Palette for human-facing stdout (init summaries, next steps). */
|
|
17
|
+
export declare function stdoutPalette(): TerminalPalette;
|
|
18
|
+
/** Palette for human-facing stderr (login progress, warnings). */
|
|
19
|
+
export declare function stderrPalette(): TerminalPalette;
|
|
20
|
+
/** Wipe the terminal before a `dev` Enter-to-restart cycle. */
|
|
21
|
+
export declare function clearTerminal(stream?: NodeJS.WriteStream): void;
|
|
22
|
+
//# sourceMappingURL=terminal-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-style.d.ts","sourceRoot":"","sources":["../../src/internal/terminal-style.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/B;AAcD,wBAAgB,eAAe,CAC7B,MAAM,GAAE,MAAM,CAAC,WAA4B,GAC1C,OAAO,CAET;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,CAiB7D;AAED,oEAAoE;AACpE,wBAAgB,aAAa,IAAI,eAAe,CAE/C;AAED,kEAAkE;AAClE,wBAAgB,aAAa,IAAI,eAAe,CAE/C;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAC3B,MAAM,GAAE,MAAM,CAAC,WAA4B,GAC1C,IAAI,CAMN"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiny ANSI helpers for CLI progress output. Respects `NO_COLOR` and
|
|
3
|
+
* only enables when the target stream is a TTY.
|
|
4
|
+
*/
|
|
5
|
+
import { clearScreenDown, cursorTo } from "node:readline";
|
|
6
|
+
const IDENTITY = (s) => s;
|
|
7
|
+
const PLAIN = {
|
|
8
|
+
dim: IDENTITY,
|
|
9
|
+
bold: IDENTITY,
|
|
10
|
+
cyan: IDENTITY,
|
|
11
|
+
green: IDENTITY,
|
|
12
|
+
red: IDENTITY,
|
|
13
|
+
magenta: IDENTITY,
|
|
14
|
+
yellow: IDENTITY,
|
|
15
|
+
};
|
|
16
|
+
export function colorEnabledFor(stream = process.stdout) {
|
|
17
|
+
return stream.isTTY === true && process.env.NO_COLOR === undefined;
|
|
18
|
+
}
|
|
19
|
+
export function makePalette(enabled) {
|
|
20
|
+
if (!enabled) {
|
|
21
|
+
return PLAIN;
|
|
22
|
+
}
|
|
23
|
+
const wrap = (code) => (s) => `\u001b[${code}m${s}\u001b[0m`;
|
|
24
|
+
return {
|
|
25
|
+
dim: wrap("2"),
|
|
26
|
+
bold: wrap("1"),
|
|
27
|
+
cyan: wrap("36"),
|
|
28
|
+
green: wrap("32"),
|
|
29
|
+
red: wrap("31"),
|
|
30
|
+
magenta: wrap("35"),
|
|
31
|
+
yellow: wrap("33"),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Palette for human-facing stdout (init summaries, next steps). */
|
|
35
|
+
export function stdoutPalette() {
|
|
36
|
+
return makePalette(colorEnabledFor(process.stdout));
|
|
37
|
+
}
|
|
38
|
+
/** Palette for human-facing stderr (login progress, warnings). */
|
|
39
|
+
export function stderrPalette() {
|
|
40
|
+
return makePalette(colorEnabledFor(process.stderr));
|
|
41
|
+
}
|
|
42
|
+
/** Wipe the terminal before a `dev` Enter-to-restart cycle. */
|
|
43
|
+
export function clearTerminal(stream = process.stdout) {
|
|
44
|
+
if (stream.isTTY !== true) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
cursorTo(stream, 0, 0);
|
|
48
|
+
clearScreenDown(stream);
|
|
49
|
+
}
|
|
@@ -14,6 +14,15 @@ export interface TrajectoryToolCall {
|
|
|
14
14
|
isError: boolean;
|
|
15
15
|
/** Present when the tool required human approval before execute. */
|
|
16
16
|
approvalDecision?: "approve" | "deny";
|
|
17
|
+
/** Parent task/subagent call id when this tool ran inside a subagent. */
|
|
18
|
+
parentCallId?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface TrajectorySubagent {
|
|
21
|
+
callId: string;
|
|
22
|
+
name?: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
/** Nested tool calls streamed while this subagent was running. */
|
|
25
|
+
toolCalls: TrajectoryToolCall[];
|
|
17
26
|
}
|
|
18
27
|
export interface TrajectoryTurn {
|
|
19
28
|
turnId: string;
|
|
@@ -21,11 +30,7 @@ export interface TrajectoryTurn {
|
|
|
21
30
|
assistantText: string;
|
|
22
31
|
reasoningText?: string;
|
|
23
32
|
toolCalls: TrajectoryToolCall[];
|
|
24
|
-
subagents:
|
|
25
|
-
callId: string;
|
|
26
|
-
name?: string;
|
|
27
|
-
description?: string;
|
|
28
|
-
}>;
|
|
33
|
+
subagents: TrajectorySubagent[];
|
|
29
34
|
usage?: TurnUsage;
|
|
30
35
|
result?: string;
|
|
31
36
|
failed: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trajectory.d.ts","sourceRoot":"","sources":["../../src/internal/trajectory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"trajectory.d.ts","sourceRoot":"","sources":["../../src/internal/trajectory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACtC,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CA4NlE;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAc9D;AAED,sDAAsD;AACtD,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAuDnE"}
|
|
@@ -20,7 +20,7 @@ import { readFile } from "node:fs/promises";
|
|
|
20
20
|
* folded into final assistant / reasoning text per turn.
|
|
21
21
|
*/
|
|
22
22
|
export function buildTrajectory(events) {
|
|
23
|
-
var _a;
|
|
23
|
+
var _a, _b;
|
|
24
24
|
let sessionId = "";
|
|
25
25
|
let sdkAgentId;
|
|
26
26
|
let agentUrl;
|
|
@@ -65,12 +65,20 @@ export function buildTrajectory(events) {
|
|
|
65
65
|
break;
|
|
66
66
|
}
|
|
67
67
|
case "message.completed": {
|
|
68
|
+
// Nested subagent text must not overwrite the parent turn reply.
|
|
69
|
+
if (event.data.parentCallId !== undefined) {
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
68
72
|
if (event.turnId !== undefined && event.data.text !== "") {
|
|
69
73
|
ensureTurn(event.turnId).assistantText = event.data.text;
|
|
70
74
|
}
|
|
71
75
|
break;
|
|
72
76
|
}
|
|
73
77
|
case "reasoning.appended": {
|
|
78
|
+
// Nested subagent thinking stays off the parent turn transcript.
|
|
79
|
+
if (event.data.parentCallId !== undefined) {
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
74
82
|
if (event.turnId !== undefined) {
|
|
75
83
|
ensureTurn(event.turnId).reasoningText = event.data.text;
|
|
76
84
|
}
|
|
@@ -82,9 +90,29 @@ export function buildTrajectory(events) {
|
|
|
82
90
|
}
|
|
83
91
|
const turn = ensureTurn(event.turnId);
|
|
84
92
|
for (const call of event.data.calls) {
|
|
85
|
-
const
|
|
93
|
+
const parentCallId = (_a = call.parentCallId) !== null && _a !== void 0 ? _a : event.data.parentCallId;
|
|
94
|
+
// Keep bare top-level `task` in toolCalls so evals like
|
|
95
|
+
// `calledTool("task")` / `notCalledTool("task")` keep working.
|
|
96
|
+
// Nested progress also appears under `subagents`.
|
|
97
|
+
const entry = {
|
|
98
|
+
callId: call.callId,
|
|
99
|
+
toolName: call.toolName,
|
|
100
|
+
isError: false,
|
|
101
|
+
args: call.args,
|
|
102
|
+
parentCallId,
|
|
103
|
+
};
|
|
86
104
|
pendingCalls.set(call.callId, entry);
|
|
87
|
-
|
|
105
|
+
if (parentCallId !== undefined) {
|
|
106
|
+
let sub = turn.subagents.find((s) => s.callId === parentCallId);
|
|
107
|
+
if (sub === undefined) {
|
|
108
|
+
sub = { callId: parentCallId, toolCalls: [] };
|
|
109
|
+
turn.subagents.push(sub);
|
|
110
|
+
}
|
|
111
|
+
sub.toolCalls.push(entry);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
turn.toolCalls.push(entry);
|
|
115
|
+
}
|
|
88
116
|
}
|
|
89
117
|
break;
|
|
90
118
|
}
|
|
@@ -107,20 +135,47 @@ export function buildTrajectory(events) {
|
|
|
107
135
|
pending.toolName = event.data.toolName;
|
|
108
136
|
}
|
|
109
137
|
else if (event.turnId !== undefined) {
|
|
110
|
-
ensureTurn(event.turnId)
|
|
138
|
+
const turn = ensureTurn(event.turnId);
|
|
139
|
+
const entry = {
|
|
111
140
|
callId: event.data.callId,
|
|
112
141
|
toolName: event.data.toolName,
|
|
113
142
|
output: event.data.output,
|
|
114
143
|
isError: event.data.isError,
|
|
115
|
-
|
|
144
|
+
parentCallId: event.data.parentCallId,
|
|
145
|
+
};
|
|
146
|
+
if (event.data.parentCallId !== undefined) {
|
|
147
|
+
let sub = turn.subagents.find((s) => s.callId === event.data.parentCallId);
|
|
148
|
+
if (sub === undefined) {
|
|
149
|
+
sub = {
|
|
150
|
+
callId: event.data.parentCallId,
|
|
151
|
+
toolCalls: [],
|
|
152
|
+
};
|
|
153
|
+
turn.subagents.push(sub);
|
|
154
|
+
}
|
|
155
|
+
sub.toolCalls.push(entry);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
turn.toolCalls.push(entry);
|
|
159
|
+
}
|
|
116
160
|
}
|
|
117
161
|
break;
|
|
118
162
|
}
|
|
119
163
|
case "subagent.called": {
|
|
120
164
|
if (event.turnId !== undefined) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
165
|
+
const turn = ensureTurn(event.turnId);
|
|
166
|
+
const existing = turn.subagents.find((s) => s.callId === event.data.callId);
|
|
167
|
+
if (existing !== undefined) {
|
|
168
|
+
existing.name = event.data.name;
|
|
169
|
+
existing.description = event.data.description;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
turn.subagents.push({
|
|
173
|
+
callId: event.data.callId,
|
|
174
|
+
name: event.data.name,
|
|
175
|
+
description: event.data.description,
|
|
176
|
+
toolCalls: [],
|
|
177
|
+
});
|
|
178
|
+
}
|
|
124
179
|
}
|
|
125
180
|
break;
|
|
126
181
|
}
|
|
@@ -163,9 +218,11 @@ export function buildTrajectory(events) {
|
|
|
163
218
|
}
|
|
164
219
|
const turns = turnOrder.map((id) => turnsById.get(id));
|
|
165
220
|
const turnsFailed = turns.filter((t) => t.failed).length;
|
|
166
|
-
const toolCallCount = turns.reduce((n, t) => n +
|
|
221
|
+
const toolCallCount = turns.reduce((n, t) => n +
|
|
222
|
+
t.toolCalls.length +
|
|
223
|
+
t.subagents.reduce((m, s) => m + s.toolCalls.length, 0), 0);
|
|
167
224
|
const lastGood = [...turns].reverse().find((t) => t.assistantText !== "");
|
|
168
|
-
return Object.assign(Object.assign(Object.assign(Object.assign({ sessionId }, (sdkAgentId === undefined ? {} : { sdkAgentId })), (agentUrl === undefined ? {} : { agentUrl })), (channelId === undefined ? {} : { channelId })), { ok: turnsFailed === 0 && turns.length > 0, finalText: (
|
|
225
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({ sessionId }, (sdkAgentId === undefined ? {} : { sdkAgentId })), (agentUrl === undefined ? {} : { agentUrl })), (channelId === undefined ? {} : { channelId })), { ok: turnsFailed === 0 && turns.length > 0, finalText: (_b = lastGood === null || lastGood === void 0 ? void 0 : lastGood.assistantText) !== null && _b !== void 0 ? _b : "", turnsFailed,
|
|
169
226
|
toolCallCount,
|
|
170
227
|
turns });
|
|
171
228
|
}
|
|
@@ -195,6 +252,7 @@ export function loadTrajectoryFromEventsFile(path) {
|
|
|
195
252
|
}
|
|
196
253
|
/** Human-readable one-line-per-turn dump (for non-JSON CLI output). */
|
|
197
254
|
export function formatTrajectoryText(trajectory) {
|
|
255
|
+
var _a;
|
|
198
256
|
const lines = [];
|
|
199
257
|
lines.push(`session ${trajectory.sessionId || "(unknown)"} ok=${trajectory.ok}`);
|
|
200
258
|
if (trajectory.sdkAgentId !== undefined) {
|
|
@@ -217,6 +275,20 @@ export function formatTrajectoryText(trajectory) {
|
|
|
217
275
|
lines.push(` ${truncate(stringify(call.output), 160)}`);
|
|
218
276
|
}
|
|
219
277
|
}
|
|
278
|
+
for (const sub of turn.subagents) {
|
|
279
|
+
const label = (_a = sub.name) !== null && _a !== void 0 ? _a : "subagent";
|
|
280
|
+
const detail = sub.description !== undefined
|
|
281
|
+
? ` — ${truncate(sub.description, 80)}`
|
|
282
|
+
: "";
|
|
283
|
+
lines.push(` task ${label}${detail}`);
|
|
284
|
+
for (const call of sub.toolCalls) {
|
|
285
|
+
const mark = call.isError ? "✗" : "→";
|
|
286
|
+
lines.push(` ${mark} ${call.toolName}${formatArgs(call.args)}`);
|
|
287
|
+
if (call.output !== undefined) {
|
|
288
|
+
lines.push(` ${truncate(stringify(call.output), 160)}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
220
292
|
if (turn.assistantText.length > 0) {
|
|
221
293
|
lines.push(` agent: ${truncate(turn.assistantText, 400)}`);
|
|
222
294
|
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outdated-version warning + `agentkit update`.
|
|
3
|
+
*
|
|
4
|
+
* Every CLI run of a published install compares its own version against the
|
|
5
|
+
* npm registry's `latest` dist-tag and warns on stderr when behind. The
|
|
6
|
+
* registry lookup is cached under the config dir
|
|
7
|
+
* (`~/.config/agent-serve/update-check.json`) so most runs never touch the
|
|
8
|
+
* network; a stale cache refreshes inline under a short timeout, and any
|
|
9
|
+
* network failure is silent (the warning is best-effort, never a blocker).
|
|
10
|
+
*
|
|
11
|
+
* `agentkit update` re-runs the lookup fresh, figures out how this copy was
|
|
12
|
+
* installed (global npm/pnpm/yarn/bun, or a project dependency), and runs the
|
|
13
|
+
* matching install command.
|
|
14
|
+
*/
|
|
15
|
+
import { z } from "zod";
|
|
16
|
+
/**
|
|
17
|
+
* Semver-style ordering: negative when `a < b`, 0 when equal, positive when
|
|
18
|
+
* `a > b`. Unparseable versions compare equal (never warn on garbage).
|
|
19
|
+
*/
|
|
20
|
+
export declare function compareVersions(a: string, b: string): number;
|
|
21
|
+
/**
|
|
22
|
+
* Latest published version of the package, from the registry's `latest`
|
|
23
|
+
* dist-tag. Returns undefined on any failure (offline, 404 pre-publish, …).
|
|
24
|
+
*/
|
|
25
|
+
export declare function fetchLatestPublishedVersion(options?: {
|
|
26
|
+
fetchImpl?: typeof fetch;
|
|
27
|
+
timeoutMs?: number;
|
|
28
|
+
packageName?: string;
|
|
29
|
+
}): Promise<string | undefined>;
|
|
30
|
+
declare const cacheSchema: z.ZodObject<{
|
|
31
|
+
checkedAt: z.ZodNumber;
|
|
32
|
+
latestVersion: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, "strip">;
|
|
34
|
+
export type UpdateCheckCache = z.infer<typeof cacheSchema>;
|
|
35
|
+
export declare function updateCheckCachePath(configDir?: string): string;
|
|
36
|
+
export declare function readUpdateCheckCache(configDir?: string): Promise<UpdateCheckCache | undefined>;
|
|
37
|
+
export declare function writeUpdateCheckCache(cache: UpdateCheckCache, configDir?: string): Promise<void>;
|
|
38
|
+
export interface WarnIfOutdatedOptions {
|
|
39
|
+
/** Defaults to the running package's own version. */
|
|
40
|
+
currentVersion?: string;
|
|
41
|
+
/** Test seam; defaults to the shared config dir. */
|
|
42
|
+
configDir?: string;
|
|
43
|
+
fetchImpl?: typeof fetch;
|
|
44
|
+
/** Test seam; defaults to Date.now(). */
|
|
45
|
+
now?: number;
|
|
46
|
+
env?: NodeJS.ProcessEnv;
|
|
47
|
+
/** Defaults to process.stderr.write. */
|
|
48
|
+
err?: (text: string) => void;
|
|
49
|
+
/** Skip the source-checkout guard (tests exercise the full path). */
|
|
50
|
+
force?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Print an outdated-version warning to stderr when a newer release exists.
|
|
54
|
+
*
|
|
55
|
+
* Never throws and never blocks longer than {@link WARN_FETCH_TIMEOUT_MS}.
|
|
56
|
+
* Suppressed on source-checkout runs (there is no installed copy to update),
|
|
57
|
+
* in CI, and via NO_UPDATE_NOTIFIER / AGENT_SERVE_NO_UPDATE_CHECK.
|
|
58
|
+
*/
|
|
59
|
+
export declare function warnIfOutdated(options?: WarnIfOutdatedOptions): Promise<void>;
|
|
60
|
+
export interface UpdateCommand {
|
|
61
|
+
cmd: string;
|
|
62
|
+
args: string[];
|
|
63
|
+
/** Working directory for local project installs. */
|
|
64
|
+
cwd?: string;
|
|
65
|
+
/** One-line human description of what will run and why. */
|
|
66
|
+
reason: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Figure out how the running copy was installed and which command upgrades
|
|
70
|
+
* it. Detection is path-shape based (global stores have recognizable
|
|
71
|
+
* layouts), then falls back to walking up to the project that declares the
|
|
72
|
+
* dependency. Returns undefined for layouts we cannot safely upgrade
|
|
73
|
+
* (npx cache, unrecognized stores).
|
|
74
|
+
*/
|
|
75
|
+
export declare function detectUpdateCommand(args: {
|
|
76
|
+
packageRoot: string;
|
|
77
|
+
packageName?: string;
|
|
78
|
+
}): Promise<UpdateCommand | undefined>;
|
|
79
|
+
export interface UpdateCliOptions {
|
|
80
|
+
/** Test seams. */
|
|
81
|
+
fetchImpl?: typeof fetch;
|
|
82
|
+
currentVersion?: string;
|
|
83
|
+
packageRoot?: string;
|
|
84
|
+
configDir?: string;
|
|
85
|
+
runCommand?: (command: UpdateCommand) => Promise<number>;
|
|
86
|
+
compiled?: boolean;
|
|
87
|
+
out?: (text: string) => void;
|
|
88
|
+
err?: (text: string) => void;
|
|
89
|
+
}
|
|
90
|
+
/** `agentkit update` — upgrade this install to the latest published version. */
|
|
91
|
+
export declare function cmdUpdate(options?: UpdateCliOptions): Promise<number>;
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=update-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/internal/update-check.ts"],"names":[],"mappings":"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"}
|