@theokit/sdk 4.56.0 → 4.57.0

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.
Files changed (86) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/dist/{agent-PJMBK7HQ.cjs → agent-2T2EJIP6.cjs} +10 -10
  3. package/dist/{agent-PJMBK7HQ.cjs.map → agent-2T2EJIP6.cjs.map} +1 -1
  4. package/dist/{agent-K3PQBS7D.js → agent-ZIYCVEZL.js} +9 -9
  5. package/dist/{agent-K3PQBS7D.js.map → agent-ZIYCVEZL.js.map} +1 -1
  6. package/dist/agent-session-store-G2BMUZQV.js +7 -0
  7. package/dist/{agent-session-store-P6V3FINW.js.map → agent-session-store-G2BMUZQV.js.map} +1 -1
  8. package/dist/agent-session-store-WAKLOKWK.cjs +24 -0
  9. package/dist/{agent-session-store-ZJ3JSRS4.cjs.map → agent-session-store-WAKLOKWK.cjs.map} +1 -1
  10. package/dist/{chunk-HLPSLDGL.cjs → chunk-43GFJ5SD.cjs} +7 -7
  11. package/dist/{chunk-HLPSLDGL.cjs.map → chunk-43GFJ5SD.cjs.map} +1 -1
  12. package/dist/{chunk-KBXWEWKS.js → chunk-7TCRNXNK.js} +50 -30
  13. package/dist/chunk-7TCRNXNK.js.map +1 -0
  14. package/dist/{chunk-JHPGF3FP.cjs → chunk-BUIK7GUA.cjs} +22 -2
  15. package/dist/chunk-BUIK7GUA.cjs.map +1 -0
  16. package/dist/{chunk-6VLKVX7O.cjs → chunk-E7JHD6QJ.cjs} +4 -3
  17. package/dist/chunk-E7JHD6QJ.cjs.map +1 -0
  18. package/dist/{chunk-DZBSJX6J.js → chunk-FKMUFNQE.js} +21 -4
  19. package/dist/chunk-FKMUFNQE.js.map +1 -0
  20. package/dist/{chunk-BMAZLQQ4.js → chunk-G24KZRSA.js} +3 -3
  21. package/dist/{chunk-BMAZLQQ4.js.map → chunk-G24KZRSA.js.map} +1 -1
  22. package/dist/{chunk-ODTZ7HX3.js → chunk-G6EEYRDD.js} +3 -3
  23. package/dist/chunk-G6EEYRDD.js.map +1 -0
  24. package/dist/{chunk-MVAPK2BX.js → chunk-IACR5LEM.js} +3 -3
  25. package/dist/{chunk-MVAPK2BX.js.map → chunk-IACR5LEM.js.map} +1 -1
  26. package/dist/{chunk-V2UUGUY4.cjs → chunk-KKK3FZ4A.cjs} +6 -6
  27. package/dist/{chunk-V2UUGUY4.cjs.map → chunk-KKK3FZ4A.cjs.map} +1 -1
  28. package/dist/{chunk-M7UHYBEY.js → chunk-LEM2GOMI.js} +3 -3
  29. package/dist/{chunk-M7UHYBEY.js.map → chunk-LEM2GOMI.js.map} +1 -1
  30. package/dist/{chunk-LQYQHXIW.cjs → chunk-M2JWHKO6.cjs} +103 -83
  31. package/dist/chunk-M2JWHKO6.cjs.map +1 -0
  32. package/dist/{chunk-YPJ5NH5N.cjs → chunk-QI7WE46I.cjs} +29 -6
  33. package/dist/chunk-QI7WE46I.cjs.map +1 -0
  34. package/dist/{chunk-OHBIUXKM.js → chunk-WG7R5W6R.js} +4 -4
  35. package/dist/{chunk-OHBIUXKM.js.map → chunk-WG7R5W6R.js.map} +1 -1
  36. package/dist/{chunk-H5GOSXSC.cjs → chunk-X7O4255I.cjs} +4 -4
  37. package/dist/{chunk-H5GOSXSC.cjs.map → chunk-X7O4255I.cjs.map} +1 -1
  38. package/dist/{chunk-GJ6RK75E.js → chunk-YJDH3CKG.js} +29 -6
  39. package/dist/chunk-YJDH3CKG.js.map +1 -0
  40. package/dist/{chunk-CTCGWIUD.cjs → chunk-Z4BCLVTI.cjs} +5 -5
  41. package/dist/{chunk-CTCGWIUD.cjs.map → chunk-Z4BCLVTI.cjs.map} +1 -1
  42. package/dist/{compact-session-FUJDVF7B.js → compact-session-QGDNP45U.js} +4 -4
  43. package/dist/{compact-session-FUJDVF7B.js.map → compact-session-QGDNP45U.js.map} +1 -1
  44. package/dist/{compact-session-LEWF554G.cjs → compact-session-YHFQIXV5.cjs} +12 -12
  45. package/dist/{compact-session-LEWF554G.cjs.map → compact-session-YHFQIXV5.cjs.map} +1 -1
  46. package/dist/cron.cjs +9 -9
  47. package/dist/cron.js +8 -8
  48. package/dist/eval.cjs +8 -8
  49. package/dist/eval.js +7 -7
  50. package/dist/{fs-session-store-IN7JTTXD.js → fs-session-store-4BHGIWRE.js} +4 -4
  51. package/dist/{fs-session-store-IN7JTTXD.js.map → fs-session-store-4BHGIWRE.js.map} +1 -1
  52. package/dist/{fs-session-store-3MOJQGP2.cjs → fs-session-store-XZ7ZTB3A.cjs} +5 -5
  53. package/dist/{fs-session-store-3MOJQGP2.cjs.map → fs-session-store-XZ7ZTB3A.cjs.map} +1 -1
  54. package/dist/{index-manager-WC5ZVJWO.cjs → index-manager-AO4LJQZ4.cjs} +4 -4
  55. package/dist/{index-manager-WC5ZVJWO.cjs.map → index-manager-AO4LJQZ4.cjs.map} +1 -1
  56. package/dist/{index-manager-WBIMDVQT.js → index-manager-QDPIYIGV.js} +3 -3
  57. package/dist/{index-manager-WBIMDVQT.js.map → index-manager-QDPIYIGV.js.map} +1 -1
  58. package/dist/index.cjs +38 -38
  59. package/dist/index.js +11 -11
  60. package/dist/{inject-session-WQGGMCQY.cjs → inject-session-MLCJMYDG.cjs} +7 -7
  61. package/dist/{inject-session-WQGGMCQY.cjs.map → inject-session-MLCJMYDG.cjs.map} +1 -1
  62. package/dist/{inject-session-BJMJH5BX.js → inject-session-RBQZ45UM.js} +5 -5
  63. package/dist/{inject-session-BJMJH5BX.js.map → inject-session-RBQZ45UM.js.map} +1 -1
  64. package/dist/internal/persistence/session-transcript.d.cts +40 -1
  65. package/dist/internal/persistence/session-transcript.d.ts +40 -1
  66. package/dist/persistence.cjs +4 -4
  67. package/dist/persistence.js +1 -1
  68. package/dist/session-transcript-HF5GEU5M.cjs +63 -0
  69. package/dist/{session-transcript-JXHFTB7G.cjs.map → session-transcript-HF5GEU5M.cjs.map} +1 -1
  70. package/dist/session-transcript-P462ZRHX.js +6 -0
  71. package/dist/{session-transcript-AKDYYGXQ.js.map → session-transcript-P462ZRHX.js.map} +1 -1
  72. package/docs/error-codes.md +4 -4
  73. package/docs/harness-capability-map.md +1 -1
  74. package/package.json +5 -9
  75. package/dist/agent-session-store-P6V3FINW.js +0 -7
  76. package/dist/agent-session-store-ZJ3JSRS4.cjs +0 -24
  77. package/dist/chunk-6VLKVX7O.cjs.map +0 -1
  78. package/dist/chunk-DZBSJX6J.js.map +0 -1
  79. package/dist/chunk-GJ6RK75E.js.map +0 -1
  80. package/dist/chunk-JHPGF3FP.cjs.map +0 -1
  81. package/dist/chunk-KBXWEWKS.js.map +0 -1
  82. package/dist/chunk-LQYQHXIW.cjs.map +0 -1
  83. package/dist/chunk-ODTZ7HX3.js.map +0 -1
  84. package/dist/chunk-YPJ5NH5N.cjs.map +0 -1
  85. package/dist/session-transcript-AKDYYGXQ.js +0 -6
  86. package/dist/session-transcript-JXHFTB7G.cjs +0 -51
