@theokit/agents 13.0.0-next.1 → 13.0.0-next.10

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/dist/session.js CHANGED
@@ -133,12 +133,22 @@ var SessionInUseError = class extends TheokitAgentError2 {
133
133
  }
134
134
  sessionId;
135
135
  reason;
136
- registryRemoved;
136
+ registryOutcome;
137
137
  name = "SessionInUseError";
138
- constructor(sessionId, reason, registryRemoved = false) {
139
- super(`session "${sessionId}" is protected (${reason}). Deleting it would discard state something is still using. Stop the run, or pass { force: true } to delete anyway.` + (registryRemoved ? ` The registry entry was already removed before this was noticed \u2014 do not retry that half, only the transcript.` : "")), this.sessionId = sessionId, this.reason = reason, this.registryRemoved = registryRemoved;
138
+ constructor(sessionId, reason, registryOutcome) {
139
+ super(`session "${sessionId}" is protected (${reason}). Deleting it would discard state something is still using. Stop the run, or pass { force: true } to delete anyway.` + registryNote(registryOutcome)), this.sessionId = sessionId, this.reason = reason, this.registryOutcome = registryOutcome;
140
140
  }
141
141
  };
142
+ function registryNote(outcome) {
143
+ if (outcome === "removed") {
144
+ return ` The registry entry was already removed before this was noticed \u2014 do not retry that half, only the transcript.`;
145
+ }
146
+ if (outcome === "unconfirmed") {
147
+ return ` The registry removal was already attempted and reported nothing, so whether the entry is gone is unknown \u2014 verify it before retrying.`;
148
+ }
149
+ return "";
150
+ }
151
+ __name(registryNote, "registryNote");
142
152
  function listSessions(cwd, root = transcriptRoot3()) {
143
153
  const dir = projectDirFor(cwd, root);
144
154
  let entries;
@@ -161,8 +171,10 @@ function listSessions(cwd, root = transcriptRoot3()) {
161
171
  }
162
172
  const kind = classifySessionArtifact(entry, isDirectory);
163
173
  if (kind !== "transcript") continue;
174
+ const id = sessionIdOf(path);
164
175
  found.push({
165
- id: sessionIdOf(path, entry),
176
+ id,
177
+ idSource: id === void 0 ? "unavailable" : "transcript",
166
178
  transcript: path,
167
179
  modifiedAt
168
180
  });
@@ -170,8 +182,7 @@ function listSessions(cwd, root = transcriptRoot3()) {
170
182
  return found.sort((a, b) => b.modifiedAt.getTime() - a.modifiedAt.getTime());
171
183
  }
172
184
  __name(listSessions, "listSessions");
173
- function sessionIdOf(path, entry) {
174
- const stem = entry.replace(/\.jsonl$/, "");
185
+ function sessionIdOf(path) {
175
186
  let fd;
176
187
  try {
177
188
  fd = openSync(path, "r");
@@ -188,25 +199,31 @@ function sessionIdOf(path, entry) {
188
199
  } finally {
189
200
  if (fd !== void 0) closeSync(fd);
190
201
  }
191
- return stem;
202
+ return void 0;
192
203
  }
193
204
  __name(sessionIdOf, "sessionIdOf");
194
205
  var FIRST_RECORD_BYTES = 64 * 1024;
195
- function protectedTranscripts(cwd, root = transcriptRoot3()) {
206
+ function protectedTranscriptPaths(cwd, root = transcriptRoot3()) {
196
207
  const protectedBy = /* @__PURE__ */ new Map();
197
208
  const sessions = listSessions(cwd, root);
198
209
  const pointer = readPointer(cwd, root);
199
- if (pointer !== void 0) protectedBy.set(pointer, "resumable session pointer");
200
- if (sessions.length > 0 && !protectedBy.has(sessions[0].id)) {
201
- protectedBy.set(sessions[0].id, "most recent session");
210
+ if (pointer !== void 0) {
211
+ protectedBy.set(transcriptPath(root, cwd, pointer), "resumable session pointer");
212
+ }
213
+ if (sessions.length > 0 && !protectedBy.has(sessions[0].transcript)) {
214
+ protectedBy.set(sessions[0].transcript, "most recent session");
202
215
  }
203
216
  for (const session of sessions) {
204
217
  const hasWriter = sessionHasWriter(session.transcript);
205
- if (hasWriter) protectedBy.set(session.id, "active writer lease");
218
+ if (hasWriter) protectedBy.set(session.transcript, "active writer lease");
206
219
  }
207
220
  return protectedBy;
208
221
  }
209
- __name(protectedTranscripts, "protectedTranscripts");
222
+ __name(protectedTranscriptPaths, "protectedTranscriptPaths");
223
+ function transcriptOf(id, cwd, root = transcriptRoot3()) {
224
+ return transcriptPath(root, cwd, id);
225
+ }
226
+ __name(transcriptOf, "transcriptOf");
210
227
  function readPointer(cwd, root) {
211
228
  try {
212
229
  const id = readFileSync3(sessionPointerPath(cwd, root), "utf8").trim();
@@ -219,27 +236,29 @@ __name(readPointer, "readPointer");
219
236
  async function deleteSession(sessionId, options) {
220
237
  const root = options.root ?? transcriptRoot3();
221
238
  if (options.force !== true) {
222
- const reason = protectedTranscripts(options.cwd, root).get(sessionId);
239
+ const reason = protectedTranscriptPaths(options.cwd, root).get(transcriptOf(sessionId, options.cwd, root));
223
240
  if (reason !== void 0) throw new SessionInUseError(sessionId, reason);
224
241
  }
225
- let registryRemoved = false;
242
+ let registryOutcome = "not-attempted";
226
243
  let registryError;
227
244
  if (options.removeFromRegistry !== void 0) {
228
245
  try {
229
246
  const outcome = await awaitRegistryRemoval(options.removeFromRegistry(sessionId), sessionId, options.registryTimeoutMs);
230
- registryRemoved = outcome !== false;
247
+ if (outcome === false) registryOutcome = "nothing-to-remove";
248
+ else if (outcome === void 0) registryOutcome = "unconfirmed";
249
+ else registryOutcome = "removed";
231
250
  } catch (error) {
232
251
  return {
233
- registryRemoved: false,
252
+ registryOutcome: "failed",
234
253
  transcriptRemoved: false,
235
254
  registryError: error
236
255
  };
237
256
  }
238
257
  }
239
258
  if (options.force !== true) {
240
- const nowProtected = protectedTranscripts(options.cwd, root).get(sessionId);
259
+ const nowProtected = protectedTranscriptPaths(options.cwd, root).get(transcriptOf(sessionId, options.cwd, root));
241
260
  if (nowProtected !== void 0) {
242
- throw new SessionInUseError(sessionId, nowProtected, registryRemoved);
261
+ throw new SessionInUseError(sessionId, nowProtected, registryOutcome);
243
262
  }
244
263
  }
245
264
  let transcriptRemoved = false;
@@ -249,7 +268,7 @@ async function deleteSession(sessionId, options) {
249
268
  } catch {
250
269
  }
251
270
  return {
252
- registryRemoved,
271
+ registryOutcome,
253
272
  transcriptRemoved,
254
273
  registryError
255
274
  };
@@ -273,7 +292,7 @@ function forkBeforeUserTurn(srcId, newId, nth, options) {
273
292
  forkTranscript(src, dst, {
274
293
  beforeRecordIndex: selected.index,
275
294
  liveSessionPaths: [
276
- ...protectedTranscripts(options.cwd, root).keys()
295
+ ...protectedTranscriptPaths(options.cwd, root).keys()
277
296
  ].map((id) => transcriptPath(root, options.cwd, id))
278
297
  });
279
298
  return {
@@ -319,7 +338,7 @@ __name(reachableUserTurns, "reachableUserTurns");
319
338
  // src/session/gc/transcript-gc.ts
320
339
  import { rmSync as rmSync2 } from "fs";
321
340
  import { TheokitAgentError as TheokitAgentError3 } from "@theokit/sdk/errors";
322
- import { transcriptPath as transcriptPath2, transcriptRoot as transcriptRoot4 } from "@theokit/sdk/persistence";
341
+ import { transcriptRoot as transcriptRoot4 } from "@theokit/sdk/persistence";
323
342
  var FLOOR = {
324
343
  keepLast: 1,
325
344
  maxAgeDays: 1
@@ -349,7 +368,7 @@ var GCFloorError = class extends TheokitAgentError3 {
349
368
  super(`transcript GC: \`${field}\` must be at least ${String(FLOOR[field])}, received ${String(received)}. This is refused rather than clamped: a policy silently replaced by a different one is a policy nobody reviewed.`), this.field = field, this.received = received;
350
369
  }
351
370
  };
352
- function resolveProtection(builtin, provider) {
371
+ function resolveProtection(builtin, provider, cwd, root) {
353
372
  if (provider === void 0) return builtin;
354
373
  let extra;
355
374
  try {
@@ -357,8 +376,9 @@ function resolveProtection(builtin, provider) {
357
376
  } catch (cause) {
358
377
  throw new GCProtectionUnavailableError(cause);
359
378
  }
360
- const union = new Map(extra);
361
- for (const [id, reason] of builtin) union.set(id, reason);
379
+ const union = /* @__PURE__ */ new Map();
380
+ for (const [id, reason] of extra) union.set(transcriptOf(id, cwd, root), reason);
381
+ for (const [path, reason] of builtin) union.set(path, reason);
362
382
  return union;
363
383
  }
364
384
  __name(resolveProtection, "resolveProtection");
@@ -373,11 +393,11 @@ function planTranscriptGC(options) {
373
393
  const now = options.now ?? Date.now();
374
394
  const cutoff = now - options.maxAgeDays * 864e5;
375
395
  const sessions = listSessions(options.cwd, root);
376
- const protectedBy = resolveProtection(protectedTranscripts(options.cwd, root), options.protectedIds);
396
+ const protectedBy = resolveProtection(protectedTranscriptPaths(options.cwd, root), options.protectedIds, options.cwd, root);
377
397
  const candidates = [];
378
398
  const kept = [];
379
399
  for (const [index, session] of sessions.entries()) {
380
- const protection = protectedBy.get(session.id);
400
+ const protection = protectedBy.get(session.transcript);
381
401
  if (protection !== void 0) {
382
402
  kept.push({
383
403
  id: session.id,
@@ -421,33 +441,62 @@ function planTranscriptGC(options) {
421
441
  };
422
442
  }
423
443
  __name(planTranscriptGC, "planTranscriptGC");
444
+ async function releaseFromRegistry(candidate, options) {
445
+ if (candidate.id === void 0) {
446
+ return {
447
+ note: {
448
+ id: void 0,
449
+ message: UNNAMEABLE_COLLECTION
450
+ },
451
+ unlink: true
452
+ };
453
+ }
454
+ if (options.removeFromRegistry === void 0) return {
455
+ unlink: true
456
+ };
457
+ try {
458
+ await awaitRegistryRemoval(options.removeFromRegistry(candidate.id), candidate.id, options.registryTimeoutMs);
459
+ return {
460
+ unlink: true
461
+ };
462
+ } catch (error) {
463
+ return {
464
+ note: {
465
+ id: candidate.id,
466
+ message: `registry removal failed, transcript kept: ${error.message}`
467
+ },
468
+ unlink: false
469
+ };
470
+ }
471
+ }
472
+ __name(releaseFromRegistry, "releaseFromRegistry");
473
+ var UNNAMEABLE_COLLECTION = "transcript collected without a registry removal: its session id could not be read, and a fabricated one would name no session";
474
+ function recordRemoval(candidate, removed, orphaned) {
475
+ if (candidate.id === void 0) orphaned.push(candidate.transcript);
476
+ else removed.push(candidate.id);
477
+ }
478
+ __name(recordRemoval, "recordRemoval");
424
479
  async function runTranscriptGC(plan, options) {
425
480
  const removed = [];
481
+ const orphaned = [];
426
482
  const errors = [];
427
- const protectedNow = options.apply ? resolveProtection(protectedTranscripts(plan.cwd, plan.root), options.protectedIds) : /* @__PURE__ */ new Map();
483
+ const protectedNow = options.apply ? resolveProtection(protectedTranscriptPaths(plan.cwd, plan.root), options.protectedIds, plan.cwd, plan.root) : /* @__PURE__ */ new Map();
428
484
  for (const candidate of plan.candidates) {
429
- if (protectedNow.has(candidate.id)) continue;
485
+ if (protectedNow.has(candidate.transcript)) continue;
430
486
  if (!options.apply) {
431
- removed.push(candidate.id);
487
+ if (candidate.id === void 0) orphaned.push(candidate.transcript);
488
+ else removed.push(candidate.id);
432
489
  continue;
433
490
  }
434
- if (options.removeFromRegistry !== void 0) {
435
- try {
436
- await awaitRegistryRemoval(options.removeFromRegistry(candidate.id), candidate.id, options.registryTimeoutMs);
437
- } catch (error) {
438
- errors.push({
439
- id: candidate.id,
440
- message: `registry removal failed, transcript kept: ${error.message}`
441
- });
442
- continue;
443
- }
444
- }
491
+ const registry = await releaseFromRegistry(candidate, options);
492
+ if (registry.note !== void 0) errors.push(registry.note);
493
+ if (!registry.unlink) continue;
445
494
  try {
446
- rmSync2(transcriptPath2(plan.root, plan.cwd, candidate.id));
447
- removed.push(candidate.id);
495
+ rmSync2(candidate.transcript);
496
+ recordRemoval(candidate, removed, orphaned);
448
497
  } catch (error) {
449
498
  if (error.code === "ENOENT") {
450
- removed.push(candidate.id);
499
+ recordRemoval(candidate, removed, orphaned);
451
500
  continue;
452
501
  }
453
502
  errors.push({
@@ -459,6 +508,7 @@ async function runTranscriptGC(plan, options) {
459
508
  return {
460
509
  dryRun: !options.apply,
461
510
  removed,
511
+ orphaned,
462
512
  errors
463
513
  };
464
514
  }
@@ -483,13 +533,13 @@ function transcriptRootHint(found, previousRoot, env = process.env) {
483
533
  __name(transcriptRootHint, "transcriptRootHint");
484
534
 
485
535
  // src/session/thread-history.ts
486
- import { loadJsonl as loadJsonl2, transcriptPath as transcriptPath3, transcriptRoot as transcriptRoot5 } from "@theokit/sdk/persistence";
536
+ import { loadJsonl as loadJsonl2, transcriptPath as transcriptPath2, transcriptRoot as transcriptRoot5 } from "@theokit/sdk/persistence";
487
537
  var ABSENT = {
488
538
  state: "absent",
489
539
  messages: []
490
540
  };
491
541
  function readThreadHistory(sessionId, options) {
492
- const path = transcriptPath3(options.root ?? transcriptRoot5(), options.cwd, sessionId);
542
+ const path = transcriptPath2(options.root ?? transcriptRoot5(), options.cwd, sessionId);
493
543
  try {
494
544
  return {
495
545
  state: "present",
@@ -708,12 +758,13 @@ export {
708
758
  projectDirFor,
709
759
  projectDirMatches,
710
760
  projectsRoot,
711
- protectedTranscripts,
761
+ protectedTranscriptPaths,
712
762
  readThreadHistory,
713
763
  recordProjectDir,
714
764
  resolveProjectDir,
715
765
  runTranscriptGC,
716
766
  sessionPointerPath,
767
+ transcriptOf,
717
768
  transcriptRootHint
718
769
  };
719
770
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/session/session-lifecycle.ts","../src/session/gc/registry-remover.ts","../src/session/project-index.ts","../src/session/session-pointer.ts","../src/session/gc/transcript-gc.ts","../src/session/transcript-root-hint.ts","../src/session/thread-history.ts","../src/session/liveness-oracle.ts"],"mappings":"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","names":["closeSync","openSync","readFileSync","readdirSync","readSync","rmSync","statSync","join","TheokitAgentError","classifySessionArtifact","forkTranscript","loadJsonl","sessionHasWriter","transcriptPath","transcriptRoot","TheokitAgentError","SessionRegistryRemoverError","TheokitAgentError","name","sessionId","timeoutMs","String","DEFAULT_REGISTRY_TIMEOUT_MS","isThenable","value","then","awaitRegistryRemoval","outcome","Number","isFinite","timer","Promise","race","_resolve","reject","setTimeout","undefined","clearTimeout","readFileSync","writeFileSync","join","encodeProjectDir","transcriptRoot","CWD_SIDECAR","projectsRoot","root","transcriptRoot","join","projectDirFor","cwd","encodeProjectDir","recordProjectDir","sidecar","ensureSecureDir","writeFileSync","resolveProjectDir","encodedName","raw","readFileSync","trim","length","undefined","projectDirMatches","readFileSync","join","atomicWriteText","transcriptRoot","POINTER","sessionPointerPath","cwd","root","transcriptRoot","join","projectDirFor","loadOrCreateSessionId","mintId","existing","readFileSync","trim","length","sessionId","resumed","persistSessionId","target","ensureSecureDir","atomicWriteText","persisted","SessionInUseError","TheokitAgentError","name","sessionId","reason","registryRemoved","listSessions","cwd","root","transcriptRoot","dir","projectDirFor","entries","readdirSync","found","entry","path","join","isDirectory","modifiedAt","stats","statSync","mtime","kind","classifySessionArtifact","push","id","sessionIdOf","transcript","sort","a","b","getTime","stem","replace","fd","openSync","buffer","Buffer","alloc","FIRST_RECORD_BYTES","read","readSync","newline","indexOf","end","first","JSON","parse","toString","length","undefined","closeSync","protectedTranscripts","protectedBy","Map","sessions","pointer","readPointer","set","has","session","hasWriter","sessionHasWriter","readFileSync","sessionPointerPath","trim","deleteSession","options","force","get","registryError","removeFromRegistry","outcome","awaitRegistryRemoval","registryTimeoutMs","error","transcriptRemoved","nowProtected","rmSync","transcriptPath","forkBeforeUserTurn","srcId","newId","nth","Number","isInteger","String","src","dst","turns","reachableUserTurns","selected","forkTranscript","beforeRecordIndex","index","liveSessionPaths","keys","map","recordIndex","selectedText","text","GOAL_CONTINUATION_MARKER","textOfRecord","record","message","content","filter","block","type","isGenuineUserTurn","startsWith","records","loadJsonl","floor","i","subtype","rmSync","TheokitAgentError","transcriptPath","transcriptRoot","FLOOR","keepLast","maxAgeDays","GCProtectionUnavailableError","TheokitAgentError","name","reason","Error","message","String","code","isRetryable","cause","GCFloorError","field","received","resolveProtection","builtin","provider","undefined","extra","union","Map","id","set","planTranscriptGC","options","Number","isFinite","root","transcriptRoot","now","Date","cutoff","sessions","listSessions","cwd","protectedBy","protectedTranscripts","protectedIds","candidates","kept","index","session","entries","protection","get","push","age","modifiedAt","getTime","isNaN","transcript","runTranscriptGC","plan","removed","errors","protectedNow","apply","candidate","has","removeFromRegistry","awaitRegistryRemoval","registryTimeoutMs","error","rmSync","transcriptPath","dryRun","readdirSync","transcriptRootHint","found","previousRoot","env","process","undefined","current","THEOKIT_HOME","trim","length","projects","readdirSync","projectsRoot","String","loadJsonl","transcriptPath","transcriptRoot","ABSENT","state","messages","readThreadHistory","sessionId","options","path","transcriptPath","root","transcriptRoot","cwd","loadJsonl","err","isNotFound","reason","messageOf","code","Error","message","String","TheokitAgentError","DEFAULT_TRANSCRIPT_SAMPLES","encodeProjectDir","cwd","replace","LivenessBudgetError","TheokitAgentError","budget","String","assertUsableBudget","Number","isInteger","verdictFromRecordedCwds","cwds","probe","budgetLeft","unprobeable","at","error","found","liveness","reason","undefined","join","classifyProjects","encoded","opts","out","Map","remaining","path","answer","fs","exists","Error","message","recordedCwd","name","dir","projectsRoot","entries","listEntries","kind","samples","transcriptSamples","file","filter","f","endsWith","slice","record","JSON","parse","firstLine","length","includes","push","candidates","enumerationError","enumerate","candidatePaths","searchPool","pool","seen","Set","candidate","has","add","hit","set","recorded"]}
1
+ {"version":3,"sources":["../src/session/session-lifecycle.ts","../src/session/gc/registry-remover.ts","../src/session/project-index.ts","../src/session/session-pointer.ts","../src/session/gc/transcript-gc.ts","../src/session/transcript-root-hint.ts","../src/session/thread-history.ts","../src/session/liveness-oracle.ts"],"mappings":"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","names":["closeSync","openSync","readFileSync","readdirSync","readSync","rmSync","statSync","join","TheokitAgentError","classifySessionArtifact","forkTranscript","loadJsonl","sessionHasWriter","transcriptPath","transcriptRoot","TheokitAgentError","SessionRegistryRemoverError","TheokitAgentError","name","sessionId","timeoutMs","String","DEFAULT_REGISTRY_TIMEOUT_MS","isThenable","value","then","awaitRegistryRemoval","outcome","Number","isFinite","timer","Promise","race","_resolve","reject","setTimeout","undefined","clearTimeout","readFileSync","writeFileSync","join","encodeProjectDir","transcriptRoot","CWD_SIDECAR","projectsRoot","root","transcriptRoot","join","projectDirFor","cwd","encodeProjectDir","recordProjectDir","sidecar","ensureSecureDir","writeFileSync","resolveProjectDir","encodedName","raw","readFileSync","trim","length","undefined","projectDirMatches","readFileSync","join","atomicWriteText","transcriptRoot","POINTER","sessionPointerPath","cwd","root","transcriptRoot","join","projectDirFor","loadOrCreateSessionId","mintId","existing","readFileSync","trim","length","sessionId","resumed","persistSessionId","target","ensureSecureDir","atomicWriteText","persisted","SessionInUseError","TheokitAgentError","name","sessionId","reason","registryOutcome","registryNote","outcome","listSessions","cwd","root","transcriptRoot","dir","projectDirFor","entries","readdirSync","found","entry","path","join","isDirectory","modifiedAt","stats","statSync","mtime","kind","classifySessionArtifact","id","sessionIdOf","push","idSource","undefined","transcript","sort","a","b","getTime","fd","openSync","buffer","Buffer","alloc","FIRST_RECORD_BYTES","read","readSync","newline","indexOf","end","first","JSON","parse","toString","length","closeSync","protectedTranscriptPaths","protectedBy","Map","sessions","pointer","readPointer","set","transcriptPath","has","session","hasWriter","sessionHasWriter","transcriptOf","readFileSync","sessionPointerPath","trim","deleteSession","options","force","get","registryError","removeFromRegistry","awaitRegistryRemoval","registryTimeoutMs","error","transcriptRemoved","nowProtected","rmSync","forkBeforeUserTurn","srcId","newId","nth","Number","isInteger","String","src","dst","turns","reachableUserTurns","selected","forkTranscript","beforeRecordIndex","index","liveSessionPaths","keys","map","recordIndex","selectedText","text","GOAL_CONTINUATION_MARKER","textOfRecord","record","message","content","filter","block","type","isGenuineUserTurn","startsWith","records","loadJsonl","floor","i","subtype","rmSync","TheokitAgentError","transcriptRoot","FLOOR","keepLast","maxAgeDays","GCProtectionUnavailableError","TheokitAgentError","name","reason","Error","message","String","code","isRetryable","cause","GCFloorError","field","received","resolveProtection","builtin","provider","cwd","root","undefined","extra","union","Map","id","set","transcriptOf","path","planTranscriptGC","options","Number","isFinite","transcriptRoot","now","Date","cutoff","sessions","listSessions","protectedBy","protectedTranscriptPaths","protectedIds","candidates","kept","index","session","entries","protection","get","transcript","push","age","modifiedAt","getTime","isNaN","releaseFromRegistry","candidate","note","UNNAMEABLE_COLLECTION","unlink","removeFromRegistry","awaitRegistryRemoval","registryTimeoutMs","error","recordRemoval","removed","orphaned","runTranscriptGC","plan","errors","protectedNow","apply","has","registry","rmSync","dryRun","readdirSync","transcriptRootHint","found","previousRoot","env","process","undefined","current","THEOKIT_HOME","trim","length","projects","readdirSync","projectsRoot","String","loadJsonl","transcriptPath","transcriptRoot","ABSENT","state","messages","readThreadHistory","sessionId","options","path","transcriptPath","root","transcriptRoot","cwd","loadJsonl","err","isNotFound","reason","messageOf","code","Error","message","String","TheokitAgentError","DEFAULT_TRANSCRIPT_SAMPLES","encodeProjectDir","cwd","replace","LivenessBudgetError","TheokitAgentError","budget","String","assertUsableBudget","Number","isInteger","verdictFromRecordedCwds","cwds","probe","budgetLeft","unprobeable","at","error","found","liveness","reason","undefined","join","classifyProjects","encoded","opts","out","Map","remaining","path","answer","fs","exists","Error","message","recordedCwd","name","dir","projectsRoot","entries","listEntries","kind","samples","transcriptSamples","file","filter","f","endsWith","slice","record","JSON","parse","firstLine","length","includes","push","candidates","enumerationError","enumerate","candidatePaths","searchPool","pool","seen","Set","candidate","has","add","hit","set","recorded"]}
@@ -0,0 +1,181 @@
1
+ import { TrustPosture, SettingSource } from '@theokit/sdk';
2
+ import { TheokitAgentError } from '@theokit/sdk/errors';
3
+
4
+ /**
5
+ * M68 — the trust gate for `settingSources`.
6
+ *
7
+ * ## The defect this module closes
8
+ *
9
+ * `settingSources` enables on-disk config discovery. `'user'` reads `~/.theokit/` — the operator's
10
+ * own machine, which no third party controls. `'project'` reads `<cwd>/.theokit/`, **including
11
+ * `hooks.json`, which executes shell**.
12
+ *
13
+ * The previous API took `readonly SettingSource[]`, and its JSDoc justified the risk this way:
14
+ * *"it is opt-in because `.theokit/` is the app's own repo (informed consent)"*. That premise holds
15
+ * for a web app whose `cwd` is its own deploy. It does **not** hold for the class of product this
16
+ * framework addresses — an agent whose `cwd` is a repository the user just cloned. There `.theokit/`
17
+ * is attacker-controlled content, and enabling `'project'` is remote code execution on the first
18
+ * `build()`.
19
+ *
20
+ * Documenting it did not prevent it. The measured consumer (TheoCode) did not trust the API: it
21
+ * gated from the outside, with a `posture.allows` of its own (`chat.ts:386`, comment B-008). It
22
+ * already **had** the right decision and could not pass it through, because the API only accepted
23
+ * strings. The gate existed on its side and evaporated at the boundary.
24
+ *
25
+ * ## The evidence is the SDK's, not one invented here
26
+ *
27
+ * `TrustPosture` is `@theokit/sdk`'s own trust primitive, and `recordWiring`'s doc says *"a posture
28
+ * is the only thing in this package that retains a capability"*. A bespoke type would make two trust
29
+ * grammars coexist and drift apart (ADR 0063).
30
+ */
31
+ /**
32
+ * The framework's capability vocabulary — deliberately a single name (ADR 0065).
33
+ *
34
+ * `allows` is all-or-nothing in the SDK: every declared `K` gets the same boolean. A finer
35
+ * vocabulary (`hooks`, `skills`, `subagents`, `mcp`) would promise the consumer it can gate one
36
+ * without gating the other, and the primitive does not deliver that. An API that suggests a
37
+ * distinction the runtime does not make teaches the wrong thing, and the error only surfaces when
38
+ * somebody depends on the distinction.
39
+ */
40
+ type SettingSourceCapability = 'projectSettings';
41
+ /** Authorization to read config from the working directory. Requires the posture, never a claim. */
42
+ interface ProjectSettingsGrant {
43
+ /**
44
+ * Typically the output of `resolveTrustPosture` — which is what gives it `source` (`'env' |
45
+ * 'store' | 'default'`) and therefore a refusal that says WHERE the decision came from instead of
46
+ * merely denying.
47
+ */
48
+ readonly trustedBy: TrustPosture<SettingSourceCapability>;
49
+ }
50
+ /**
51
+ * Which on-disk config roots the agent may read.
52
+ *
53
+ * The asymmetry is the design: `user` is a boolean because `~/.theokit/` belongs to the operator;
54
+ * `project` requires evidence because `<cwd>/.theokit/` may not. Omitting a root is not enabling it
55
+ * — never "enabling without a gate". The asymmetry is inherited from the SDK itself, whose
56
+ * `TrustPostureInput.envOverride` documents that `false` and `undefined` both mean "the operator did
57
+ * not turn it on", not "turned it off".
58
+ */
59
+ interface SettingSourcesSelection {
60
+ /** `~/.theokit/` — the operator's machine. No gate: no third party controls it. */
61
+ readonly user?: boolean;
62
+ /** `<cwd>/.theokit/` — controlled by whoever wrote the open repository. Requires evidence. */
63
+ readonly project?: ProjectSettingsGrant;
64
+ /**
65
+ * `<cwd>/.claude/` — a FOREIGN configuration dialect, read only once declared
66
+ * (`usetheokit/theokit-sdk#524`).
67
+ *
68
+ * ## Two questions, and which half of this field answers each
69
+ *
70
+ * The SDK's docblock separates them, and the separation is the whole point of `compatSources`:
71
+ * a trust gate answers *"do I trust the code in this directory?"*; importing another product's
72
+ * configuration answers *"do I want it imported into this one?"*. They come apart in the ordinary
73
+ * case, because `.claude/` is populated in exactly the repository one trusts most — for a
74
+ * different tool, by a teammate who never heard of this runtime.
75
+ *
76
+ * So the two are answered by two different things here, and it matters which:
77
+ *
78
+ * | Question | Answered by |
79
+ * |---|---|
80
+ * | do I want the foreign dialect imported? | **declaring this field at all** — omitting is not enabling |
81
+ * | do I trust this directory's code to run? | the `TrustPosture` inside the grant |
82
+ *
83
+ * ## Why the grant is `ProjectSettingsGrant` and not a vocabulary of its own
84
+ *
85
+ * Not because the two questions are the same — they are not. Because a separate grant could not
86
+ * carry the distinction even if it existed: `TrustPosture.allows` is `Record<K, boolean>` and the
87
+ * SDK documents every value as moving together with the level, so a `'foreignDialects'` capability
88
+ * beside `'projectSettings'` would promise an operator they can grant one and withhold the other,
89
+ * and `resolveTrustPosture` would hand back the same boolean for both. That is precisely the
90
+ * failure ADR 0065 exists to prevent, and inventing the second name would commit it while looking
91
+ * like rigour.
92
+ *
93
+ * The consent half is therefore carried by the declaration, which is a real and sufficient
94
+ * boundary: an operator who trusts a repository completely still reads no `.claude/` until they
95
+ * write this field. What the grant adds on top is stricter than the SDK — there, listing a dialect
96
+ * is enough — and the extra strictness is deliberate: this reads a `hooks.json` that executes
97
+ * shell out of a directory that usually arrived with the clone.
98
+ */
99
+ readonly claudeCode?: ProjectSettingsGrant & {
100
+ /**
101
+ * #686 — WHICH surfaces of the foreign root to import. Absent means all of them, which is what
102
+ * every caller before this meant and still means.
103
+ *
104
+ * The distinction is the reason the grant exists. `.claude/` usually arrives with the clone and
105
+ * its `hooks.json` executes shell, so "take the skills, refuse the hooks" is the ordinary thing
106
+ * to want — and before this the only choices were all of it or none of it.
107
+ *
108
+ * Requires `@theokit/sdk >= 5.4.0`, which is where the narrowed form landed. On an older SDK the
109
+ * runtime drops an unrecognised shape in SILENCE, so declaring it there would import nothing at
110
+ * all rather than importing less — refused at resolve time instead.
111
+ */
112
+ readonly import?: readonly CompatSurface[];
113
+ };
114
+ }
115
+ /**
116
+ * The surfaces a foreign configuration root can contribute.
117
+ *
118
+ * Written out rather than imported, for the same reason as the `claude-code` literal below:
119
+ * `CompatSurface` does not exist in `@theokit/sdk@4.52.1`, this package's declared floor, and a gate
120
+ * that cannot build against its own minimum dependency is worse than a constant that has been
121
+ * checked. Verified against the published 5.4.0 `.d.ts`, where the union is
122
+ * `"hooks" | "plugins" | "skills" | "subagents"` — note `subagents`, not `agents`.
123
+ */
124
+ type CompatSurface = 'commands' | 'hooks' | 'plugins' | 'skills' | 'subagents';
125
+ /** What `resolveCompatSources` returns: the whole root, or the root narrowed to some surfaces. */
126
+ type ResolvedCompatSource = 'claude-code' | {
127
+ readonly kind: 'claude-code';
128
+ readonly import: readonly CompatSurface[];
129
+ };
130
+ /**
131
+ * Refusal to read the working directory for lack of trust.
132
+ *
133
+ * Descends from `TheokitAgentError` because typed errors are an unbreakable rule here — and because
134
+ * `isTransientError` only sees this hierarchy. A class extending plain `Error` would be invisible to
135
+ * the predicate that separates recoverable from unrecoverable (the defect M67 fixed in five
136
+ * classes).
137
+ */
138
+ declare class UntrustedSettingSourceError extends TheokitAgentError {
139
+ /** Where the trust decision came from: `'env' | 'store' | 'default'`. */
140
+ readonly trustSource: string;
141
+ /** The refused capability. */
142
+ readonly capability: SettingSourceCapability;
143
+ readonly name = "UntrustedSettingSourceError";
144
+ constructor(message: string,
145
+ /** Where the trust decision came from: `'env' | 'store' | 'default'`. */
146
+ trustSource: string,
147
+ /** The refused capability. */
148
+ capability: SettingSourceCapability);
149
+ }
150
+ /**
151
+ * Translate the declared selection into the `SettingSource`s the SDK accepts, refusing what the
152
+ * posture does not authorize.
153
+ *
154
+ * Refuses rather than ignores (ADR 0064). Ignoring would leave the product running in the belief
155
+ * that the repository's hooks are active — a silent failure mode, on the wrong side. The SDK already
156
+ * picked that side for the same problem: `recordWiring` throws `UngatedCapabilityError` when
157
+ * somebody registers a capability the posture does not gate.
158
+ *
159
+ * @throws {UntrustedSettingSourceError} when `project` is requested and the posture does not grant it.
160
+ */
161
+ declare function resolveSettingSources(selection: SettingSourcesSelection | undefined): readonly SettingSource[];
162
+ /**
163
+ * The foreign configuration dialects this layer forwards, once the posture authorises them.
164
+ *
165
+ * ## Why it is a separate function and the same vocabulary
166
+ *
167
+ * Separate because the SDK takes them on a separate option (`local.compatSources`); the same
168
+ * `ProjectSettingsGrant` because the thing being authorised is identical — reading a `hooks.json`
169
+ * that executes shell out of a directory the operator does not necessarily control.
170
+ *
171
+ * ## What it deliberately does NOT do
172
+ *
173
+ * Validate the source NAME. The SDK DROPS an unrecognised name rather than turning it into
174
+ * `<cwd>/<name>`, so a typo fails closed there; turning that into a throw here would convert a safe
175
+ * default into a crash. This gate decides authorisation, never vocabulary.
176
+ *
177
+ * @throws {UntrustedSettingSourceError} when a source is requested and the posture does not grant it.
178
+ */
179
+ declare function resolveCompatSources(selection: SettingSourcesSelection | undefined): readonly ResolvedCompatSource[];
180
+
181
+ export { type CompatSurface as C, type ProjectSettingsGrant as P, type ResolvedCompatSource as R, type SettingSourcesSelection as S, UntrustedSettingSourceError as U, type SettingSourceCapability as a, resolveSettingSources as b, resolveCompatSources as r };
package/dist/testing.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { AgentOutputEvent } from '@theokit/presenter';
2
2
  import { WireChunk } from '@theokit/presenter/wire';
3
- import { A as AgentDefinition } from './define-agent-BL3jMyJi.js';
3
+ import { A as AgentDefinition } from './define-agent-Dp6e7chT.js';
4
4
  import '@theokit/sdk';
5
5
  import 'zod';
6
- import './agent-compiler-uhleFZj_.js';
6
+ import './agent-compiler-CvYfM-0t.js';
7
7
  import '@theokit/sdk/errors';
8
8
  import './types-C16Wuh9E.js';
9
+ import './setting-sources-gate-tadmHT0c.js';
9
10
  import './hook-handlers-Cw2FsnE5.js';
10
11
 
11
12
  /**
package/dist/testing.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  compileAgentDefinition
3
- } from "./chunk-OAQEWLQJ.js";
3
+ } from "./chunk-43O2CCZR.js";
4
4
  import {
5
5
  __name
6
6
  } from "./chunk-Z4QWC7IK.js";
package/dist/tools.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  export { CatastrophicCommandError, CommandPolicy, ContextMatchError, ContextMatchReason, CreateApplyPatchToolOptions, CreateBraveWebSearchAdapterOptions, CreateCurrentTimeToolOptions, CreateEditFileToolOptions, CreateGenericHttpSearchAdapterOptions, CreateGitDiffToolOptions, CreateGitStatusToolOptions, CreateGlobToolOptions, CreateInteractiveShellToolOptions, CreateListDirToolOptions, CreateReadFileToolOptions, CreateRunVitestToolOptions, CreateSearchTextToolOptions, CreateShellToolOptions, CreateViewImageToolOptions, CreateWebFetchToolOptions, CreateWebSearchToolOptions, CreateWriteFileToolOptions, DEFAULT_MAX_IMAGE_BYTES, DEFAULT_TOOL_GUIDANCE, EnvContextOptions, PlanModeTool, PlanModeToolOptions, PlanModeToolWithStore, PlanNode, QuestionTool, QuestionToolOptions, ReadTracker, ReasoningTools, RedirectBlockedError, RepoMapOptions, ResolveAndScreenOptions, ScreenedFetchOptions, SessionArtifactStore, SessionArtifactStoreOptions, SsrfBlockedError, TodoItem, TodolistTool, ToolGuidanceMap, TruncationMode, TruncationOptions, TruncationResult, VitestSummary, WebSearchCallback, WebSearchResult, buildEnvContext, buildRepoMap, catastrophicShellReason, commandDenialReason, createApplyPatchTool, createBraveWebSearchAdapter, createCurrentTimeTool, createEditFileTool, createGenericHttpSearchAdapter, createGitDiffTool, createGitStatusTool, createGlobTool, createInteractiveShellTool, createListDirTool, createPlanModeTool, createQuestionTool, createReadFileTool, createRunVitestTool, createSearchTextTool, createSessionArtifactStore, createShellTool, createTodolistTool, createUpdatePlanTool, createViewImageTool, createWebFetchTool, createWebSearchTool, createWriteFileTool, createWriteStdinTool, denyCatastrophicCommands, formatCode, formatDiff, formatError, formatFileList, injectGuidance, isBlockedIp, isCommandAllowed, renderToolList, replaceUnique, resolveAndScreen, screenedFetch, todoItemsToPlanNodes, truncateOutput, withDefaultGuidance, withDescription, withName, withShellExitGuidance, withToolResultGuidance } from '@theokit/sdk-tools';
2
2
  import * as _theokit_sdk from '@theokit/sdk';
3
3
  import { TheokitAgentError } from '@theokit/sdk/errors';
4
- import { D as DelegationTarget, a as DelegateOptions } from './delegation-scoring--OiOTcAW.js';
4
+ import { D as DelegationTarget, a as DelegateOptions } from './delegation-scoring-BZdtCdMN.js';
5
5
  import '@theokit/sdk/retry';
6
- import './agent-compiler-uhleFZj_.js';
6
+ import './agent-compiler-CvYfM-0t.js';
7
7
  import './types-C16Wuh9E.js';
8
8
  import 'zod';
9
+ import './setting-sources-gate-tadmHT0c.js';
9
10
  import '@theokit/presenter/wire';
10
11
  import './hook-handlers-Cw2FsnE5.js';
11
12
 
package/dist/tools.js CHANGED
@@ -4,9 +4,9 @@ import {
4
4
  DelegationTimeoutError,
5
5
  delegate,
6
6
  isPort
7
- } from "./chunk-GHRHJPJS.js";
7
+ } from "./chunk-FXQF7LS3.js";
8
8
  import "./chunk-RKWCXVYG.js";
9
- import "./chunk-OAQEWLQJ.js";
9
+ import "./chunk-43O2CCZR.js";
10
10
  import "./chunk-OXNDJSAJ.js";
11
11
  import {
12
12
  __name