@agentex/agent 0.0.36 → 0.0.38
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/CHANGELOG.md +460 -0
- package/README.md +32 -7
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/claude/parse.d.ts +3 -0
- package/dist/providers/claude/parse.d.ts.map +1 -1
- package/dist/providers/claude/parse.js +23 -1
- package/dist/providers/claude/parse.js.map +1 -1
- package/dist/providers/claude/session.d.ts +174 -4
- package/dist/providers/claude/session.d.ts.map +1 -1
- package/dist/providers/claude/session.js +541 -29
- package/dist/providers/claude/session.js.map +1 -1
- package/dist/providers/codex/execute.d.ts.map +1 -1
- package/dist/providers/codex/execute.js +3 -0
- package/dist/providers/codex/execute.js.map +1 -1
- package/dist/providers/codex/parse.d.ts +12 -1
- package/dist/providers/codex/parse.d.ts.map +1 -1
- package/dist/providers/codex/parse.js +21 -0
- package/dist/providers/codex/parse.js.map +1 -1
- package/dist/providers/codex/session.d.ts.map +1 -1
- package/dist/providers/codex/session.js +21 -1
- package/dist/providers/codex/session.js.map +1 -1
- package/dist/types.d.ts +95 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/instructions.d.ts +36 -12
- package/dist/utils/instructions.d.ts.map +1 -1
- package/dist/utils/instructions.js +104 -53
- package/dist/utils/instructions.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -0
- package/src/providers/claude/parse.ts +23 -1
- package/src/providers/claude/session.ts +556 -30
- package/src/providers/codex/execute.ts +3 -0
- package/src/providers/codex/parse.ts +25 -0
- package/src/providers/codex/session.ts +24 -1
- package/src/types.ts +97 -0
- package/src/utils/instructions.ts +152 -64
|
@@ -14,15 +14,20 @@ export interface InstallInstructionsOptions {
|
|
|
14
14
|
cwd?: string;
|
|
15
15
|
/**
|
|
16
16
|
* Also write each runtime's native file when it differs from the shared
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* AGENTS.md: Claude's CLAUDE.md (as a one-line `@AGENTS.md` pointer) and
|
|
18
|
+
* Gemini's GEMINI.md (as a copy). Only affects "workspace"; "global" always
|
|
19
|
+
* uses native files. Default: false.
|
|
20
|
+
*
|
|
21
|
+
* Opt in for Claude Code before 2.1.277, or on Bedrock, Vertex or Foundry,
|
|
22
|
+
* where Claude doesn't read AGENTS.md on its own.
|
|
19
23
|
*/
|
|
20
24
|
includeNativeFiles?: boolean;
|
|
21
25
|
/**
|
|
22
26
|
* Wrap `content` in managed markers and merge into any existing file,
|
|
23
27
|
* replacing only the previously-managed region and preserving everything the
|
|
24
28
|
* user wrote outside it. Default: true. When false, the file is overwritten
|
|
25
|
-
* with raw `content` (escape hatch for fully-owned files)
|
|
29
|
+
* with raw `content` (escape hatch for fully-owned files), and an existing
|
|
30
|
+
* CLAUDE.md is left alone even though it hides AGENTS.md from Claude Code.
|
|
26
31
|
*/
|
|
27
32
|
managed?: boolean;
|
|
28
33
|
/** Marker tag, so the comment reads `<!-- <tag>:managed:start -->`. Default: "agentex". */
|
|
@@ -33,7 +38,11 @@ export interface InstallInstructionsOptions {
|
|
|
33
38
|
*/
|
|
34
39
|
homeDir?: string;
|
|
35
40
|
}
|
|
36
|
-
|
|
41
|
+
/**
|
|
42
|
+
* "removed": a workspace CLAUDE.md that held nothing but this installer's
|
|
43
|
+
* managed region, deleted because the opt-in (`includeNativeFiles`) is off.
|
|
44
|
+
*/
|
|
45
|
+
export type InstructionStatus = "created" | "updated" | "skipped" | "removed" | "error";
|
|
37
46
|
export interface InstructionInstallEntry {
|
|
38
47
|
/** The filename written, e.g. "AGENTS.md", "CLAUDE.md", "GEMINI.md". */
|
|
39
48
|
filename: string;
|
|
@@ -41,6 +50,8 @@ export interface InstructionInstallEntry {
|
|
|
41
50
|
targetPath: string;
|
|
42
51
|
/** Which requested runtimes this file serves. */
|
|
43
52
|
runtimes: SkillRuntime[];
|
|
53
|
+
/** Set when the file is a pointer: its managed region is `@<importsFile>`, not the brief. */
|
|
54
|
+
importsFile?: string;
|
|
44
55
|
status: InstructionStatus;
|
|
45
56
|
error?: string;
|
|
46
57
|
}
|
|
@@ -49,12 +60,15 @@ export interface InstructionInstallResult {
|
|
|
49
60
|
installed: number;
|
|
50
61
|
updated: number;
|
|
51
62
|
skipped: number;
|
|
63
|
+
removed: number;
|
|
52
64
|
errors: number;
|
|
53
65
|
}
|
|
54
66
|
export interface InstructionTarget {
|
|
55
67
|
filename: string;
|
|
56
68
|
targetPath: string;
|
|
57
69
|
runtimes: SkillRuntime[];
|
|
70
|
+
/** Set when the file is a pointer: its managed region is `@<importsFile>`, not the brief. */
|
|
71
|
+
importsFile?: string;
|
|
58
72
|
}
|
|
59
73
|
export interface RemoveInstructionsOptions {
|
|
60
74
|
runtimes?: SkillRuntime[];
|
|
@@ -85,7 +99,8 @@ export interface ManagedBlockOptions {
|
|
|
85
99
|
* without touching disk.
|
|
86
100
|
*
|
|
87
101
|
* - "workspace": files dedupe by name under {cwd}/ (the default writes
|
|
88
|
-
*
|
|
102
|
+
* AGENTS.md once). `includeNativeFiles` adds CLAUDE.md (a pointer, marked by
|
|
103
|
+
* `importsFile`) and GEMINI.md.
|
|
89
104
|
* - "global": one file per runtime in each runtime's home dir. Runtimes without
|
|
90
105
|
* a file-based global config (Cursor) are omitted.
|
|
91
106
|
*/
|
|
@@ -99,18 +114,25 @@ export declare function resolveInstructionTargets(options?: {
|
|
|
99
114
|
/**
|
|
100
115
|
* Install an instruction brief into the right per-runtime files.
|
|
101
116
|
*
|
|
102
|
-
* By default merges `content` into a managed region of `{cwd}/
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
117
|
+
* By default merges `content` into a managed region of `{cwd}/AGENTS.md`,
|
|
118
|
+
* preserving any user-authored content outside the markers. Idempotent: a
|
|
119
|
+
* re-install with unchanged content reports every entry as "skipped".
|
|
120
|
+
*
|
|
121
|
+
* When Claude is among the runtimes, a `{cwd}/CLAUDE.md` already on disk is
|
|
122
|
+
* reconciled, because it would hide AGENTS.md from Claude Code: one holding
|
|
123
|
+
* nothing but this installer's managed region is removed, and one the user
|
|
124
|
+
* wrote gets `@AGENTS.md` in its managed region. With `includeNativeFiles`,
|
|
125
|
+
* CLAUDE.md is written as that pointer either way. `managed: false` leaves an
|
|
126
|
+
* existing CLAUDE.md alone.
|
|
106
127
|
*
|
|
107
128
|
* @example
|
|
108
129
|
* ```ts
|
|
109
130
|
* // Workspace (repo-root) install — the common case.
|
|
110
131
|
* await installInstructions(brief, { location: "workspace", cwd: projectDir });
|
|
111
|
-
* // → {cwd}/
|
|
132
|
+
* // → {cwd}/AGENTS.md
|
|
112
133
|
*
|
|
113
|
-
* // Also
|
|
134
|
+
* // Also write the native files: CLAUDE.md as an `@AGENTS.md` pointer (for
|
|
135
|
+
* // Claude Code before 2.1.277, or on Bedrock/Vertex/Foundry) and GEMINI.md.
|
|
114
136
|
* await installInstructions(brief, { location: "workspace", cwd, includeNativeFiles: true });
|
|
115
137
|
*
|
|
116
138
|
* // Global install — per-runtime home files.
|
|
@@ -123,7 +145,9 @@ export declare function installInstructions(content: string, options?: InstallIn
|
|
|
123
145
|
* Remove the managed region installed by {@link installInstructions}, preserving
|
|
124
146
|
* any user-authored content outside the markers. If the file contains nothing
|
|
125
147
|
* but the managed block, it is deleted. User-owned files (no managed region) are
|
|
126
|
-
* left untouched and reported as "skipped".
|
|
148
|
+
* left untouched and reported as "skipped". Native files (CLAUDE.md, GEMINI.md)
|
|
149
|
+
* are always checked, whether or not they were installed with
|
|
150
|
+
* `includeNativeFiles`.
|
|
127
151
|
*/
|
|
128
152
|
export declare function removeInstructions(options?: RemoveInstructionsOptions): Promise<InstructionRemoveResult>;
|
|
129
153
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/utils/instructions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWnF;
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/utils/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,12 +22,12 @@ export async function resolveInstructions(filePath) {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
const RUNTIME_INSTRUCTIONS = {
|
|
25
|
-
claude: { projectFile: "
|
|
26
|
-
codex: { projectFile: "AGENTS.md", nativeFile: "AGENTS.md", hasGlobalFile: true },
|
|
27
|
-
opencode: { projectFile: "AGENTS.md", nativeFile: "AGENTS.md", hasGlobalFile: true },
|
|
28
|
-
gemini: { projectFile: "AGENTS.md", nativeFile: "GEMINI.md", hasGlobalFile: true },
|
|
29
|
-
cursor: { projectFile: "AGENTS.md", nativeFile: "AGENTS.md", hasGlobalFile: false },
|
|
30
|
-
pi: { projectFile: "AGENTS.md", nativeFile: "AGENTS.md", hasGlobalFile: true },
|
|
25
|
+
claude: { projectFile: "AGENTS.md", nativeFile: "CLAUDE.md", nativeFileMode: "pointer", hasGlobalFile: true },
|
|
26
|
+
codex: { projectFile: "AGENTS.md", nativeFile: "AGENTS.md", nativeFileMode: "copy", hasGlobalFile: true },
|
|
27
|
+
opencode: { projectFile: "AGENTS.md", nativeFile: "AGENTS.md", nativeFileMode: "copy", hasGlobalFile: true },
|
|
28
|
+
gemini: { projectFile: "AGENTS.md", nativeFile: "GEMINI.md", nativeFileMode: "copy", hasGlobalFile: true },
|
|
29
|
+
cursor: { projectFile: "AGENTS.md", nativeFile: "AGENTS.md", nativeFileMode: "copy", hasGlobalFile: false },
|
|
30
|
+
pi: { projectFile: "AGENTS.md", nativeFile: "AGENTS.md", nativeFileMode: "copy", hasGlobalFile: true },
|
|
31
31
|
};
|
|
32
32
|
const ALL_RUNTIMES = ["claude", "codex", "gemini", "cursor", "opencode", "pi"];
|
|
33
33
|
const DEFAULT_MANAGED_TAG = "agentex";
|
|
@@ -39,7 +39,8 @@ const DEFAULT_MANAGED_TAG = "agentex";
|
|
|
39
39
|
* without touching disk.
|
|
40
40
|
*
|
|
41
41
|
* - "workspace": files dedupe by name under {cwd}/ (the default writes
|
|
42
|
-
*
|
|
42
|
+
* AGENTS.md once). `includeNativeFiles` adds CLAUDE.md (a pointer, marked by
|
|
43
|
+
* `importsFile`) and GEMINI.md.
|
|
43
44
|
* - "global": one file per runtime in each runtime's home dir. Runtimes without
|
|
44
45
|
* a file-based global config (Cursor) are omitted.
|
|
45
46
|
*/
|
|
@@ -51,23 +52,24 @@ export function resolveInstructionTargets(options) {
|
|
|
51
52
|
if (!cwd)
|
|
52
53
|
throw new Error("cwd is required when location is 'workspace'");
|
|
53
54
|
const byFile = new Map();
|
|
54
|
-
const add = (filename, runtime) => {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
const add = (filename, runtime, importsFile) => {
|
|
56
|
+
const target = byFile.get(filename) ?? {
|
|
57
|
+
filename,
|
|
58
|
+
targetPath: path.join(cwd, filename),
|
|
59
|
+
runtimes: [],
|
|
60
|
+
...(importsFile !== undefined && { importsFile }),
|
|
61
|
+
};
|
|
62
|
+
target.runtimes.push(runtime);
|
|
63
|
+
byFile.set(filename, target);
|
|
58
64
|
};
|
|
59
65
|
for (const runtime of runtimes) {
|
|
60
66
|
const spec = RUNTIME_INSTRUCTIONS[runtime];
|
|
61
67
|
add(spec.projectFile, runtime);
|
|
62
68
|
if (options?.includeNativeFiles && spec.nativeFile !== spec.projectFile) {
|
|
63
|
-
add(spec.nativeFile, runtime);
|
|
69
|
+
add(spec.nativeFile, runtime, spec.nativeFileMode === "pointer" ? spec.projectFile : undefined);
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
|
-
return [...byFile.
|
|
67
|
-
filename,
|
|
68
|
-
targetPath: path.join(cwd, filename),
|
|
69
|
-
runtimes: dedupeRuntimes(rts),
|
|
70
|
-
}));
|
|
72
|
+
return [...byFile.values()].map((target) => ({ ...target, runtimes: dedupeRuntimes(target.runtimes) }));
|
|
71
73
|
}
|
|
72
74
|
// global: each runtime reads its own native file in its own home dir.
|
|
73
75
|
const targets = [];
|
|
@@ -93,18 +95,25 @@ function dedupeRuntimes(runtimes) {
|
|
|
93
95
|
/**
|
|
94
96
|
* Install an instruction brief into the right per-runtime files.
|
|
95
97
|
*
|
|
96
|
-
* By default merges `content` into a managed region of `{cwd}/
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
98
|
+
* By default merges `content` into a managed region of `{cwd}/AGENTS.md`,
|
|
99
|
+
* preserving any user-authored content outside the markers. Idempotent: a
|
|
100
|
+
* re-install with unchanged content reports every entry as "skipped".
|
|
101
|
+
*
|
|
102
|
+
* When Claude is among the runtimes, a `{cwd}/CLAUDE.md` already on disk is
|
|
103
|
+
* reconciled, because it would hide AGENTS.md from Claude Code: one holding
|
|
104
|
+
* nothing but this installer's managed region is removed, and one the user
|
|
105
|
+
* wrote gets `@AGENTS.md` in its managed region. With `includeNativeFiles`,
|
|
106
|
+
* CLAUDE.md is written as that pointer either way. `managed: false` leaves an
|
|
107
|
+
* existing CLAUDE.md alone.
|
|
100
108
|
*
|
|
101
109
|
* @example
|
|
102
110
|
* ```ts
|
|
103
111
|
* // Workspace (repo-root) install — the common case.
|
|
104
112
|
* await installInstructions(brief, { location: "workspace", cwd: projectDir });
|
|
105
|
-
* // → {cwd}/
|
|
113
|
+
* // → {cwd}/AGENTS.md
|
|
106
114
|
*
|
|
107
|
-
* // Also
|
|
115
|
+
* // Also write the native files: CLAUDE.md as an `@AGENTS.md` pointer (for
|
|
116
|
+
* // Claude Code before 2.1.277, or on Bedrock/Vertex/Foundry) and GEMINI.md.
|
|
108
117
|
* await installInstructions(brief, { location: "workspace", cwd, includeNativeFiles: true });
|
|
109
118
|
*
|
|
110
119
|
* // Global install — per-runtime home files.
|
|
@@ -115,36 +124,16 @@ function dedupeRuntimes(runtimes) {
|
|
|
115
124
|
export async function installInstructions(content, options) {
|
|
116
125
|
const managed = options?.managed ?? true;
|
|
117
126
|
const tag = options?.managedTag ?? DEFAULT_MANAGED_TAG;
|
|
118
|
-
const targets = resolveInstructionTargets(options);
|
|
119
127
|
const entries = [];
|
|
120
|
-
for (const target of
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
else if (existing === next) {
|
|
131
|
-
status = "skipped";
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
status = "updated";
|
|
135
|
-
}
|
|
136
|
-
if (status !== "skipped") {
|
|
137
|
-
await fs.mkdir(path.dirname(target.targetPath), { recursive: true });
|
|
138
|
-
await fs.writeFile(target.targetPath, next, { mode: 0o644 });
|
|
139
|
-
}
|
|
140
|
-
entries.push({ ...target, status });
|
|
141
|
-
}
|
|
142
|
-
catch (err) {
|
|
143
|
-
entries.push({
|
|
144
|
-
...target,
|
|
145
|
-
status: "error",
|
|
146
|
-
error: err instanceof Error ? err.message : String(err),
|
|
147
|
-
});
|
|
128
|
+
for (const target of resolveInstructionTargets(options)) {
|
|
129
|
+
const body = target.importsFile !== undefined ? `@${target.importsFile}` : content;
|
|
130
|
+
entries.push(await writeTarget(target, body, managed, tag));
|
|
131
|
+
}
|
|
132
|
+
if (managed) {
|
|
133
|
+
for (const target of unrequestedPointerTargets(options)) {
|
|
134
|
+
const entry = await reconcilePointer(target, tag);
|
|
135
|
+
if (entry)
|
|
136
|
+
entries.push(entry);
|
|
148
137
|
}
|
|
149
138
|
}
|
|
150
139
|
return {
|
|
@@ -152,14 +141,75 @@ export async function installInstructions(content, options) {
|
|
|
152
141
|
installed: entries.filter((e) => e.status === "created").length,
|
|
153
142
|
updated: entries.filter((e) => e.status === "updated").length,
|
|
154
143
|
skipped: entries.filter((e) => e.status === "skipped").length,
|
|
144
|
+
removed: entries.filter((e) => e.status === "removed").length,
|
|
155
145
|
errors: entries.filter((e) => e.status === "error").length,
|
|
156
146
|
};
|
|
157
147
|
}
|
|
148
|
+
async function writeTarget(target, body, managed, tag) {
|
|
149
|
+
try {
|
|
150
|
+
const existing = await readFileOrNull(target.targetPath);
|
|
151
|
+
const next = managed ? upsertManagedBlock(existing, body, { tag }) : ensureTrailingNewline(body);
|
|
152
|
+
let status;
|
|
153
|
+
if (existing === null) {
|
|
154
|
+
status = "created";
|
|
155
|
+
}
|
|
156
|
+
else if (existing === next) {
|
|
157
|
+
status = "skipped";
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
status = "updated";
|
|
161
|
+
}
|
|
162
|
+
if (status !== "skipped") {
|
|
163
|
+
await fs.mkdir(path.dirname(target.targetPath), { recursive: true });
|
|
164
|
+
await fs.writeFile(target.targetPath, next, { mode: 0o644 });
|
|
165
|
+
}
|
|
166
|
+
return { ...target, status };
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
return { ...target, status: "error", error: err instanceof Error ? err.message : String(err) };
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Pointer files (a workspace CLAUDE.md) for the requested runtimes that the
|
|
174
|
+
* install doesn't write because the opt-in is off, but that still need
|
|
175
|
+
* reconciling if they exist.
|
|
176
|
+
*/
|
|
177
|
+
function unrequestedPointerTargets(options) {
|
|
178
|
+
if ((options?.location ?? "workspace") !== "workspace" || options?.includeNativeFiles)
|
|
179
|
+
return [];
|
|
180
|
+
return resolveInstructionTargets({ ...options, includeNativeFiles: true }).filter((target) => target.importsFile !== undefined);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* An existing pointer file with the opt-in off: delete it when nothing but our
|
|
184
|
+
* managed region is in it, otherwise keep the user's content and make sure it
|
|
185
|
+
* imports the project file. Returns null when there is no file.
|
|
186
|
+
*/
|
|
187
|
+
async function reconcilePointer(target, tag) {
|
|
188
|
+
try {
|
|
189
|
+
const existing = await readFileOrNull(target.targetPath);
|
|
190
|
+
if (existing === null)
|
|
191
|
+
return null;
|
|
192
|
+
if (stripManagedBlock(existing, { tag }) === null) {
|
|
193
|
+
await fs.rm(target.targetPath, { force: true });
|
|
194
|
+
return { ...target, status: "removed" };
|
|
195
|
+
}
|
|
196
|
+
const next = upsertManagedBlock(existing, `@${target.importsFile}`, { tag });
|
|
197
|
+
if (next === existing)
|
|
198
|
+
return { ...target, status: "skipped" };
|
|
199
|
+
await fs.writeFile(target.targetPath, next);
|
|
200
|
+
return { ...target, status: "updated" };
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
return { ...target, status: "error", error: err instanceof Error ? err.message : String(err) };
|
|
204
|
+
}
|
|
205
|
+
}
|
|
158
206
|
/**
|
|
159
207
|
* Remove the managed region installed by {@link installInstructions}, preserving
|
|
160
208
|
* any user-authored content outside the markers. If the file contains nothing
|
|
161
209
|
* but the managed block, it is deleted. User-owned files (no managed region) are
|
|
162
|
-
* left untouched and reported as "skipped".
|
|
210
|
+
* left untouched and reported as "skipped". Native files (CLAUDE.md, GEMINI.md)
|
|
211
|
+
* are always checked, whether or not they were installed with
|
|
212
|
+
* `includeNativeFiles`.
|
|
163
213
|
*/
|
|
164
214
|
export async function removeInstructions(options) {
|
|
165
215
|
const tag = options?.managedTag ?? DEFAULT_MANAGED_TAG;
|
|
@@ -167,6 +217,7 @@ export async function removeInstructions(options) {
|
|
|
167
217
|
runtimes: options?.runtimes,
|
|
168
218
|
location: options?.location,
|
|
169
219
|
cwd: options?.cwd,
|
|
220
|
+
includeNativeFiles: true,
|
|
170
221
|
homeDir: options?.homeDir,
|
|
171
222
|
});
|
|
172
223
|
const entries = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/utils/instructions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/utils/instructions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -827,7 +827,7 @@ function normalizedClaudeTaskStatus(
|
|
|
827
827
|
}
|
|
828
828
|
}
|
|
829
829
|
|
|
830
|
-
function backgroundTaskEventFromClaude(
|
|
830
|
+
export function backgroundTaskEventFromClaude(
|
|
831
831
|
raw: Record<string, unknown>,
|
|
832
832
|
): Extract<StreamEvent, { type: "background_task" }> | null {
|
|
833
833
|
if (asString(raw["type"], "") !== "system") return null;
|
|
@@ -861,6 +861,28 @@ function backgroundTaskEventFromClaude(
|
|
|
861
861
|
description: task.description,
|
|
862
862
|
summary: task.summary,
|
|
863
863
|
parentTaskId: null,
|
|
864
|
+
// Only `task_started` and `task_notification` carry the launching call;
|
|
865
|
+
// `task_updated` is a bare state patch keyed by task id alone.
|
|
866
|
+
toolUseId: task.toolUseId,
|
|
867
|
+
// The delivery, not the state change. Claude emits `task_updated` and
|
|
868
|
+
// `task_notification` for one completion — same task, same instant,
|
|
869
|
+
// different records. Only the notification hands back the result, so only
|
|
870
|
+
// it gets a report, and a host can render exactly one row per completion
|
|
871
|
+
// without guessing which of two identical-looking events to keep.
|
|
872
|
+
//
|
|
873
|
+
// Gated on the task having actually delivered an outcome. Claude emits
|
|
874
|
+
// notifications for a task that is still running (a mid-flight ping is not
|
|
875
|
+
// a result), and a `stopped` task was cut short by a host `stopTask` or a
|
|
876
|
+
// kill — there is nothing to hand back, no resume turn follows it, and
|
|
877
|
+
// treating it as a delivery left a stale id that mis-attributed the next
|
|
878
|
+
// self-started turn. `completed` and `failed` both delivered an outcome.
|
|
879
|
+
report: task.phase === "notification" && terminal && status !== "stopped"
|
|
880
|
+
? {
|
|
881
|
+
summary: task.summary,
|
|
882
|
+
outputFile: task.outputFile,
|
|
883
|
+
usage: task.usage,
|
|
884
|
+
}
|
|
885
|
+
: null,
|
|
864
886
|
...baseFieldsFromEvent(raw, null),
|
|
865
887
|
};
|
|
866
888
|
}
|