@@ -1,11 +1,11 @@
1
- import { enqueueSessionWrite, hydrateSession, persistTurnToTranscript, flushSessionWrites, appendSessionMessage, getSessionMessages, discardSession, clearSession } from './chunk-OHBIUXKM.js';
2
- import { IndexManager, writeSessionSummary, memoryDir, appendFact, readFacts, legacyMemoryJsonPath, memoryMdPath, appendFactToMarkdown } from './chunk-ODTZ7HX3.js';
1
+ import { enqueueSessionWrite, hydrateSession, persistTurnToTranscript, flushSessionWrites, appendSessionMessage, getSessionMessages, discardSession, clearSession } from './chunk-WG7R5W6R.js';
2
+ import { IndexManager, writeSessionSummary, memoryDir, MEMORY_KINDS, appendFact, readFacts, legacyMemoryJsonPath, memoryMdPath, appendFactToMarkdown } from './chunk-G6EEYRDD.js';
3
3
  import { loadHookConfig, warnOnce, currentPersonalityContext, warnPersonalitySwitchInsideFork } from './chunk-YMA4S2WO.js';
4
4
  import { extractCodePlugins } from './chunk-2SFBB54R.js';
5
5
  import { submit, emitRunEvent } from './chunk-SUKXXLWD.js';
