@odla-ai/harness 0.3.0 → 0.4.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.
@@ -6,7 +6,7 @@ import {
6
6
  assertCodeBuildRecipe,
7
7
  createCodeRuntimeControlClient,
8
8
  runCodeRuntimeHeartbeatLoop
9
- } from "./chunk-U2OFMIAW.js";
9
+ } from "./chunk-ANNX7VGK.js";
10
10
  import {
11
11
  assertPinnedImage,
12
12
  selectContainerEngine
package/dist/node.cjs CHANGED
@@ -75,6 +75,7 @@ __export(node_exports, {
75
75
  runGoal: () => runGoal,
76
76
  runHarnessRunner: () => runHarnessRunner,
77
77
  runLeasedAttempt: () => runLeasedAttempt,
78
+ runtimeMemoryStore: () => runtimeMemoryStore,
78
79
  safeWorkspaceLabel: () => safeWorkspaceLabel,
79
80
  selectContainerEngine: () => selectContainerEngine,
80
81
  selectWinner: () => selectWinner,
@@ -982,6 +983,16 @@ function createCodeRuntimeControlClient(options) {
982
983
  }
983
984
  await call(`/registry/code/runtime/sessions/${validSessionId(sessionId)}/chat/events`, { eventId, event });
984
985
  },
986
+ recallMemories: async (sessionId, subjects, limit) => {
987
+ const response2 = await call(
988
+ `/registry/code/runtime/sessions/${validSessionId(sessionId)}/recall`,
989
+ { subjects: [...subjects], limit }
990
+ );
991
+ return Array.isArray(response2.memories) ? response2.memories : [];
992
+ },
993
+ rememberMemory: async (sessionId, memory) => {
994
+ await call(`/registry/code/runtime/sessions/${validSessionId(sessionId)}/remember`, memory);
995
+ },
985
996
  reportSessionFailure: async (sessionId, message2) => {
986
997
  if (!message2.trim() || message2.length > 2e3) throw new TypeError("invalid Code session failure");
987
998
  await call(`/registry/code/runtime/sessions/${validSessionId(sessionId)}/failure`, { message: message2 });
@@ -3430,6 +3441,31 @@ var CodePiRuntimeEngine = class {
3430
3441
  }
3431
3442
  };
3432
3443
 
3444
+ // src/code-runtime-memory.ts
3445
+ async function mutationId(memory) {
3446
+ const source = `${memory.subject} ${memory.kind} ${memory.body}`;
3447
+ const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(source));
3448
+ return Array.from(new Uint8Array(bytes), (byte) => byte.toString(16).padStart(2, "0")).join("").slice(0, 40);
3449
+ }
3450
+ function runtimeMemoryStore(control, sessionId) {
3451
+ const recall = control.recallMemories;
3452
+ const remember = control.rememberMemory;
3453
+ if (!recall || !remember) return null;
3454
+ return {
3455
+ recall: async (subjects, limit) => await recall.call(control, sessionId, subjects, limit),
3456
+ remember: async (memory) => {
3457
+ await remember.call(control, sessionId, {
3458
+ subject: memory.subject,
3459
+ kind: memory.kind,
3460
+ body: memory.body,
3461
+ ...memory.evidence ? { evidence: memory.evidence } : {},
3462
+ mutationId: await mutationId(memory)
3463
+ });
3464
+ return { ...memory, id: "", createdAt: Date.now() };
3465
+ }
3466
+ };
3467
+ }
3468
+
3433
3469
  // src/code-goal-outcome.ts
3434
3470
  function outcomeCloses(outcome) {
3435
3471
  return outcome.met && outcome.evidence !== void 0;
@@ -3762,6 +3798,7 @@ async function installedDependencies(repoRoot) {
3762
3798
  runGoal,
3763
3799
  runHarnessRunner,
3764
3800
  runLeasedAttempt,
3801
+ runtimeMemoryStore,
3765
3802
  safeWorkspaceLabel,
3766
3803
  selectContainerEngine,
3767
3804
  selectWinner,