@deepstrike/wasm 0.2.80 → 0.2.81

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.
@@ -1309,6 +1309,7 @@ export class CanonicalRunnerRuntime {
1309
1309
  ...(event.key ? { key: event.key } : {}),
1310
1310
  ...(event.tokens !== undefined ? { tokens: Number(event.tokens) } : {}),
1311
1311
  ...(event.pinned ? { pinned: true } : {}),
1312
+ ...(event.inherited_from ? { inherited_from: event.inherited_from } : {}),
1312
1313
  }],
1313
1314
  },
1314
1315
  };
@@ -1607,6 +1608,7 @@ export class CanonicalRunnerRuntime {
1607
1608
  ...(event.key ? { key: event.key } : {}),
1608
1609
  ...(event.tokens !== undefined ? { tokens: Number(event.tokens) } : {}),
1609
1610
  ...(event.pinned ? { pinned: true } : {}),
1611
+ ...(event.inherited_from ? { inherited_from: event.inherited_from } : {}),
1610
1612
  });
1611
1613
  return true;
1612
1614
  case "set_available_skills":
@@ -84,6 +84,11 @@ function projectKernelObservation(obs, turn, opts = {}) {
84
84
  ...(obs.history && obs.history.length > 0 ? { history: obs.history } : {}),
85
85
  ...(obs.history_items && obs.history_items.length > 0 ? { history_items: obs.history_items } : {}),
86
86
  ...(obs.history_items_omitted ? { history_items_omitted: obs.history_items_omitted } : {}),
87
+ ...(obs.edges && obs.edges.length > 0 ? { edges: obs.edges } : {}),
88
+ ...(obs.edges_omitted ? { edges_omitted: obs.edges_omitted } : {}),
89
+ ...(obs.waste_items && obs.waste_items.length > 0 ? { waste_items: obs.waste_items } : {}),
90
+ ...(obs.external_edges && obs.external_edges.length > 0 ? { external_edges: obs.external_edges } : {}),
91
+ ...(obs.parent_items_used && obs.parent_items_used.length > 0 ? { parent_items_used: obs.parent_items_used } : {}),
87
92
  };
88
93
  case "rollbacked":