6
6
  import { createOpenAiCompatibleRuntime } from './chunk-XN7NOENA.js';
7
- import { FsSessionStore } from './chunk-GJ6RK75E.js';
8
- import { discoverProviderPlugins, getConfiguredBaseUrl, httpRequest, isFixtureApiKey, presentProviderCredentialEnvVars, CircuitBreaker, buildDefaultSummarizer, shouldUseRealLocalRuntime, parseSseStream, resolveProviderChain, inferProviderFromApiKey, detectPrimaryProvider, warnProviderPrecedenceOnce, tryFirstEvent, relayStream, renderToolResultContentText } from './chunk-MVAPK2BX.js';
7
+ import { FsSessionStore } from './chunk-YJDH3CKG.js';
8
+ import { discoverProviderPlugins, getConfiguredBaseUrl, httpRequest, isFixtureApiKey, presentProviderCredentialEnvVars, CircuitBreaker, buildDefaultSummarizer, shouldUseRealLocalRuntime, parseSseStream, resolveProviderChain, inferProviderFromApiKey, detectPrimaryProvider, warnProviderPrecedenceOnce, tryFirstEvent, relayStream, renderToolResultContentText } from './chunk-IACR5LEM.js';
9
9
  import { resolveChildEnv } from './chunk-HKCKOAIO.js';
10
10
  import { DEFAULT_MAX_BYTES_PER_FILE, runDiscovery, truncateWithMarker } from './chunk-7FHZ4VQX.js';
11
11
  import { readVersionedJson, getTheokitHome, writeVersionedJson } from './chunk-UPRJR6IP.js';
@@ -18,7 +18,7 @@ import { withToolWhitelist, checkToolWhitelist } from './chunk-7AD3ZTZL.js';
18
18
  import { validateArtifactPath, PathTraversalError, safePathJoin } from './chunk-QARJGQSA.js';
19
19
  import { insideRoot, atOrInsideRoot } from './chunk-RIAM53CP.js';
20
20
  import { mapWithConcurrency } from './chunk-UC3HT2S4.js';
21
- import { expandTilde, defaultBaseDir } from './chunk-DZBSJX6J.js';
21
+ import { expandTilde, defaultBaseDir } from './chunk-FKMUFNQE.js';
22
22
  import { withFileLock } from './chunk-CV7XMBHP.js';
23
23
  import { withCwdMutex } from './chunk-Q5EWJPRY.js';
24
24
  import { atomicWriteJson } from './chunk-VF7EWVDG.js';
@@ -915,14 +915,21 @@ async function migrateLegacyJson(cwd, config) {
915
915
  }
916
916
 
917
917
  // src/internal/runtime/memory/memory-store.ts
918
- var REMEMBER_PATTERN = /^\s*Remember(?:\s+this\s+durable\s+preference)?\s*:\s*(.+)$/i;
918
+ var REMEMBER_PATTERN = /^\s*Remember(?:\s+this\s+durable\s+preference)?\s*(?:\((user|feedback|project|reference)\))?\s*:\s*(.+)$/i;
919
919
  function isMemoryWritePrompt(message) {
920
920
  return REMEMBER_PATTERN.test(message) || message.includes("Remember this durable");
921
921
  }
