@arcforge/cognet 2.0.141 → 2.0.142

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 (2) hide show
  1. package/package.json +3 -3
  2. package/src/host.ts +14 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcforge/cognet",
3
- "version": "2.0.141",
3
+ "version": "2.0.142",
4
4
  "description": "A cognitive engine",
5
5
  "type": "module",
6
6
  "private": false,
@@ -17,8 +17,8 @@
17
17
  "deploy": "echo \"This package is published ONLY by apps/tui/scripts/release.ts, which pins workspace:* deps to concrete versions first. Publishing it directly ships an unresolvable dependency.\" && exit 1"
18
18
  },
19
19
  "dependencies": {
20
- "@arcforge/err": "2.0.141",
21
- "@arcforge/types": "2.0.141",
20
+ "@arcforge/err": "2.0.142",
21
+ "@arcforge/types": "2.0.142",
22
22
  "hookable": "^5.5.3"
23
23
  },
24
24
  "devDependencies": {
package/src/host.ts CHANGED
@@ -151,6 +151,14 @@ const localKernel = {
151
151
  get: (key: never) => kernelOrThrow().store.get(key),
152
152
  set: (key: never, value: never) => kernelOrThrow().store.set(key, value),
153
153
  },
154
+ // Same discipline as store: a live sub-object on the bound ABI,
155
+ // delegated per call and never captured before load().
156
+ knowledge: {
157
+ list: (opts?: Parameters<KernelAbi["knowledge"]["list"]>[0]) => kernelOrThrow().knowledge.list(opts),
158
+ read: (name: string) => kernelOrThrow().knowledge.read(name),
159
+ write: (name: string, content: string) => kernelOrThrow().knowledge.write(name, content),
160
+ remove: (name: string) => kernelOrThrow().knowledge.remove(name),
161
+ },
154
162
  wake: () => kernelOrThrow().wake(),
155
163
  clock: () => kernelOrThrow().clock(),
156
164
  // A getter, not a captured value: the bound kernel arrives at load(), and
@@ -196,6 +204,12 @@ globals.kernel = {
196
204
  get: (key: never) => ambientOrThrow().kernel.store.get(key),
197
205
  set: (key: never, value: never) => ambientOrThrow().kernel.store.set(key, value),
198
206
  },
207
+ knowledge: {
208
+ list: (opts?: Parameters<KernelAbi["knowledge"]["list"]>[0]) => ambientOrThrow().kernel.knowledge.list(opts),
209
+ read: (name: string) => ambientOrThrow().kernel.knowledge.read(name),
210
+ write: (name: string, content: string) => ambientOrThrow().kernel.knowledge.write(name, content),
211
+ remove: (name: string) => ambientOrThrow().kernel.knowledge.remove(name),
212
+ },
199
213
  // Resolved through kernelOrThrow(), not ambientOrThrow(): a plugin's
200
214
  // clock lives in a setInterval registered during boot, and that callback
201
215
  // fires outside every ambient scope. The bound kernel is module state