maestro-agent-sdk 0.1.4 → 0.1.6
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 +197 -10
- package/dist/agents/contracts.d.ts +10 -0
- package/dist/agents/contracts.d.ts.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/memory/reminder.d.ts +9 -9
- package/dist/memory/reminder.d.ts.map +1 -1
- package/dist/memory/reminder.js +21 -15
- package/dist/memory/reminder.js.map +1 -1
- package/dist/platform/version.d.ts +13 -0
- package/dist/platform/version.d.ts.map +1 -0
- package/dist/platform/version.js +13 -0
- package/dist/platform/version.js.map +1 -0
- package/dist/provider.d.ts +62 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +161 -22
- package/dist/provider.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +16 -1
- package/dist/registry.js.map +1 -1
- package/dist/session-store.d.ts +95 -4
- package/dist/session-store.d.ts.map +1 -1
- package/dist/session-store.js +144 -13
- package/dist/session-store.js.map +1 -1
- package/dist/skills/curator.d.ts +8 -6
- package/dist/skills/curator.d.ts.map +1 -1
- package/dist/skills/curator.js +13 -7
- package/dist/skills/curator.js.map +1 -1
- package/dist/skills/loader.d.ts +45 -20
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +56 -11
- package/dist/skills/loader.js.map +1 -1
- package/dist/state/tasks.d.ts +107 -0
- package/dist/state/tasks.d.ts.map +1 -0
- package/dist/state/tasks.js +398 -0
- package/dist/state/tasks.js.map +1 -0
- package/dist/sub-agent/runner.d.ts +1 -1
- package/dist/sub-agent/runner.js +3 -3
- package/dist/tools/builtin/glob.d.ts +17 -0
- package/dist/tools/builtin/glob.d.ts.map +1 -0
- package/dist/tools/builtin/glob.js +235 -0
- package/dist/tools/builtin/glob.js.map +1 -0
- package/dist/tools/builtin/grep.d.ts +3 -0
- package/dist/tools/builtin/grep.d.ts.map +1 -0
- package/dist/tools/builtin/grep.js +272 -0
- package/dist/tools/builtin/grep.js.map +1 -0
- package/dist/tools/builtin/skill_write.d.ts +53 -0
- package/dist/tools/builtin/skill_write.d.ts.map +1 -0
- package/dist/tools/builtin/skill_write.js +264 -0
- package/dist/tools/builtin/skill_write.js.map +1 -0
- package/dist/tools/builtin/tasks.d.ts +34 -0
- package/dist/tools/builtin/tasks.d.ts.map +1 -0
- package/dist/tools/builtin/tasks.js +258 -0
- package/dist/tools/builtin/tasks.js.map +1 -0
- package/dist/types.d.ts +95 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/state/todos.d.ts +0 -95
- package/dist/state/todos.d.ts.map +0 -1
- package/dist/state/todos.js +0 -198
- package/dist/state/todos.js.map +0 -1
- package/dist/tools/builtin/todo_write.d.ts +0 -29
- package/dist/tools/builtin/todo_write.d.ts.map +0 -1
- package/dist/tools/builtin/todo_write.js +0 -96
- package/dist/tools/builtin/todo_write.js.map +0 -1
package/dist/provider.d.ts
CHANGED
|
@@ -58,6 +58,68 @@ export declare function maestroProvider(opts: AgentQueryOptions): AsyncGenerator
|
|
|
58
58
|
* exact phrasing if they need parity.
|
|
59
59
|
*/
|
|
60
60
|
export declare function iterationBudgetLine(remaining: number, max: number): string;
|
|
61
|
+
/**
|
|
62
|
+
* Skill profile name used when `AgentQueryOptions.skillKey` is omitted.
|
|
63
|
+
*
|
|
64
|
+
* Every skill the SDK loads lives under `<cwd>/.skills/<key>/` — there is
|
|
65
|
+
* no "uncategorized" slot directly beneath `.skills/`. When the caller
|
|
66
|
+
* doesn't specify a key, the SDK routes to this default subdirectory so
|
|
67
|
+
* the on-disk layout stays uniformly `key → catalog`. Hosts that want
|
|
68
|
+
* a different default name can pass `skillKey: "their-name"` explicitly
|
|
69
|
+
* on every call; the constant is exported so they can reference it
|
|
70
|
+
* symbolically rather than hard-coding the string.
|
|
71
|
+
*/
|
|
72
|
+
export declare const MAESTRO_DEFAULT_SKILL_KEY: "default";
|
|
73
|
+
/**
|
|
74
|
+
* Resolve the directory the skill catalog should be loaded from for this
|
|
75
|
+
* call. Deterministic from `(opts.cwd, opts.skillKey)`:
|
|
76
|
+
*
|
|
77
|
+
* - `opts.skillKey` set → `<cwd>/.skills/<skillKey>/`
|
|
78
|
+
* - `opts.skillKey` unset → `<cwd>/.skills/default/`
|
|
79
|
+
*
|
|
80
|
+
* Every loaded skill lives under a named key — the SDK never reads from
|
|
81
|
+
* `<cwd>/.skills/` directly. This keeps the layout uniform so a caller
|
|
82
|
+
* scanning the filesystem can answer "which profiles exist in this
|
|
83
|
+
* workspace?" with one `readdir`.
|
|
84
|
+
*
|
|
85
|
+
* The per-cwd `.skills/` convention treats every session's working
|
|
86
|
+
* directory as its own skill scope — agents create, edit, and consume
|
|
87
|
+
* SKILL.md files inside the workspace they're operating on, with no
|
|
88
|
+
* global side effects on `~/.maestro/skills/` or on a peer SDK like
|
|
89
|
+
* Claude Code's `~/.claude/skills/`. The result is project-local
|
|
90
|
+
* autonomy: a `.skills/` dir checks into source control with the project,
|
|
91
|
+
* ships with the repo, and sub-agents inherit the parent's catalog
|
|
92
|
+
* because they share the cwd.
|
|
93
|
+
*
|
|
94
|
+
* `skillKey` partitions the per-cwd catalog: one workspace can host
|
|
95
|
+
* multiple disjoint skill sets (e.g. "legal" topic vs "coding" topic
|
|
96
|
+
* sharing the same `cwd`), and each session selects its profile via the
|
|
97
|
+
* key. The keyed dir IS the loader's root, so any skill the agent writes
|
|
98
|
+
* during the session naturally lands in the same profile.
|
|
99
|
+
*
|
|
100
|
+
* Hosts can pre-create a keyed dir as a symlink to share skills across
|
|
101
|
+
* profiles. The SDK itself takes no opinion on cross-profile sharing.
|
|
102
|
+
*
|
|
103
|
+
* Exported so hosts can recompute the same value (e.g. for a pre-warm
|
|
104
|
+
* step that calls `loadSkillsCached` ahead of a provider invocation).
|
|
105
|
+
*/
|
|
106
|
+
export declare function resolveSkillsDir(opts: {
|
|
107
|
+
cwd: string;
|
|
108
|
+
skillKey?: string;
|
|
109
|
+
}): string;
|
|
110
|
+
/**
|
|
111
|
+
* Filter a loaded SkillEntry catalog by an optional `allowedSkills` whitelist.
|
|
112
|
+
* `undefined` returns the input unchanged (default "all allowed" behavior for
|
|
113
|
+
* pre-v0.1.5 hosts); an empty array intentionally returns nothing (the host
|
|
114
|
+
* explicitly opted into "no skills"). Unknown names are silently ignored — a
|
|
115
|
+
* host can pass a superset of names that may or may not exist.
|
|
116
|
+
*
|
|
117
|
+
* Generic over the SkillEntry shape so sub-agents and tests can reuse it
|
|
118
|
+
* with their own narrowed types without `as SkillEntry` casts.
|
|
119
|
+
*/
|
|
120
|
+
export declare function applySkillAllowlist<T extends {
|
|
121
|
+
name: string;
|
|
122
|
+
}>(skills: T[], allowedSkills?: string[]): T[];
|
|
61
123
|
/**
|
|
62
124
|
* Pick the right provider adapter for a resolved model id. DeepSeek's V4
|
|
63
125
|
* family uses `deepseek-*` ids; everything else (Anthropic claude-* + future
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAyC,MAAM,kBAAkB,CAAC;AAiCxF,OAAO,KAAK,EAAE,iBAAiB,EAAc,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAuB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,CA2Z5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAY1E;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAG,SAAkB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEjF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5D,MAAM,EAAE,CAAC,EAAE,EACX,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,CAAC,EAAE,CAGL;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAKhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMlD"}
|
package/dist/provider.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import { DATA_DIR } from "./platform/config.js";
|
|
4
3
|
import { AIAgent } from "./core/agent.js";
|
|
5
4
|
import { runConversation } from "./core/loop.js";
|
|
6
5
|
import { registerMcpTools, startMcpPool } from "./mcp/pool.js";
|
|
@@ -12,13 +11,16 @@ import { isWellFormedMessage, loadMaestroSession, saveMaestroSession, trimToSafe
|
|
|
12
11
|
import { curateSkills } from "./skills/curator.js";
|
|
13
12
|
import { buildSkillsIndex } from "./skills/index-builder.js";
|
|
14
13
|
import { loadSkillsCached } from "./skills/loader.js";
|
|
15
|
-
import {
|
|
14
|
+
import { getTaskStore } from "./state/tasks.js";
|
|
16
15
|
import { createAgentTool } from "./tools/builtin/agent.js";
|
|
17
16
|
import { bashTool } from "./tools/builtin/bash.js";
|
|
18
17
|
import { createEditTool } from "./tools/builtin/edit.js";
|
|
18
|
+
import { globTool } from "./tools/builtin/glob.js";
|
|
19
|
+
import { grepTool } from "./tools/builtin/grep.js";
|
|
19
20
|
import { createReadTool } from "./tools/builtin/read.js";
|
|
20
21
|
import { createSkillViewTool } from "./tools/builtin/skill_view.js";
|
|
21
|
-
import {
|
|
22
|
+
import { createSkillWriteTool } from "./tools/builtin/skill_write.js";
|
|
23
|
+
import { createTaskCreateTool, createTaskGetTool, createTaskListTool, createTaskUpdateTool, } from "./tools/builtin/tasks.js";
|
|
22
24
|
import { webFetchTool } from "./tools/builtin/web_fetch.js";
|
|
23
25
|
import { createWriteTool } from "./tools/builtin/write.js";
|
|
24
26
|
import { getFileStateTracker } from "./tools/file-state.js";
|
|
@@ -68,22 +70,34 @@ export async function* maestroProvider(opts) {
|
|
|
68
70
|
// level registry (see tools/file-state.ts) keeps the tracker alive across
|
|
69
71
|
// turns so a Read in turn N is still recorded when an Edit fires in N+1.
|
|
70
72
|
const fileTracker = getFileStateTracker(sessionId);
|
|
71
|
-
// Per-session
|
|
72
|
-
//
|
|
73
|
-
//
|
|
74
|
-
|
|
73
|
+
// Per-session task store backing the TaskCreate/Update/List/Get family.
|
|
74
|
+
// Same module-level cache pattern as the file-state tracker — the store
|
|
75
|
+
// hydrates from `~/.maestro/sessions/<sid>.tasks.json` on first access
|
|
76
|
+
// (auto-migrating from the legacy `.todos.json` when present) so a
|
|
77
|
+
// multi-turn plan survives across calls.
|
|
78
|
+
const taskStore = getTaskStore(sessionId);
|
|
75
79
|
const tools = new ToolRegistry();
|
|
76
80
|
tools.register(bashTool);
|
|
77
|
-
// Read/Write/Edit/WebFetch — claude SDK parity builtins. Same
|
|
78
|
-
// so the model's pretrained instinct calls them with the
|
|
79
|
-
// prompt cache keys line up across agents when a topic
|
|
80
|
-
// Read/Write/Edit gate on the per-session file-state tracker
|
|
81
|
-
// mutate a path that hasn't been Read in this session.
|
|
81
|
+
// Read/Write/Edit/WebFetch/Glob/Grep — claude SDK parity builtins. Same
|
|
82
|
+
// names + schemas so the model's pretrained instinct calls them with the
|
|
83
|
+
// right shape, and prompt cache keys line up across agents when a topic
|
|
84
|
+
// is bridged. Read/Write/Edit gate on the per-session file-state tracker
|
|
85
|
+
// so Edit can't mutate a path that hasn't been Read in this session.
|
|
86
|
+
// Glob walks the filesystem in-process (no deps), Grep shells out to
|
|
87
|
+
// ripgrep — both are read-only and parallelSafe.
|
|
82
88
|
tools.register(createReadTool({ tracker: fileTracker }));
|
|
83
89
|
tools.register(createWriteTool({ tracker: fileTracker }));
|
|
84
90
|
tools.register(createEditTool({ tracker: fileTracker }));
|
|
91
|
+
tools.register(globTool);
|
|
92
|
+
tools.register(grepTool);
|
|
85
93
|
tools.register(webFetchTool);
|
|
86
|
-
|
|
94
|
+
// Task family — granular CRUD replacing the v0.1.x TodoWrite. All four
|
|
95
|
+
// share the same per-session store; the system reminder renders the list
|
|
96
|
+
// every turn so the model rarely needs to call TaskList explicitly.
|
|
97
|
+
tools.register(createTaskCreateTool({ store: taskStore }));
|
|
98
|
+
tools.register(createTaskUpdateTool({ store: taskStore }));
|
|
99
|
+
tools.register(createTaskListTool({ store: taskStore }));
|
|
100
|
+
tools.register(createTaskGetTool({ store: taskStore }));
|
|
87
101
|
// --- Skills: load SKILL.md catalog + register `skill_view` ---------------
|
|
88
102
|
//
|
|
89
103
|
// Domain accuracy lever (Phase 2). The model gets:
|
|
@@ -93,21 +107,46 @@ export async function* maestroProvider(opts) {
|
|
|
93
107
|
// demand (progressive disclosure — saves the per-turn cost of inlining
|
|
94
108
|
// every skill body).
|
|
95
109
|
//
|
|
96
|
-
// Source
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
//
|
|
110
|
+
// Source-dir resolution is deterministic from `(opts.cwd, opts.skillKey)`:
|
|
111
|
+
// - `opts.skillKey` set → `<cwd>/.skills/<skillKey>/`
|
|
112
|
+
// - `opts.skillKey` unset → `<cwd>/.skills/default/`
|
|
113
|
+
//
|
|
114
|
+
// No env var, no explicit dir override — one workspace, one keyed
|
|
115
|
+
// profile, one catalog. Skills always live under a named key
|
|
116
|
+
// subdirectory; the root `.skills/` only ever holds key dirs. Skills
|
|
117
|
+
// live alongside the project the agent is working on; the SDK never
|
|
118
|
+
// writes into a global directory. Empty dir is the expected starting
|
|
119
|
+
// state — agents populate it autonomously (or a host seeds it from a
|
|
120
|
+
// template). Multiple disjoint skill sets in one cwd are partitioned
|
|
121
|
+
// by `skillKey` subdirectories.
|
|
122
|
+
//
|
|
123
|
+
// After loading we apply `opts.allowedSkills` (if provided) as a name
|
|
124
|
+
// whitelist BEFORE curation, so curator + index-builder + skill_view all
|
|
125
|
+
// see the same filtered set. Unknown names are silently ignored — a host
|
|
126
|
+
// can pass a superset of names that may or may not exist in the catalog.
|
|
101
127
|
//
|
|
102
128
|
// Failures (rootDir missing, unreadable, every file malformed) reduce to an
|
|
103
129
|
// empty catalog — the loop still runs with just bash + MCP tools.
|
|
104
|
-
const skillsDir =
|
|
130
|
+
const skillsDir = resolveSkillsDir(opts);
|
|
131
|
+
// skill_write: agent-autonomous skill authoring. Registered up front
|
|
132
|
+
// (independent of catalog state) so the agent can author the first skill
|
|
133
|
+
// into an empty `.skills/<key>/` directory — without this the cold-start
|
|
134
|
+
// "no skills yet, but the agent wants to bootstrap one" path would have
|
|
135
|
+
// no entry point. Writes land at `<skillsDir>/<name>/skill.md` so the
|
|
136
|
+
// resolved (cwd, skillKey) routing automatically scopes new skills to
|
|
137
|
+
// the current profile. Cache invalidation inside the tool means the
|
|
138
|
+
// next provider call picks up the write.
|
|
139
|
+
tools.register(createSkillWriteTool({ skillsDir }));
|
|
105
140
|
let skillsBlock = "";
|
|
106
141
|
// Hoisted to outer scope so the Agent tool (registered below, after
|
|
107
142
|
// model/effort resolve) can pass the same skill catalog to sub-agents.
|
|
108
143
|
let loadedSkills = [];
|
|
109
144
|
try {
|
|
110
|
-
const
|
|
145
|
+
const allSkills = loadSkillsCached(skillsDir);
|
|
146
|
+
// Apply per-call allowlist BEFORE the curator/index so every downstream
|
|
147
|
+
// consumer sees the same filtered set. Empty array would mean "no skills
|
|
148
|
+
// allowed" — we treat undefined as "all allowed" to keep backward compat.
|
|
149
|
+
const skills = applySkillAllowlist(allSkills, opts.allowedSkills);
|
|
111
150
|
loadedSkills = skills;
|
|
112
151
|
if (skills.length > 0) {
|
|
113
152
|
// Curator filters the catalog: archived skills (agent-created, never
|
|
@@ -124,8 +163,10 @@ export async function* maestroProvider(opts) {
|
|
|
124
163
|
agent: "maestro",
|
|
125
164
|
skillsDir,
|
|
126
165
|
skillCount: skills.length,
|
|
166
|
+
totalCount: allSkills.length,
|
|
127
167
|
visibleCount: visibleSkills.length,
|
|
128
168
|
archivedCount: skills.length - visibleSkills.length,
|
|
169
|
+
filtered: opts.allowedSkills !== undefined,
|
|
129
170
|
}, "maestroProvider: skill catalog loaded (curated)");
|
|
130
171
|
}
|
|
131
172
|
}
|
|
@@ -224,7 +265,7 @@ export async function* maestroProvider(opts) {
|
|
|
224
265
|
// in the same order, only the counts change.
|
|
225
266
|
const buildIterReminder = (iterationsRemaining) => buildSystemReminder({
|
|
226
267
|
sessionId,
|
|
227
|
-
|
|
268
|
+
tasks: taskStore.list(),
|
|
228
269
|
extras: [iterationBudgetLine(iterationsRemaining, maxIter)],
|
|
229
270
|
});
|
|
230
271
|
const reminderText = buildIterReminder(maxIter);
|
|
@@ -237,6 +278,13 @@ export async function* maestroProvider(opts) {
|
|
|
237
278
|
// recorder captures it in the unified conversation log — same shape as
|
|
238
279
|
// claude/codex `init` and `thread.started` events.
|
|
239
280
|
yield { type: "session", sessionId };
|
|
281
|
+
if (opts.hooks?.onSessionStart) {
|
|
282
|
+
await opts.hooks.onSessionStart({
|
|
283
|
+
sessionId,
|
|
284
|
+
cwd: opts.cwd,
|
|
285
|
+
...(opts.userId !== undefined ? { userId: opts.userId } : {}),
|
|
286
|
+
});
|
|
287
|
+
}
|
|
240
288
|
// Skills index goes into the system prompt (NOT a user message) so
|
|
241
289
|
// Anthropic's prefix cache covers it across every turn — the catalog only
|
|
242
290
|
// changes when SKILL.md files on disk change, while user messages roll
|
|
@@ -299,11 +347,15 @@ export async function* maestroProvider(opts) {
|
|
|
299
347
|
resumed: priorMessages.length > 0,
|
|
300
348
|
priorTurns: priorMessages.length,
|
|
301
349
|
}, "maestroProvider: starting run_conversation");
|
|
350
|
+
let finalUsage;
|
|
302
351
|
let drained = false;
|
|
303
352
|
let aborted = false;
|
|
304
353
|
try {
|
|
305
354
|
for await (const event of runConversation(agent, messages)) {
|
|
306
355
|
yield event;
|
|
356
|
+
if (event.type === "result" && event.usage) {
|
|
357
|
+
finalUsage = event.usage;
|
|
358
|
+
}
|
|
307
359
|
}
|
|
308
360
|
drained = true;
|
|
309
361
|
}
|
|
@@ -344,7 +396,17 @@ export async function* maestroProvider(opts) {
|
|
|
344
396
|
try {
|
|
345
397
|
const safePrefix = drained ? messages : trimToSafePrefix(messages);
|
|
346
398
|
if (safePrefix.length > 0) {
|
|
347
|
-
|
|
399
|
+
// Stamp the rollout `_meta` header (v0.1.5+) with the current cwd,
|
|
400
|
+
// userId, and any host-supplied `sessionMetadata`. The session-store
|
|
401
|
+
// preserves `createdAt` from any prior write so subsequent saves
|
|
402
|
+
// don't reset the "first write" timestamp.
|
|
403
|
+
saveMaestroSession(sessionId, safePrefix, {
|
|
404
|
+
cwd: opts.cwd,
|
|
405
|
+
skillsDir,
|
|
406
|
+
...(opts.skillKey !== undefined ? { skillKey: opts.skillKey } : {}),
|
|
407
|
+
...(opts.userId !== undefined ? { userId: opts.userId } : {}),
|
|
408
|
+
...(opts.sessionMetadata !== undefined ? { metadata: opts.sessionMetadata } : {}),
|
|
409
|
+
});
|
|
348
410
|
if (!drained && safePrefix.length < messages.length) {
|
|
349
411
|
logger.info({
|
|
350
412
|
sessionId,
|
|
@@ -359,6 +421,20 @@ export async function* maestroProvider(opts) {
|
|
|
359
421
|
catch (err) {
|
|
360
422
|
logger.warn({ err, sessionId, turns: messages.length }, "maestroProvider: persist failed (best-effort)");
|
|
361
423
|
}
|
|
424
|
+
if (opts.hooks?.onSessionEnd) {
|
|
425
|
+
try {
|
|
426
|
+
await opts.hooks.onSessionEnd({
|
|
427
|
+
sessionId,
|
|
428
|
+
cwd: opts.cwd,
|
|
429
|
+
...(opts.userId !== undefined ? { userId: opts.userId } : {}),
|
|
430
|
+
aborted,
|
|
431
|
+
...(finalUsage !== undefined ? { usage: finalUsage } : {}),
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
catch (hookErr) {
|
|
435
|
+
logger.warn({ err: hookErr, sessionId }, "maestroProvider: onSessionEnd hook failed");
|
|
436
|
+
}
|
|
437
|
+
}
|
|
362
438
|
}
|
|
363
439
|
}
|
|
364
440
|
/**
|
|
@@ -404,6 +480,69 @@ export function iterationBudgetLine(remaining, max) {
|
|
|
404
480
|
}
|
|
405
481
|
return `Tool iterations remaining: ${remaining}/${max} — ${tone}`;
|
|
406
482
|
}
|
|
483
|
+
/**
|
|
484
|
+
* Skill profile name used when `AgentQueryOptions.skillKey` is omitted.
|
|
485
|
+
*
|
|
486
|
+
* Every skill the SDK loads lives under `<cwd>/.skills/<key>/` — there is
|
|
487
|
+
* no "uncategorized" slot directly beneath `.skills/`. When the caller
|
|
488
|
+
* doesn't specify a key, the SDK routes to this default subdirectory so
|
|
489
|
+
* the on-disk layout stays uniformly `key → catalog`. Hosts that want
|
|
490
|
+
* a different default name can pass `skillKey: "their-name"` explicitly
|
|
491
|
+
* on every call; the constant is exported so they can reference it
|
|
492
|
+
* symbolically rather than hard-coding the string.
|
|
493
|
+
*/
|
|
494
|
+
export const MAESTRO_DEFAULT_SKILL_KEY = "default";
|
|
495
|
+
/**
|
|
496
|
+
* Resolve the directory the skill catalog should be loaded from for this
|
|
497
|
+
* call. Deterministic from `(opts.cwd, opts.skillKey)`:
|
|
498
|
+
*
|
|
499
|
+
* - `opts.skillKey` set → `<cwd>/.skills/<skillKey>/`
|
|
500
|
+
* - `opts.skillKey` unset → `<cwd>/.skills/default/`
|
|
501
|
+
*
|
|
502
|
+
* Every loaded skill lives under a named key — the SDK never reads from
|
|
503
|
+
* `<cwd>/.skills/` directly. This keeps the layout uniform so a caller
|
|
504
|
+
* scanning the filesystem can answer "which profiles exist in this
|
|
505
|
+
* workspace?" with one `readdir`.
|
|
506
|
+
*
|
|
507
|
+
* The per-cwd `.skills/` convention treats every session's working
|
|
508
|
+
* directory as its own skill scope — agents create, edit, and consume
|
|
509
|
+
* SKILL.md files inside the workspace they're operating on, with no
|
|
510
|
+
* global side effects on `~/.maestro/skills/` or on a peer SDK like
|
|
511
|
+
* Claude Code's `~/.claude/skills/`. The result is project-local
|
|
512
|
+
* autonomy: a `.skills/` dir checks into source control with the project,
|
|
513
|
+
* ships with the repo, and sub-agents inherit the parent's catalog
|
|
514
|
+
* because they share the cwd.
|
|
515
|
+
*
|
|
516
|
+
* `skillKey` partitions the per-cwd catalog: one workspace can host
|
|
517
|
+
* multiple disjoint skill sets (e.g. "legal" topic vs "coding" topic
|
|
518
|
+
* sharing the same `cwd`), and each session selects its profile via the
|
|
519
|
+
* key. The keyed dir IS the loader's root, so any skill the agent writes
|
|
520
|
+
* during the session naturally lands in the same profile.
|
|
521
|
+
*
|
|
522
|
+
* Hosts can pre-create a keyed dir as a symlink to share skills across
|
|
523
|
+
* profiles. The SDK itself takes no opinion on cross-profile sharing.
|
|
524
|
+
*
|
|
525
|
+
* Exported so hosts can recompute the same value (e.g. for a pre-warm
|
|
526
|
+
* step that calls `loadSkillsCached` ahead of a provider invocation).
|
|
527
|
+
*/
|
|
528
|
+
export function resolveSkillsDir(opts) {
|
|
529
|
+
return join(opts.cwd, ".skills", opts.skillKey ?? MAESTRO_DEFAULT_SKILL_KEY);
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Filter a loaded SkillEntry catalog by an optional `allowedSkills` whitelist.
|
|
533
|
+
* `undefined` returns the input unchanged (default "all allowed" behavior for
|
|
534
|
+
* pre-v0.1.5 hosts); an empty array intentionally returns nothing (the host
|
|
535
|
+
* explicitly opted into "no skills"). Unknown names are silently ignored — a
|
|
536
|
+
* host can pass a superset of names that may or may not exist.
|
|
537
|
+
*
|
|
538
|
+
* Generic over the SkillEntry shape so sub-agents and tests can reuse it
|
|
539
|
+
* with their own narrowed types without `as SkillEntry` casts.
|
|
540
|
+
*/
|
|
541
|
+
export function applySkillAllowlist(skills, allowedSkills) {
|
|
542
|
+
if (allowedSkills === undefined)
|
|
543
|
+
return skills;
|
|
544
|
+
return skills.filter((s) => allowedSkills.includes(s.name));
|
|
545
|
+
}
|
|
407
546
|
/**
|
|
408
547
|
* Pick the right provider adapter for a resolved model id. DeepSeek's V4
|
|
409
548
|
* family uses `deepseek-*` ids; everything else (Anthropic claude-* + future
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAsCxD,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAsCxD,eAAO,MAAM,eAAe,EAAE,aAkF7B,CAAC"}
|
package/dist/registry.js
CHANGED
|
@@ -48,11 +48,16 @@ export const maestroRegistry = {
|
|
|
48
48
|
// `reuseSessionId` (if any) keeps the same file path across set_agent
|
|
49
49
|
// round-trips so prompt-cache continuity and the "one continuous
|
|
50
50
|
// conversation" UX work the same way they do for claude/codex.
|
|
51
|
+
// `userId` / `metadata` (when supplied) ride into the rollout's `_meta`
|
|
52
|
+
// header so a later sweep can attribute the JSONL without re-reading the
|
|
53
|
+
// conversation log it was synthesized from.
|
|
51
54
|
writeRollout(opts) {
|
|
52
55
|
const { sessionId, rolloutPath } = writeMaestroRollout({
|
|
53
56
|
cwd: opts.cwd,
|
|
54
57
|
entries: opts.entries,
|
|
55
58
|
...(opts.reuseSessionId ? { sessionId: opts.reuseSessionId } : {}),
|
|
59
|
+
...(opts.userId !== undefined ? { userId: opts.userId } : {}),
|
|
60
|
+
...(opts.metadata !== undefined ? { metadata: opts.metadata } : {}),
|
|
56
61
|
});
|
|
57
62
|
return { sessionId, rolloutPath };
|
|
58
63
|
},
|
|
@@ -62,9 +67,19 @@ export const maestroRegistry = {
|
|
|
62
67
|
// tool_result into assistant text as `[Tool: ...]` annotations, so
|
|
63
68
|
// structural tool history is lost. Acceptable trade-off — the fork starts
|
|
64
69
|
// with text-level context and the model still sees what ran.
|
|
70
|
+
// The fork rollout's `_meta` header records the parent's `userId`,
|
|
71
|
+
// `topicName`, and `groupId` for later indexing.
|
|
65
72
|
async forkSession({ cwd, userId, topicName, groupId }) {
|
|
66
73
|
const entries = readConversation(userId, topicName, groupId);
|
|
67
|
-
const { sessionId, rolloutPath } = writeMaestroRollout({
|
|
74
|
+
const { sessionId, rolloutPath } = writeMaestroRollout({
|
|
75
|
+
cwd,
|
|
76
|
+
entries,
|
|
77
|
+
userId: String(userId),
|
|
78
|
+
metadata: {
|
|
79
|
+
topicName,
|
|
80
|
+
...(groupId !== undefined ? { groupId } : {}),
|
|
81
|
+
},
|
|
82
|
+
});
|
|
68
83
|
return { forkId: sessionId, rolloutPath };
|
|
69
84
|
},
|
|
70
85
|
// Per-session unlink — no globbing needed since paths are flat under
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAoB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AAEH,MAAM,SAAS,GAA2B;IACxC,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,uBAAuB;IACjC,gBAAgB,EAAE,uBAAuB;IACzC,cAAc,EAAE,qBAAqB;CACtC,CAAC;AAEF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAc,qBAAqB,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,QAAQ;IAEvB,gBAAgB,CAAC,CAAC;QAChB,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,CAAC;QACb,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,EAAE,qBAAqB;IACnC,cAAc,CAAC,CAAC;QACd,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,KAAK,EAAE,MAAM;QACvB,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;IAED,sEAAsE;IACtE,iEAAiE;IACjE,+DAA+D;IAC/D,YAAY,CAAC,IAAI;QACf,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC;YACrD,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/session-store.d.ts
CHANGED
|
@@ -15,6 +15,17 @@
|
|
|
15
15
|
* `[Tool: ...]` text annotations (those only happen on cross-agent rollouts,
|
|
16
16
|
* which by definition came from another provider's log).
|
|
17
17
|
*
|
|
18
|
+
* File layout (since v0.1.5):
|
|
19
|
+
* line 1 — `{"_meta": {...}}` header (cwd, userId, createdAt, sdkVersion,
|
|
20
|
+
* and any host-supplied `metadata`). Optional — files written by
|
|
21
|
+
* older SDK versions skip this line, and the loader treats them
|
|
22
|
+
* as meta-less without error.
|
|
23
|
+
* line 2…N — ProviderMessage per line (one user/assistant turn each).
|
|
24
|
+
*
|
|
25
|
+
* The meta header lets a future per-cwd indexer / forensic sweep recover
|
|
26
|
+
* locality without changing the on-disk directory structure (flat
|
|
27
|
+
* `<sessionId>.jsonl` stays). Hosts that don't care can ignore it.
|
|
28
|
+
*
|
|
18
29
|
* Two writer paths share the same file format:
|
|
19
30
|
* - `saveMaestroSession` — verbatim dump from the live loop.
|
|
20
31
|
* - `writeMaestroRollout` — synthesized from a provider-agnostic
|
|
@@ -30,7 +41,7 @@ import type { ConversationEntry } from "./storage/conversations.js";
|
|
|
30
41
|
* Resolves under `DATA_DIR` (which the host can pin via the
|
|
31
42
|
* `MAESTRO_DATA_DIR` env var — see `platform/config`). One canonical knob
|
|
32
43
|
* for "where SDK state lives" keeps the sessions, skill-usage counters,
|
|
33
|
-
* and
|
|
44
|
+
* and task stores all under the same root.
|
|
34
45
|
*
|
|
35
46
|
* Re-reads `DATA_DIR` on every call so a host that sets the env var late
|
|
36
47
|
* (before the first session save) still gets the override. The penalty
|
|
@@ -39,19 +50,89 @@ import type { ConversationEntry } from "./storage/conversations.js";
|
|
|
39
50
|
export declare function maestroSessionsDir(): string;
|
|
40
51
|
/** Absolute path of the JSONL backing a given sessionId. */
|
|
41
52
|
export declare function maestroSessionPath(sessionId: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Metadata stamped on the first line of every v0.1.5+ rollout JSONL.
|
|
55
|
+
*
|
|
56
|
+
* Captured at write time so a future indexer / forensic sweep can recover
|
|
57
|
+
* locality (which project, which user, when, which SDK version) without
|
|
58
|
+
* relying on the directory structure. Hosts pass an opaque
|
|
59
|
+
* `metadata: Record<string, unknown>` (e.g. `topicId`, `groupId`) which the
|
|
60
|
+
* SDK preserves verbatim — the SDK itself never reads it back.
|
|
61
|
+
*
|
|
62
|
+
* Format is stable across patch versions of v0.1.x; if a future major adds
|
|
63
|
+
* required fields, bump `version` and gate the loader behind it.
|
|
64
|
+
*/
|
|
65
|
+
export interface MaestroSessionMeta {
|
|
66
|
+
/** Schema version of the meta header itself (NOT the SDK version). */
|
|
67
|
+
version: 1;
|
|
68
|
+
/** Working directory the host associated with this session. */
|
|
69
|
+
cwd: string;
|
|
70
|
+
/** Optional host-supplied user identifier (string or numeric — see `AgentQueryOptions.userId`). */
|
|
71
|
+
userId?: string;
|
|
72
|
+
/** ISO-8601 timestamp captured at first write. Preserved across overwrites
|
|
73
|
+
* by the writer when a previous meta is read off disk. */
|
|
74
|
+
createdAt: string;
|
|
75
|
+
/** `MAESTRO_SDK_VERSION` at write time. Useful for cross-version debugging. */
|
|
76
|
+
sdkVersion: string;
|
|
77
|
+
/** Resolved skills directory the live loop loaded from (per-call override,
|
|
78
|
+
* env var, keyed profile, or `<cwd>/.skills` default). Recorded so a
|
|
79
|
+
* later forensic sweep can answer "which catalog did this session see?"
|
|
80
|
+
* without reconstructing the precedence chain. Updated on every save. */
|
|
81
|
+
skillsDir?: string;
|
|
82
|
+
/** Named skill profile the session was created with (corresponds to
|
|
83
|
+
* `AgentQueryOptions.skillKey`). Distinct from `skillsDir` because the
|
|
84
|
+
* resolved path can change across calls (env var flip, explicit
|
|
85
|
+
* override) while the conceptual profile identity stays constant. */
|
|
86
|
+
skillKey?: string;
|
|
87
|
+
/** Opaque host-controlled bag (topicId, groupId, anything). Passed through
|
|
88
|
+
* verbatim. The SDK only writes / reads it as a JSON value. */
|
|
89
|
+
metadata?: Record<string, unknown>;
|
|
90
|
+
}
|
|
42
91
|
/**
|
|
43
92
|
* Load the persisted ProviderMessage[] for a sessionId, or `null` if no
|
|
44
93
|
* file exists (i.e. this is a fresh session). Malformed lines are skipped
|
|
45
94
|
* with a warning rather than crashing the loop — a corrupt entry in the
|
|
46
95
|
* middle of history is better than losing a working session entirely.
|
|
96
|
+
*
|
|
97
|
+
* Backward-compat: files written by SDK <= 0.1.4 had no `_meta` header — the
|
|
98
|
+
* loader treats their first line as a regular message. Files written by v0.1.5+
|
|
99
|
+
* carry the meta header on line 1; we skip it here so callers only see real
|
|
100
|
+
* messages. Use `loadMaestroSessionMeta` for the meta payload.
|
|
47
101
|
*/
|
|
48
102
|
export declare function loadMaestroSession(sessionId: string): ProviderMessage[] | null;
|
|
103
|
+
/**
|
|
104
|
+
* Read just the `_meta` header for a sessionId, or `null` if the file is
|
|
105
|
+
* missing or has no meta header (pre-0.1.5 file). Useful for host-side
|
|
106
|
+
* indexers that want to attribute a session to its cwd / userId without
|
|
107
|
+
* loading the full message history.
|
|
108
|
+
*/
|
|
109
|
+
export declare function loadMaestroSessionMeta(sessionId: string): MaestroSessionMeta | null;
|
|
110
|
+
/**
|
|
111
|
+
* Inputs the writer accepts to build a `MaestroSessionMeta`. `createdAt` and
|
|
112
|
+
* `sdkVersion` are auto-populated when omitted. `version` is implicit — the
|
|
113
|
+
* writer always stamps `1` so callers can't accidentally claim a future
|
|
114
|
+
* schema number.
|
|
115
|
+
*/
|
|
116
|
+
export interface SaveSessionMetaInput {
|
|
117
|
+
cwd?: string;
|
|
118
|
+
userId?: string;
|
|
119
|
+
createdAt?: string;
|
|
120
|
+
skillsDir?: string;
|
|
121
|
+
skillKey?: string;
|
|
122
|
+
metadata?: Record<string, unknown>;
|
|
123
|
+
}
|
|
49
124
|
/**
|
|
50
125
|
* Overwrite (or create) the persisted session file with the provided
|
|
51
126
|
* messages. Each turn's final state is written atomically — partial-history
|
|
52
127
|
* writes can leave the next resume looking at a stale prefix.
|
|
128
|
+
*
|
|
129
|
+
* The optional `meta` input is merged with any existing on-disk meta header
|
|
130
|
+
* (preserving `createdAt`) and re-stamped on every save. Omitting `meta`
|
|
131
|
+
* still preserves a previously-written meta header — the SDK will re-read
|
|
132
|
+
* and re-write it transparently so a host that doesn't supply meta doesn't
|
|
133
|
+
* lose the one a previous turn wrote.
|
|
53
134
|
*/
|
|
54
|
-
export declare function saveMaestroSession(sessionId: string, messages: ProviderMessage[]): void;
|
|
135
|
+
export declare function saveMaestroSession(sessionId: string, messages: ProviderMessage[], meta?: SaveSessionMetaInput): void;
|
|
55
136
|
/**
|
|
56
137
|
* Remove a session's backing file and drop its in-memory file-state tracker.
|
|
57
138
|
* ENOENT on the unlink is silently ignored. Tracker drop is unconditional —
|
|
@@ -59,8 +140,9 @@ export declare function saveMaestroSession(sessionId: string, messages: Provider
|
|
|
59
140
|
*/
|
|
60
141
|
export declare function deleteMaestroSession(sessionId: string): void;
|
|
61
142
|
export interface MaestroRolloutOptions {
|
|
62
|
-
/** Working directory the resumed Maestro session will report.
|
|
63
|
-
*
|
|
143
|
+
/** Working directory the resumed Maestro session will report. The SDK
|
|
144
|
+
* `mkdir -p`s this path so subsequent loop operations can rely on it,
|
|
145
|
+
* and stamps it into the rollout's `_meta` header for later indexing. */
|
|
64
146
|
cwd: string;
|
|
65
147
|
/** Optional override; default = freshly generated UUIDv4. */
|
|
66
148
|
sessionId?: string;
|
|
@@ -68,6 +150,10 @@ export interface MaestroRolloutOptions {
|
|
|
68
150
|
pairs?: ChatPair[];
|
|
69
151
|
/** When `pairs` is omitted, the source UnifiedEvent log to digest. */
|
|
70
152
|
entries?: ConversationEntry[];
|
|
153
|
+
/** Optional host-side identifiers to fold into the rollout `_meta` header.
|
|
154
|
+
* Passed verbatim — the SDK does not interpret `metadata`'s shape. */
|
|
155
|
+
userId?: string;
|
|
156
|
+
metadata?: Record<string, unknown>;
|
|
71
157
|
}
|
|
72
158
|
export interface MaestroRolloutResult {
|
|
73
159
|
sessionId: string;
|
|
@@ -81,6 +167,11 @@ export interface MaestroRolloutResult {
|
|
|
81
167
|
*
|
|
82
168
|
* Used by `set_agent` cross-agent bridging (X → maestro) and by
|
|
83
169
|
* `maestroRegistry.forkSession`.
|
|
170
|
+
*
|
|
171
|
+
* Always writes a `_meta` header (v0.1.5+) — the rollout is the first line
|
|
172
|
+
* to disk for the new session, so there's nothing to preserve from a prior
|
|
173
|
+
* write. The meta carries `cwd`, optional `userId`/`metadata`, and the SDK
|
|
174
|
+
* version stamp.
|
|
84
175
|
*/
|
|
85
176
|
export declare function writeMaestroRollout(opts: MaestroRolloutOptions): MaestroRolloutResult;
|
|
86
177
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
|