922
922
  function extractMemoryFact(message) {
923
923
  const match = REMEMBER_PATTERN.exec(message);
924
- if (match === null || match[1] === void 0) return "";
925
- return match[1].trim().replace(/\.$/, "");
924
+ if (match === null || match[2] === void 0) return "";
925
+ return match[2].trim().replace(/\.$/, "");
926
+ }
927
+ function extractMemoryKind(message) {
928
+ const match = REMEMBER_PATTERN.exec(message);
929
+ const declared = match?.[1];
930
+ if (declared === void 0) return void 0;
931
+ const lowered = declared.toLowerCase();
932
+ return MEMORY_KINDS.includes(lowered) ? lowered : void 0;
926
933
  }
927
934
  async function readMemoryFacts(cwd, config) {
928
935
  if (!config.enabled) return [];
@@ -932,7 +939,10 @@ async function readMemoryFacts(cwd, config) {
932
939
  async function appendMemoryFact(cwd, config, fact) {
933
940
  if (!config.enabled) return;
934
941
  await migrateLegacyJson(cwd, config);
935
- const sanitized = { text: redactSecrets(fact.text) };
942
+ const sanitized = {
943
+ text: redactSecrets(fact.text),
944
+ ...fact.kind === void 0 ? {} : { kind: fact.kind }
945
+ };
936
946
  await appendFact(cwd, config, sanitized);
937
947
  }
938
948
 
@@ -8964,8 +8974,12 @@ async function persistMemoryFactIfWritePrompt(workspaceCwd, memoryConfig, userTe
8964
8974
  if (!isMemoryWritePrompt(userText)) return;
8965
8975
  const fact = extractMemoryFact(userText);
8966
8976
  if (fact.length === 0) return;
8977
+ const kind = extractMemoryKind(userText);
8967
8978
  await safeCall(
8968
- () => appendMemoryFact(workspaceCwd, memoryConfig, { text: fact }),
8979
+ () => appendMemoryFact(workspaceCwd, memoryConfig, {
8980
+ text: fact,
8981
+ ...kind === void 0 ? {} : { kind }
8982
+ }),
8969
8983
  void 0,
8970
8984
  "memory write"
8971
8985
  );
@@ -9844,22 +9858,28 @@ function missingApiKeyMessage() {
9844
9858
  if (present.length === 0) return `${base}.`;
9845
9859
  return `${base}. ${present.join(" and ")} ${present.length === 1 ? "is" : "are"} set, but a provider credential is not read from the environment automatically \u2014 pass it explicitly, e.g. \`Agent.create({ apiKey: process.env.${present[0]}, ... })\`.`;
9846
9860
  }
9861
+ function providerNeedsCallerKey(provider) {
9862
+ if (provider === void 0) return true;
9863
+ const profile = getProviderProfile(provider);
9864
+ if (profile === void 0) return true;
9865
+ return profile.authType === "api_key";
9866
+ }
9847
9867
  async function createLocalAgent(options) {
9868
+ const provider = providerFromModelId(normalizeModel(options.model)?.id);
9848
9869
  const apiKey = resolveApiKey(options.apiKey);
9849
9870
  if (apiKey === void 0) {
9850
- throw new AuthenticationError(missingApiKeyMessage(), { code: "missing_api_key" });
9851
- }
9852
- const provider = providerFromModelId(normalizeModel(options.model)?.id);
9853
- const willFlowToProvider = keyWillFlowToProvider(apiKey, provider);
9854
- const shape = validateApiKeyShape(apiKey, {
9855
- strict: willFlowToProvider,
9856
- // `options.model` is already normalized by `runCreateUnderSpan`; `normalizeModel`
9857
- // here is the idempotent narrowing of the widened public type (`{id}` passes
9858
- // through by reference) — cleaner than an `as` cast.
9859
- ...willFlowToProvider ? { provider } : {}
9860
- });
9861
- if (shape.malformed) {
9862
- throw new AuthenticationError(shape.message, { code: "malformed_api_key" });
9871
+ if (providerNeedsCallerKey(provider)) {
9872
+ throw new AuthenticationError(missingApiKeyMessage(), { code: "missing_api_key" });
9873
+ }
9874
+ } else {
9875
+ const willFlowToProvider = keyWillFlowToProvider(apiKey, provider);
9876
+ const shape = validateApiKeyShape(apiKey, {
9877
+ strict: willFlowToProvider,
9878
+ ...willFlowToProvider ? { provider } : {}
9879
+ });
9880
+ if (shape.malformed) {
9881
+ throw new AuthenticationError(shape.message, { code: "malformed_api_key" });
9882
+ }
9863
9883
  }
9864
9884
  const agent = new LocalAgent(options);
9865
9885
  await agent.initialize();
@@ -10356,7 +10376,7 @@ var Agent = class _Agent {
10356
10376
  `No local agent "${agentId}" registered \u2014 compact targets local sessions.`
10357
10377
  );
10358
10378
  }
10359
- const { compactSessionTranscript, buildDefaultSummarizer: buildDefaultSummarizer2 } = await import('./compact-session-FUJDVF7B.js');
10379
+ const { compactSessionTranscript, buildDefaultSummarizer: buildDefaultSummarizer2 } = await import('./compact-session-QGDNP45U.js');
10360
10380
  const { cwd, model, store } = await openLocalStore(reg);
10361
10381
  return enqueueSessionWrite(
10362
10382
  cwd,
@@ -10392,7 +10412,7 @@ var Agent = class _Agent {
10392
10412
  `No local agent "${agentId}" registered \u2014 injectSessionTurn targets local sessions.`
10393
10413
  );
10394
10414
  }
10395
- const { injectSessionTurn } = await import('./inject-session-BJMJH5BX.js');
10415
+ const { injectSessionTurn } = await import('./inject-session-RBQZ45UM.js');
10396
10416
  const { cwd, model, store } = await openLocalStore(reg);
10397
10417
  await injectSessionTurn({
10398
10418
  store,
@@ -10431,7 +10451,7 @@ var Agent = class _Agent {
10431
10451
  `No local agent "${agentId}" registered \u2014 transcript targets local sessions.`
10432
10452
  );
10433
10453
  }
10434
- const { readSessionMessages } = await import('./agent-session-store-P6V3FINW.js');
10454
+ const { readSessionMessages } = await import('./agent-session-store-G2BMUZQV.js');
10435
10455
  const { store } = await openLocalStore(reg);
10436
10456
  return readSessionMessages(store, agentId);
10437
10457
  }
@@ -10519,13 +10539,13 @@ async function openLocalStore(reg) {
10519
10539
  const cwd = reg.cwd ?? process.cwd();
10520
10540
  const optModel = reg.options.model;
10521
10541
  const model = reg.model?.id ?? (typeof optModel === "string" ? optModel : optModel?.id) ?? "unknown";
10522
- const { FsSessionStore: FsSessionStore2 } = await import('./fs-session-store-IN7JTTXD.js');
10523
- const { defaultBaseDir: defaultBaseDir2, expandTilde: expandTilde2 } = await import('./session-transcript-AKDYYGXQ.js');
10542
+ const { FsSessionStore: FsSessionStore2 } = await import('./fs-session-store-4BHGIWRE.js');
10543
+ const { defaultBaseDir: defaultBaseDir2, expandTilde: expandTilde2 } = await import('./session-transcript-P462ZRHX.js');
10524
10544
  const configuredSessionDir = reg.options.local?.sessionDir ?? reg.options.local?.baseDir;
10525
10545
  const baseDir = configuredSessionDir !== void 0 ? expandTilde2(configuredSessionDir) : defaultBaseDir2();
10526
10546
  return { cwd, model, store: new FsSessionStore2({ baseDir, cwd }) };
10527
10547
  }
10528
10548
 
10529
10549
  export { Agent, AgentBuilder, DEFAULT_AGENTIC_MODEL_ID, MEMORY_EMBEDDING_ADAPTERS, Tool, ToolError, UsageAccumulator, computeCost, generateCronId, getPricingEntry, openRouterMemoryEmbeddingProviderAdapter };
10530
- //# sourceMappingURL=chunk-KBXWEWKS.js.map
10531
- //# sourceMappingURL=chunk-KBXWEWKS.js.map
10550
+ //# sourceMappingURL=chunk-7TCRNXNK.js.map
10551
+ //# sourceMappingURL=chunk-7TCRNXNK.js.map