89
94
  return {
@@ -1,5 +1,5 @@
1
1
  import type { ModelMessage, RenderedContext, ToolCall, ToolExecutionResult, ToolSchema } from "../types.js";
2
- import type { ContextHistoryItemRecord, ContextItemRecord, ContextOriginTally, RollbackReason } from "./session-log.js";
2
+ import type { ContextExternalEdge, ContextExternalItem, ContextHistoryItemRecord, ContextItemEdge, ContextItemRecord, ContextOriginTally, RollbackReason } from "./session-log.js";
3
3
  interface TaskUpdate {
4
4
  plan?: string[];
5
5
  currentStep?: number;
@@ -139,6 +139,11 @@ export interface KernelObservation {
139
139
  history?: ContextOriginTally[];
140
140
  history_items?: ContextHistoryItemRecord[];
141
141
  history_items_omitted?: number;
142
+ edges?: ContextItemEdge[];
143
+ edges_omitted?: number;
144
+ waste_items?: number[];
145
+ external_edges?: ContextExternalEdge[];
146
+ parent_items_used?: ContextExternalItem[];
142
147
  archived_count?: number;
143
148
  turn?: number;
144
149
  checkpoint_history_len?: number;
@@ -766,6 +766,7 @@ export class RuntimeRunner {
766
766
  ...(entry.key ? { key: entry.key } : {}),
767
767
  tokens: entry.tokens ?? Math.max(1, Math.ceil(entry.content.length / 4)),
768
768
  ...(entry.pinned ? { pinned: true } : {}),
769
+ ...(entry.inherited_from ? { inherited_from: entry.inherited_from } : {}),
769
770
  });
770
771
  }
771
772
  if (this.opts.initialMemory) {
@@ -77,7 +77,7 @@ export declare const SESSION_EVENT_REGISTRY: {
77
77
  };
78
78
  readonly context_lifecycle_reported: {
79
79
  readonly required: readonly ["cache_loss_tokens", "knowledge_entries", "knowledge_referenced", "recall_expanded", "recalled", "regret", "turn", "waste_tokens"];
80
- readonly optional: readonly ["history", "history_items", "history_items_omitted", "items"];
80
+ readonly optional: readonly ["edges", "edges_omitted", "external_edges", "history", "history_items", "history_items_omitted", "items", "parent_items_used", "waste_items"];
81
81
  };
82
82
  readonly suspended: {
83
83
  readonly required: readonly ["reason", "turn"];
@@ -21,7 +21,7 @@ export const SESSION_EVENT_REGISTRY = {
21
21
  rollbacked: { required: ["checkpoint_history_len", "turn"], optional: ["reason"] },
22
22
  capability_changed: { required: ["added", "removed", "turn"], optional: ["capability_id", "change_kind", "mount_reason", "mounted_by", "version"] },
23
23
  context_renewed: { required: ["handoff_ref", "sprint", "turn"], optional: [] },
24
- context_lifecycle_reported: { required: ["cache_loss_tokens", "knowledge_entries", "knowledge_referenced", "recall_expanded", "recalled", "regret", "turn", "waste_tokens"], optional: ["history", "history_items", "history_items_omitted", "items"] },
24
+ context_lifecycle_reported: { required: ["cache_loss_tokens", "knowledge_entries", "knowledge_referenced", "recall_expanded", "recalled", "regret", "turn", "waste_tokens"], optional: ["edges", "edges_omitted", "external_edges", "history", "history_items", "history_items_omitted", "items", "parent_items_used", "waste_items"] },
25
25
  suspended: { required: ["reason", "turn"], optional: ["pending_calls"] },
26
26
  resumed: { required: ["turn"], optional: ["approved", "denied"] },
27
27
  tool_gated: { required: ["call_id", "reason", "tool", "turn"], optional: [] },
@@ -53,6 +53,8 @@ export interface ContextOriginTally {
53
53
  }
54
54
  /** One knowledge item's lifecycle in a `context_lifecycle_reported` event (plan task 4.1). */
55
55
  export interface ContextItemRecord {
56
+ /** The item's id, shared with history items and item-graph edges. */
57
+ id?: number;
56
58
  key?: string;
57
59
  origin: "system" | "skill" | "memory_recall" | "reference" | "blackboard" | "tool_result" | "dependency_output" | "user" | "assistant" | "task_state" | "signal" | "provider_summary";
58
60
  tokens: number;
@@ -61,6 +63,8 @@ export interface ContextItemRecord {
61
63
  ref_count: number;
62
64
  last_referenced_step?: number;
63
65
  last_referenced_turn?: number;
66
+ strong_refs?: number;
67
+ lexical_refs?: number;
64
68
  expanded?: boolean;
65
69
  paged_in_after_evict?: boolean;
66
70
  };
@@ -68,6 +72,26 @@ export interface ContextItemRecord {
68
72
  end?: "evicted" | "expired" | "removed" | "compacted" | "renewed";
69
73
  }
70
74
  /** One history item's lifecycle in a `context_lifecycle_reported` event (plan task 4.1). */
75
+ /** One directed edge of the item graph: `from` answers, references, reads back or summarizes `to`. */
76
+ export interface ContextItemEdge {
77
+ from: number;
78
+ to: number;
79
+ relation: "answers" | "references_strong" | "references_lexical" | "reads_back" | "summarizes" | "expands";
80
+ turn: number;
81
+ }
82
+ /** An item of another run: a parent operation's item, or a workflow dependency's output. */
83
+ export interface ContextExternalItem {
84
+ operation?: string;
85
+ agent?: string;
86
+ item?: number;
87
+ }
88
+ /** An edge from an item of this run to an item of another run. */
89
+ export interface ContextExternalEdge {
90
+ from: number;
91
+ to: ContextExternalItem;
92
+ relation: "inherited_from" | "depends_on";
93
+ turn: number;
94
+ }
71
95
  export interface ContextHistoryItemRecord {
72
96
  id: number;
73
97
  origin: ContextItemRecord["origin"];
@@ -216,6 +240,15 @@ export type SessionEvent = {
216
240
  /** The latest history items one by one (at most 128); older ones are only counted. */
217
241
  history_items?: ContextHistoryItemRecord[];
218
242
  history_items_omitted?: number;
243
+ /** The item graph: resident edges, then the latest edges touching an item that left. */
244
+ edges?: ContextItemEdge[];
245
+ edges_omitted?: number;
246
+ /** Knowledge item ids nothing referenced or read back. */
247
+ waste_items?: number[];
248
+ /** Edges to items of other runs: inherited copies and dependency reads. */
249
+ external_edges?: ContextExternalEdge[];
250
+ /** The parent run's items whose inherited copies this run used. */
251
+ parent_items_used?: ContextExternalItem[];
219
252
  } | {
220
253
  kind: "suspended";
221
254
  turn: number;
@@ -214,6 +214,12 @@ export interface InheritedKnowledge {
214
214
  key?: string;
215
215
  tokens?: number;
216
216
  pinned?: boolean;
217
+ /** Plan task 7.4 · the parent run's item this is a copy of; reported as an `inherited_from` edge. */
218
+ inherited_from?: {
219
+ operation?: string;
220
+ agent?: string;
221
+ item?: number;
222
+ };
217
223
  }
218
224
  /** Per-node spawn descriptor carried in the `workflow_batch_spawned` observation. */
219
225
  export interface WorkflowSpawnInfo {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepstrike/wasm",
3
- "version": "0.2.80",
3
+ "version": "0.2.81",
4
4
  "description": "DeepStrike WASM SDK — browser, Cloudflare Workers, Deno Deploy",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
@@ -17,7 +17,7 @@
17
17
  "test:canonical-binding": "wasm-pack build ../crates/deepstrike-wasm --target nodejs --dev --out-dir ../../wasm/pkg-node && node tests/canonical-binding.node.cjs && node tests/golden-fixtures-sweep.node.cjs && npm run build && node tests/boundary-p0-regressions.node.mjs && node tests/boundary-p1-regressions.node.mjs && node tests/boundary-p2-regressions.node.mjs && node tests/memory-candidate-binding.node.mjs && node tests/memory-recall-renewal.node.mjs && node tests/dynamic-workflow.node.mjs"
18
18
  },
19
19
  "dependencies": {
20
- "@deepstrike/wasm-kernel": "0.2.80"
20
+ "@deepstrike/wasm-kernel": "0.2.81"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/jest": "^30.0.0",