@plurnk/plurnk-agui 3.0.0 → 4.0.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 (74) hide show
  1. package/.env.defaults +17 -8
  2. package/README.md +37 -13
  3. package/SPEC.md +627 -268
  4. package/dist/AguiPlus.d.ts +24 -29
  5. package/dist/AguiPlus.d.ts.map +1 -1
  6. package/dist/AguiPlus.js +25 -36
  7. package/dist/AguiPlus.js.map +1 -1
  8. package/dist/AguiSurface.d.ts +2 -2
  9. package/dist/AguiSurface.d.ts.map +1 -1
  10. package/dist/AguiSurface.js +25 -16
  11. package/dist/AguiSurface.js.map +1 -1
  12. package/dist/AuthorizationDocuments.d.ts +33 -0
  13. package/dist/AuthorizationDocuments.d.ts.map +1 -0
  14. package/dist/AuthorizationDocuments.js +84 -0
  15. package/dist/AuthorizationDocuments.js.map +1 -0
  16. package/dist/BuiltinActions.d.ts +11 -5
  17. package/dist/BuiltinActions.d.ts.map +1 -1
  18. package/dist/BuiltinActions.js +84 -119
  19. package/dist/BuiltinActions.js.map +1 -1
  20. package/dist/EventRouter.d.ts +11 -3
  21. package/dist/EventRouter.d.ts.map +1 -1
  22. package/dist/EventRouter.js +17 -32
  23. package/dist/EventRouter.js.map +1 -1
  24. package/dist/MessageAddress.d.ts +7 -5
  25. package/dist/MessageAddress.d.ts.map +1 -1
  26. package/dist/MessageAddress.js +14 -12
  27. package/dist/MessageAddress.js.map +1 -1
  28. package/dist/Module.d.ts +5 -4
  29. package/dist/Module.d.ts.map +1 -1
  30. package/dist/Module.js +222 -83
  31. package/dist/Module.js.map +1 -1
  32. package/dist/OAuthServer.d.ts +30 -0
  33. package/dist/OAuthServer.d.ts.map +1 -0
  34. package/dist/OAuthServer.js +607 -0
  35. package/dist/OAuthServer.js.map +1 -0
  36. package/dist/Portal.d.ts +41 -9
  37. package/dist/Portal.d.ts.map +1 -1
  38. package/dist/Portal.js +497 -185
  39. package/dist/Portal.js.map +1 -1
  40. package/dist/ProposalHitl.d.ts +18 -4
  41. package/dist/ProposalHitl.d.ts.map +1 -1
  42. package/dist/ProposalHitl.js +31 -41
  43. package/dist/ProposalHitl.js.map +1 -1
  44. package/dist/RunHandler.d.ts +18 -8
  45. package/dist/RunHandler.d.ts.map +1 -1
  46. package/dist/RunHandler.js +256 -137
  47. package/dist/RunHandler.js.map +1 -1
  48. package/dist/ThreadAddress.d.ts +8 -0
  49. package/dist/ThreadAddress.d.ts.map +1 -0
  50. package/dist/ThreadAddress.js +18 -0
  51. package/dist/ThreadAddress.js.map +1 -0
  52. package/dist/Translator.d.ts +52 -2
  53. package/dist/Translator.d.ts.map +1 -1
  54. package/dist/Translator.js +391 -121
  55. package/dist/Translator.js.map +1 -1
  56. package/dist/client.d.ts +2 -0
  57. package/dist/client.d.ts.map +1 -0
  58. package/dist/client.js +2 -0
  59. package/dist/client.js.map +1 -0
  60. package/dist/config.d.ts +22 -2
  61. package/dist/config.d.ts.map +1 -1
  62. package/dist/config.js +65 -13
  63. package/dist/config.js.map +1 -1
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +2 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/run-events.d.ts +2 -0
  69. package/dist/run-events.d.ts.map +1 -1
  70. package/dist/run-events.js +5 -2
  71. package/dist/run-events.js.map +1 -1
  72. package/dist/types.d.ts +4 -22
  73. package/dist/types.d.ts.map +1 -1
  74. package/package.json +12 -8
@@ -1,18 +1,24 @@
1
1
  import { type ActionOutcome } from "./AguiPlus.ts";
2
- import { type AguiDiscovery, type ApplicationPort, type ClientEnvelope } from "@plurnk/plurnk-contracts";
2
+ import { type AguiDiscovery, type ClientEnvelope } from "@plurnk/plurnk-contracts";
3
+ import type { ApplicationPort } from "@plurnk/plurnk-contracts/port";
3
4
  import type { RunAgentInput } from "./types.ts";
4
- export type BuiltinActionsPort = Pick<ApplicationPort, "attachWorkspace" | "cancelDrain" | "createWorkspace" | "dispatchClientAction" | "ensureModelWorker" | "executorJsonBodyTags" | "executorTags" | "forkWorker" | "listModels" | "listPrompts" | "listProviders" | "listWorkers" | "listWorkspaces" | "look" | "readEntry" | "readLog" | "readWorkerEffort" | "readWorkerModel" | "readWorkspaceCapabilities" | "renameWorkspace" | "runLoop" | "setWorkerEffort" | "setWorkerModel" | "setWorkerSpawnModel" | "setWorkspaceCapabilities" | "shareWorkspace">;
5
+ export type OperationLoopListener = (loop: {
6
+ readonly workerId: number;
7
+ readonly loopId: number;
8
+ }) => void;
9
+ export type BuiltinActionsPort = Pick<ApplicationPort, "attachWorkspace" | "cancelDrain" | "createWorkspace" | "dispatchClientAction" | "executorTags" | "forkWorker" | "listModels" | "listPrompts" | "listProviders" | "listWorkers" | "listWorkspaces" | "readEntry" | "readLog" | "readWorkerEffort" | "readWorkerModel" | "readWorkspaceCapabilities" | "renameWorkspace" | "rollback" | "runLoop" | "setWorkerEffort" | "setWorkerModel" | "setWorkerSpawnModel" | "setWorkspaceCapabilities" | "shareWorkspace">;
5
10
  export default class BuiltinActions {
6
11
  #private;
7
- constructor({ seam, capabilities, envelope, requireWorkspace }: {
12
+ constructor({ seam, capabilities, namedWorkspace, threadWorker, requireWorkspace }: {
8
13
  seam: () => BuiltinActionsPort;
9
14
  capabilities: () => Promise<AguiDiscovery>;
10
- envelope: (threadId: string, forwarded?: Record<string, unknown>) => Promise<{
15
+ namedWorkspace: (name: string, options?: Readonly<Record<string, unknown>>) => Promise<{
11
16
  env: ClientEnvelope;
12
17
  reattached: boolean;
13
18
  }>;
19
+ threadWorker: (threadId: string, workspaceId: number, forwarded?: Record<string, unknown>) => Promise<number | undefined>;
14
20
  requireWorkspace: (kind: string, env: ClientEnvelope | null) => ClientEnvelope;
15
21
  });
16
- executeBuiltin(kind: string, p: Readonly<Record<string, unknown>>, input: RunAgentInput, env: ClientEnvelope | null, conversationWorkerId?: number): Promise<ActionOutcome>;
22
+ executeBuiltin(kind: string, p: Readonly<Record<string, unknown>>, input: RunAgentInput, env: ClientEnvelope | null, boundWorkerId?: number, principal?: string, onLoop?: OperationLoopListener): Promise<ActionOutcome>;
17
23
  }
18
24
  //# sourceMappingURL=BuiltinActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltinActions.d.ts","sourceRoot":"","sources":["../src/BuiltinActions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAyC,KAAK,aAAa,EAAE,KAAK,eAAe,EAAyB,KAAK,cAAc,EAAkE,MAAM,0BAA0B,CAAC;AAGvO,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAwChD,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACjC,eAAe,EACb,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,sBAAsB,GACtB,mBAAmB,GACnB,sBAAsB,GACtB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,MAAM,GACN,WAAW,GACX,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,2BAA2B,GAC3B,iBAAiB,GACjB,SAAS,GACT,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,0BAA0B,GAC1B,gBAAgB,CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAc;;IAM/B,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE;QAC5D,IAAI,EAAE,MAAM,kBAAkB,CAAC;QAC/B,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3C,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;YAAE,GAAG,EAAE,cAAc,CAAC;YAAC,UAAU,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAC3H,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,KAAK,cAAc,CAAC;KAClF,EAKA;IAKK,cAAc,CAChB,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpC,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,cAAc,GAAG,IAAI,EAC1B,oBAAoB,CAAC,EAAE,MAAM,GAC9B,OAAO,CAAC,aAAa,CAAC,CAgYxB;CAEJ"}
1
+ {"version":3,"file":"BuiltinActions.d.ts","sourceRoot":"","sources":["../src/BuiltinActions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAyC,KAAK,aAAa,EAAyB,KAAK,cAAc,EAAkE,MAAM,0BAA0B,CAAC;AACjN,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAC;AAwC3G,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACjC,eAAe,EACb,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,sBAAsB,GACtB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,2BAA2B,GAC3B,iBAAiB,GACjB,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,0BAA0B,GAC1B,gBAAgB,CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAc;;IAa/B,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE;QAChF,IAAI,EAAE,MAAM,kBAAkB,CAAC;QAC/B,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC;YAAE,GAAG,EAAE,cAAc,CAAC;YAAC,UAAU,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QACrI,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC1H,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,KAAK,cAAc,CAAC;KAClF,EAMA;IAyBK,cAAc,CAChB,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpC,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,cAAc,GAAG,IAAI,EAC1B,aAAa,CAAC,EAAE,MAAM,EACtB,SAAS,SAAc,EACvB,MAAM,CAAC,EAAE,qBAAqB,GAC/B,OAAO,CAAC,aAAa,CAAC,CAyTxB;CAEJ"}
@@ -22,22 +22,43 @@ const parseFailureResult = ({ detail, line, column, source, severity, }) => ({
22
22
  }),
23
23
  });
24
24
  export default class BuiltinActions {
25
+ // {§agui-action-binding} A worker action runs only after its Run bound the thread's worker.
26
+ static #bound(workerId) {
27
+ if (workerId === undefined)
28
+ throw new Error("a worker action reached execution without its worker");
29
+ return workerId;
30
+ }
25
31
  #seam;
26
32
  #capabilities;
27
- #envelope;
33
+ #namedWorkspace;
34
+ #threadWorker;
28
35
  #requireWorkspace;
29
- constructor({ seam, capabilities, envelope, requireWorkspace }) {
36
+ constructor({ seam, capabilities, namedWorkspace, threadWorker, requireWorkspace }) {
30
37
  this.#seam = seam;
31
38
  this.#capabilities = capabilities;
32
- this.#envelope = envelope;
39
+ this.#namedWorkspace = namedWorkspace;
40
+ this.#threadWorker = threadWorker;
33
41
  this.#requireWorkspace = requireWorkspace;
34
42
  }
43
+ // {§agui-client-operation} A person's client operation: the thread's owner acting, reading `log:///` in the
44
+ // thread's model worker when it exists, and announcing its loop to the Run that observes it.
45
+ async #clientOperation(input, workspace, principal, statements, onLoop) {
46
+ const forwarded = input.forwardedProps?.plurnk;
47
+ const contextWorkerId = await this.#threadWorker(input.threadId, workspace.workspaceId, forwarded);
48
+ return await this.#seam().dispatchClientAction({
49
+ workspaceId: workspace.workspaceId,
50
+ actor: MessageAddress.owner(principal, input.threadId),
51
+ ...(contextWorkerId === undefined ? {} : { contextWorkerId }),
52
+ statements,
53
+ ...(onLoop === undefined ? {} : { onLoop }),
54
+ });
55
+ }
35
56
  // The built-in implementation half of the declarative registry. The registry
36
57
  // owns membership, scope, admission, projection, and discovery; this dispatch
37
58
  // owns only the corresponding daemon operation.
38
- async executeBuiltin(kind, p, input, env, conversationWorkerId) {
59
+ async executeBuiltin(kind, p, input, env, boundWorkerId, principal = "anonymous", onLoop) {
39
60
  try {
40
- // Worldless actions never bind or forge a workspace.
61
+ // Daemon actions never bind or forge a workspace.
41
62
  switch (kind) {
42
63
  case "ping": return { ok: true, result: {} };
43
64
  case "discover": return { ok: true, result: await this.#capabilities() };
@@ -47,16 +68,13 @@ export default class BuiltinActions {
47
68
  }
48
69
  case "workspace.list": return { ok: true, result: { workspaces: await this.#seam().listWorkspaces() } };
49
70
  case "workspace.create": {
50
- // The name IS the identity: an explicit name creates/attaches EXACTLY
51
- // that workspace; no name = the daemon names it and the real name binds.
71
+ // An explicit name selects exactly that workspace; otherwise core names it.
52
72
  if (Object.hasOwn(p, "name") && (typeof p.name !== "string" || p.name.length === 0)) {
53
73
  return actionFailure("invalid-action-parameters", "workspace.create name is not a non-empty string.", 400, { field: "name", recovery: "Provide a non-empty workspace name or omit it." });
54
74
  }
55
75
  if (typeof p.name === "string") {
56
- // The name IS the world here — feed it as the workspace so #envelope
57
- // creates/attaches exactly it (p carries no `workspace` of its own).
58
- const { env: created } = await this.#envelope(p.name, { ...p, workspace: p.name });
59
- return { ok: true, result: { id: created.workspaceId, name: created.workspaceName, workerId: created.workerId } };
76
+ const { env: created } = await this.#namedWorkspace(p.name, p);
77
+ return { ok: true, result: { id: created.workspaceId, name: created.workspaceName } };
60
78
  }
61
79
  const created = await this.#seam().createWorkspace({
62
80
  ...(Object.hasOwn(p, "projectRoot")
@@ -69,29 +87,24 @@ export default class BuiltinActions {
69
87
  ? { settings: p.settings }
70
88
  : {}),
71
89
  });
72
- return { ok: true, result: { id: created.workspaceId, name: created.workspaceName, workerId: created.workerId } };
90
+ return { ok: true, result: { id: created.workspaceId, name: created.workspaceName } };
73
91
  }
74
92
  case "workspace.attach": {
75
- // A REAL attach: rebind the thread map to the chosen workspace and hand
76
- // back its envelope — the picker does what it says.
77
- if (typeof p.id !== "number") {
78
- return actionFailure("invalid-action-parameters", "workspace.attach requires a numeric workspace id.", 400, {
79
- field: "id",
80
- recovery: "Provide a workspace id returned by workspace.list.",
81
- });
82
- }
83
- const att = await this.#seam().attachWorkspace({ workspaceId: p.id, ...(typeof p.workerId === "number" ? { workerId: p.workerId } : {}) });
84
- return { ok: true, result: { id: att.workspaceId, name: att.workspaceName, workerId: att.workerId } };
93
+ // The registry admits exactly one selector; core owns its interpretation.
94
+ const att = await this.#seam().attachWorkspace(typeof p.id === "number"
95
+ ? { workspaceId: p.id }
96
+ : typeof p.name === "string" ? { name: p.name } : { projectRoot: p.projectRoot });
97
+ return { ok: true, result: { id: att.workspaceId, name: att.workspaceName } };
85
98
  }
86
99
  }
87
- const world = this.#requireWorkspace(kind, env);
100
+ const workspace = this.#requireWorkspace(kind, env);
88
101
  switch (kind) {
89
- case "workspace.workers": return { ok: true, result: { workers: await this.#seam().listWorkers(typeof p.id === "number" ? p.id : world.workspaceId) } };
102
+ case "workspace.workers": return { ok: true, result: { workers: await this.#seam().listWorkers(typeof p.id === "number" ? p.id : workspace.workspaceId) } };
90
103
  case "log.read": {
91
- // Default worker: the conversation; p.workerId pins another.
92
- const readWorkerId = typeof p.workerId === "number" ? p.workerId : conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId);
104
+ // Default worker: the bound worker; p.workerId pins another.
105
+ const readWorkerId = typeof p.workerId === "number" ? p.workerId : BuiltinActions.#bound(boundWorkerId);
93
106
  const entries = await this.#seam().readLog({
94
- workspaceId: world.workspaceId,
107
+ workspaceId: workspace.workspaceId,
95
108
  workerId: readWorkerId,
96
109
  ...(Object.hasOwn(p, "limit") ? { limit: p.limit } : {}),
97
110
  ...(Object.hasOwn(p, "sinceId") ? { sinceId: p.sinceId } : {}),
@@ -108,29 +121,46 @@ export default class BuiltinActions {
108
121
  return actionFailure("invalid-action-parameters", "loop.inject requires a non-empty prompt.", 400, { field: "prompt", recovery: "Provide the prompt to inject." });
109
122
  }
110
123
  const ack = await this.#seam().runLoop({
111
- workspaceId: world.workspaceId,
112
- workerId: conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId),
124
+ workspaceId: workspace.workspaceId,
125
+ workerId: BuiltinActions.#bound(boundWorkerId),
113
126
  prompt: p.prompt,
114
- ...MessageAddress.submission(input, { id: crypto.randomUUID(), role: "user", content: p.prompt }),
127
+ ...MessageAddress.submission(principal, input, { id: crypto.randomUUID(), role: "user", content: p.prompt }),
115
128
  });
116
129
  return operationOutcome(ack);
117
130
  }
118
131
  // The stop control (TUI /stop + Ctrl-C): abort the model
119
132
  // worker's active drain. Mirrors the SSE-hangup abort, addressable as a verb.
120
- case "loop.cancel": return { ok: true, result: { cancelled: this.#seam().cancelDrain(conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId), typeof p.reason === "string" ? p.reason : undefined) } };
121
- // Default worker: the conversation; p.workerId pins another — the log.read shape.
133
+ case "loop.cancel": return { ok: true, result: { cancelled: this.#seam().cancelDrain(BuiltinActions.#bound(boundWorkerId), typeof p.reason === "string" ? p.reason : undefined) } };
134
+ // Default worker: the bound worker; p.workerId pins another — the log.read shape.
122
135
  case "workspace.prompts": return {
123
136
  ok: true,
124
137
  result: {
125
- prompts: await this.#seam().listPrompts(world.workspaceId, Object.hasOwn(p, "limit") ? p.limit : undefined, typeof p.workerId === "number" ? p.workerId : conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId)),
138
+ prompts: await this.#seam().listPrompts(workspace.workspaceId, Object.hasOwn(p, "limit") ? p.limit : undefined, typeof p.workerId === "number" ? p.workerId : BuiltinActions.#bound(boundWorkerId)),
126
139
  },
127
140
  };
128
- case "workspace.share": return { ok: true, result: await this.#seam().shareWorkspace({ workspaceId: world.workspaceId, folder: p.folder }) };
141
+ case "workspace.share": return { ok: true, result: await this.#seam().shareWorkspace({ workspaceId: workspace.workspaceId, folder: p.folder }) };
129
142
  case "workspace.rename": {
130
143
  if (typeof p.name !== "string" || p.name.length === 0) {
131
144
  return actionFailure("invalid-action-parameters", "workspace.rename requires a non-empty name.", 400, { field: "name", recovery: "Provide the new workspace name." });
132
145
  }
133
- return { ok: true, result: await this.#seam().renameWorkspace(world.workspaceId, p.name) };
146
+ return { ok: true, result: await this.#seam().renameWorkspace(workspace.workspaceId, p.name) };
147
+ }
148
+ // {§rollback} — the bound worker's log, or a named worker's; the reversals are one client
149
+ // operation of this thread's owner ({§connection-lifecycle}).
150
+ case "workspace.rollback": {
151
+ if (typeof p.to !== "string" || p.to.length === 0) {
152
+ return actionFailure("invalid-action-parameters", "workspace.rollback requires a log coordinate.", 400, { field: "to", recovery: "Name the coordinate as <loop>/<turn>/<item>." });
153
+ }
154
+ if (Object.hasOwn(p, "workerId")
155
+ && (typeof p.workerId !== "number" || !Number.isSafeInteger(p.workerId) || p.workerId <= 0)) {
156
+ return actionFailure("invalid-action-parameters", "workspace.rollback workerId must be a positive integer.", 400, { field: "workerId", recovery: "Name a worker of this workspace, or omit it for the bound worker." });
157
+ }
158
+ return { ok: true, result: await this.#seam().rollback({
159
+ workspaceId: workspace.workspaceId,
160
+ workerId: typeof p.workerId === "number" ? p.workerId : BuiltinActions.#bound(boundWorkerId),
161
+ actor: MessageAddress.owner(principal, input.threadId),
162
+ to: p.to,
163
+ }) };
134
164
  }
135
165
  case "entry.read": {
136
166
  if (typeof p.target !== "string") {
@@ -141,10 +171,10 @@ export default class BuiltinActions {
141
171
  return actionFailure("invalid-action-parameters", "entry.read workerId must be a positive integer.", 400, { field: "workerId", recovery: "Use the workerId supplied with the entry notification." });
142
172
  }
143
173
  const result = Validator.assertEntryReadResult(await this.#seam().readEntry({
144
- workspaceId: world.workspaceId,
174
+ workspaceId: workspace.workspaceId,
145
175
  workerId: typeof p.workerId === "number"
146
176
  ? p.workerId
147
- : conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId),
177
+ : BuiltinActions.#bound(boundWorkerId),
148
178
  target: p.target,
149
179
  ...(Object.hasOwn(p, "channel") ? { channel: p.channel } : {}),
150
180
  ...(Object.hasOwn(p, "offset") ? { offset: p.offset } : {}),
@@ -152,8 +182,7 @@ export default class BuiltinActions {
152
182
  return operationOutcome(result);
153
183
  }
154
184
  case "op.exec": {
155
- // An execution constructed structurally (no DSL text): the model-facing shape,
156
- // proposal-gated by the engine like any client op.
185
+ // An execution constructed structurally (no DSL text): the model-facing shape.
157
186
  if (typeof p.command !== "string" || p.command.length === 0) {
158
187
  return actionFailure("invalid-action-parameters", "op.exec requires a non-empty command.", 400, { field: "command", recovery: "Provide the command to execute." });
159
188
  }
@@ -161,14 +190,7 @@ export default class BuiltinActions {
161
190
  runtime: "sh", aside: null, target: null,
162
191
  metadata: null, lineMarker: null, body: p.command, position: UNKNOWN_POSITION,
163
192
  };
164
- // Client ops journal as client-origin turns in the client worker (worker split:
165
- // only LOOPS live in the model worker) and execute in the attached Worker's
166
- // Functionality ({§actor-boundary-attached-functionality}).
167
- const [result] = await this.#seam().dispatchClientAction({
168
- workspaceId: world.workspaceId,
169
- workerId: world.workerId,
170
- statements: [statement],
171
- });
193
+ const [result] = await this.#clientOperation(input, workspace, principal, [statement], onLoop);
172
194
  if (result === undefined)
173
195
  throw new Error("op.exec dispatch returned no operation result");
174
196
  return operationOutcome(result);
@@ -179,7 +201,7 @@ export default class BuiltinActions {
179
201
  if (typeof p.text !== "string" || p.text.length === 0) {
180
202
  return actionFailure("invalid-action-parameters", "op.parse requires non-empty PLURNK text.", 400, { field: "text", recovery: "Provide PLURNK statements to parse." });
181
203
  }
182
- const parsed = PlurnkParser.parseClient(p.text, { executors: this.#seam().executorTags(world.workspaceId), jsonBodyExecutors: this.#seam().executorJsonBodyTags(world.workspaceId) });
204
+ const parsed = PlurnkParser.parseStatements(p.text, { executors: this.#seam().executorTags(workspace.workspaceId) });
183
205
  const results = [];
184
206
  const statements = [];
185
207
  for (const item of parsed.items) {
@@ -209,11 +231,7 @@ export default class BuiltinActions {
209
231
  }
210
232
  const dispatched = statements.length === 0
211
233
  ? []
212
- : await this.#seam().dispatchClientAction({
213
- workspaceId: world.workspaceId,
214
- workerId: world.workerId,
215
- statements,
216
- });
234
+ : await this.#clientOperation(input, workspace, principal, statements, onLoop);
217
235
  let index = 0;
218
236
  for (let i = 0; i < results.length; i++) {
219
237
  if (results[i] === null)
@@ -221,64 +239,11 @@ export default class BuiltinActions {
221
239
  }
222
240
  return { ok: true, result: { results } };
223
241
  }
224
- case "op.look": {
225
- // {§agui-op-look}
226
- if (typeof p.text !== "string" || p.text.length === 0) {
227
- return actionFailure("invalid-action-parameters", "op.look requires non-empty PLURNK text.", 400, { field: "text", recovery: "Provide one PLURNK statement to observe." });
228
- }
229
- const parsed = PlurnkParser.parseClient(p.text, { executors: this.#seam().executorTags(world.workspaceId), jsonBodyExecutors: this.#seam().executorJsonBodyTags(world.workspaceId) });
230
- // Advisories (warnings) describe a normalization; only a hard error fails the observation.
231
- const diagnostic = parsed.items.find((item) => item.kind === "error" && item.error.severity === "error");
232
- if (diagnostic !== undefined && diagnostic.kind === "error") {
233
- return operationOutcome(parseFailureResult({
234
- detail: diagnostic.error.message,
235
- line: diagnostic.error.line,
236
- column: diagnostic.error.column,
237
- source: diagnostic.error.source,
238
- severity: diagnostic.error.severity,
239
- }));
240
- }
241
- if (parsed.unparsedTail !== undefined) {
242
- return operationOutcome(parseFailureResult({
243
- detail: parsed.unparsedTail.reason,
244
- line: parsed.unparsedTail.from.line,
245
- column: parsed.unparsedTail.from.column,
246
- source: "grammar",
247
- severity: "error",
248
- }));
249
- }
250
- const statements = parsed.items.filter((item) => item.kind === "statement");
251
- if (statements.length !== 1) {
252
- return actionFailure("invalid-action-parameters", `op.look parsed ${statements.length} statements; exactly one LOOK statement is required.`, 400, { field: "text", recovery: "Provide exactly one valid LOOK statement." });
253
- }
254
- const [item] = statements;
255
- if (item.statement.op !== "LOOK") {
256
- return actionFailure("invalid-action-parameters", `op.look parsed ${item.statement.op}; the single statement must be LOOK.`, 400, { field: "text", recovery: "Use LOOK as the observation operation." });
257
- }
258
- if (Object.hasOwn(p, "workerId")
259
- && (typeof p.workerId !== "number" || !Number.isSafeInteger(p.workerId) || p.workerId <= 0)) {
260
- return actionFailure("invalid-action-parameters", "op.look workerId must be a positive integer.", 400, { field: "workerId", recovery: "Use a workerId from workspace.workers." });
261
- }
262
- // LOOK is the client's observation with a matcher body; on the seam it is a READ whose
263
- // heading pattern is that matcher ({§read-pattern}): the matching lines, no log row.
264
- // Local log coordinates resolve as the conversation worker; explicit resource authorities
265
- // keep their identity. The observation segment stays on the connection's own worker ({§op-look}).
266
- const { body: matcher, ...look } = item.statement;
267
- const statement = { ...look, op: "READ", matcher, body: null };
268
- return operationOutcome(await this.#seam().look({
269
- workspaceId: world.workspaceId,
270
- workerId: world.workerId,
271
- statement,
272
- perspectiveWorkerId: typeof p.workerId === "number"
273
- ? p.workerId
274
- : conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId),
275
- }));
276
- }
277
- case "run.fork": return { ok: true, result: await this.#seam().forkWorker({ workspaceId: world.workspaceId, workerId: conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId), ...(typeof p.name === "string" ? { name: p.name } : {}) }) };
242
+ case "run.fork": return { ok: true, result: await this.#seam().forkWorker({ workspaceId: workspace.workspaceId, workerId: BuiltinActions.#bound(boundWorkerId), ...(typeof p.name === "string" ? { name: p.name } : {}) }) };
278
243
  case "worker.model.get": {
279
244
  const { model, spawnModel } = await this.#seam().readWorkerModel({
280
- workspaceId: world.workspaceId,
281
- workerId: conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId),
245
+ workspaceId: workspace.workspaceId,
246
+ workerId: BuiltinActions.#bound(boundWorkerId),
282
247
  });
283
248
  return { ok: true, result: { model, spawnModel } };
284
249
  }
@@ -287,8 +252,8 @@ export default class BuiltinActions {
287
252
  return actionFailure("invalid-action-parameters", "worker.model.set requires a selector.", 400, { recovery: "Provide a declared alias or provider/model route." });
288
253
  }
289
254
  return { ok: true, result: await this.#seam().setWorkerModel({
290
- workspaceId: world.workspaceId,
291
- workerId: conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId),
255
+ workspaceId: workspace.workspaceId,
256
+ workerId: BuiltinActions.#bound(boundWorkerId),
292
257
  selector: p.selector,
293
258
  ...(p.effort === undefined ? {} : { effort: p.effort }),
294
259
  }) };
@@ -299,15 +264,15 @@ export default class BuiltinActions {
299
264
  return actionFailure("invalid-action-parameters", "worker.child.set requires a selector.", 400, { recovery: "Provide a declared alias or provider/model route; null means inherit." });
300
265
  }
301
266
  return { ok: true, result: await this.#seam().setWorkerSpawnModel({
302
- workspaceId: world.workspaceId,
303
- workerId: conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId),
267
+ workspaceId: workspace.workspaceId,
268
+ workerId: BuiltinActions.#bound(boundWorkerId),
304
269
  selector: p.selector,
305
270
  }) };
306
271
  }
307
272
  case "worker.effort.get": {
308
273
  return { ok: true, result: await this.#seam().readWorkerEffort({
309
- workspaceId: world.workspaceId,
310
- workerId: conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId),
274
+ workspaceId: workspace.workspaceId,
275
+ workerId: BuiltinActions.#bound(boundWorkerId),
311
276
  }) };
312
277
  }
313
278
  case "worker.effort.set": {
@@ -315,19 +280,19 @@ export default class BuiltinActions {
315
280
  return actionFailure("invalid-action-parameters", "worker.effort.set requires an effort.", 400, { recovery: "Provide an effort." });
316
281
  }
317
282
  return { ok: true, result: await this.#seam().setWorkerEffort({
318
- workspaceId: world.workspaceId,
319
- workerId: conversationWorkerId ?? await this.#seam().ensureModelWorker(world.workspaceId),
283
+ workspaceId: workspace.workspaceId,
284
+ workerId: BuiltinActions.#bound(boundWorkerId),
320
285
  effort: p.effort,
321
286
  }) };
322
287
  }
323
288
  case "workspace.capabilities.get": {
324
289
  return { ok: true, result: await this.#seam().readWorkspaceCapabilities({
325
- workspaceId: world.workspaceId,
290
+ workspaceId: workspace.workspaceId,
326
291
  }) };
327
292
  }
328
293
  case "workspace.capabilities.set": {
329
294
  return { ok: true, result: await this.#seam().setWorkspaceCapabilities({
330
- workspaceId: world.workspaceId,
295
+ workspaceId: workspace.workspaceId,
331
296
  policy: p.policy,
332
297
  }) };
333
298
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltinActions.js","sourceRoot":"","sources":["../src/BuiltinActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BuiltinActions.js","sourceRoot":"","sources":["../src/BuiltinActions.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,OAAO,EAAsB,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAkI,MAAM,0BAA0B,CAAC;AAEjN,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAMjD,MAAM,gBAAgB,GAAG,CAAC,MAAuB,EAAiB,EAAE;IAChE,MAAM,KAAK,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;QAC9B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;QAC7B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EACxB,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,GAOX,EAAmB,EAAE,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,QAAQ,CAAC,MAAM,CACpB,aAAa,EACb,cAAc,EACd,GAAG,EACH,MAAM,EACN;QACI,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,KAAK;KACnB,CACJ;CACJ,CAAC,CAAC;AA+BH,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,4FAA4F;IAC5F,MAAM,CAAC,MAAM,CAAC,QAA4B;QACtC,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACpG,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEQ,KAAK,CAA2B;IAChC,aAAa,CAA+B;IAC5C,eAAe,CAAuH;IACtI,aAAa,CAA8G;IAC3H,iBAAiB,CAA+D;IAEzF,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAM/E;QACG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC9C,CAAC;IAED,4GAA4G;IAC5G,6FAA6F;IAC7F,KAAK,CAAC,gBAAgB,CAClB,KAAoB,EACpB,SAAyB,EACzB,SAAiB,EACjB,UAA6B,EAC7B,MAAyC;QAEzC,MAAM,SAAS,GAAI,KAAK,CAAC,cAAmE,EAAE,MAAM,CAAC;QACrG,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACnG,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,oBAAoB,CAAC;YAC3C,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;YACtD,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;YAC7D,UAAU;YACV,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC,CAAC;IACP,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,gDAAgD;IAChD,KAAK,CAAC,cAAc,CAChB,IAAY,EACZ,CAAoC,EACpC,KAAoB,EACpB,GAA0B,EAC1B,aAAsB,EACtB,SAAS,GAAG,WAAW,EACvB,MAA8B;QAE9B,IAAI,CAAC;YACD,kDAAkD;YAClD,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;gBAC7C,KAAK,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzE,KAAK,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;gBACjF,KAAK,aAAa,EAAE,CAAC;oBACjB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/F,CAAC;gBACD,KAAK,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC;gBACxG,KAAK,kBAAkB,EAAE,CAAC;oBACtB,4EAA4E;oBAC5E,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;wBAClF,OAAO,aAAa,CAChB,2BAA2B,EAC3B,kDAAkD,EAClD,GAAG,EACH,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,gDAAgD,EAAE,CAChF,CAAC;oBACN,CAAC;oBACD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC7B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC/D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;oBAC1F,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC;wBAC/C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC;4BAC/B,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAA4B,EAAE;4BACjD,CAAC,CAAC,EAAE,CAAC;wBACT,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC;4BAC/B,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAsD,EAAE;4BAC3E,CAAC,CAAC,EAAE,CAAC;wBACT,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;4BAC5B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAA2B,EAAE;4BAC7C,CAAC,CAAC,EAAE,CAAC;qBACZ,CAAC,CAAC;oBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC1F,CAAC;gBACD,KAAK,kBAAkB,EAAE,CAAC;oBACtB,0EAA0E;oBAC1E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;wBACnE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;wBACvB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAqB,EAAE,CAAC,CAAC;oBAChG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC;gBAClF,CAAC;YACL,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACpD,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,mBAAmB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBAC5J,KAAK,UAAU,EAAE,CAAC;oBACd,6DAA6D;oBAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBACxG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;wBACvC,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,QAAQ,EAAE,YAAY;wBACtB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9E,CAAC,CAAC;oBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC7C,CAAC;gBACD,KAAK,aAAa,EAAE,CAAC;oBACjB,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxD,OAAO,aAAa,CAChB,2BAA2B,EAC3B,0CAA0C,EAC1C,GAAG,EACH,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,+BAA+B,EAAE,CACjE,CAAC;oBACN,CAAC;oBACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;wBACnC,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;wBAC9C,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;qBAC/G,CAAC,CAAC;oBACH,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC;gBACD,yDAAyD;gBACzD,8EAA8E;gBAC9E,KAAK,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAChF,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,EACpC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CACtD,EAAE,EAAE,CAAC;gBACN,kFAAkF;gBAClF,KAAK,mBAAmB,EAAE,OAAO;oBAC7B,EAAE,EAAE,IAAI;oBACR,MAAM,EAAE;wBACJ,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CACnC,SAAS,CAAC,WAAW,EACrB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAe,CAAC,CAAC,CAAC,SAAS,EACzD,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CACrF;qBACJ;iBACJ,CAAC;gBACF,KAAK,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,MAAgB,EAAE,CAAC,EAAE,CAAC;gBAC3J,KAAK,kBAAkB,EAAE,CAAC;oBACtB,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACpD,OAAO,aAAa,CAChB,2BAA2B,EAC3B,6CAA6C,EAC7C,GAAG,EACH,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iCAAiC,EAAE,CACjE,CAAC;oBACN,CAAC;oBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnG,CAAC;gBACD,0FAA0F;gBAC1F,8DAA8D;gBAC9D,KAAK,oBAAoB,EAAE,CAAC;oBACxB,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAChD,OAAO,aAAa,CAChB,2BAA2B,EAC3B,+CAA+C,EAC/C,GAAG,EACH,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,8CAA8C,EAAE,CAC5E,CAAC;oBACN,CAAC;oBACD,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;2BACzB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC9F,OAAO,aAAa,CAChB,2BAA2B,EAC3B,yDAAyD,EACzD,GAAG,EACH,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,mEAAmE,EAAE,CACvG,CAAC;oBACN,CAAC;oBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC;4BACnD,WAAW,EAAE,SAAS,CAAC,WAAW;4BAClC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;4BAC5F,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;4BACtD,EAAE,EAAE,CAAC,CAAC,EAAE;yBACX,CAAC,EAAE,CAAC;gBACT,CAAC;gBACD,KAAK,YAAY,EAAE,CAAC;oBAChB,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC/B,OAAO,aAAa,CAChB,2BAA2B,EAC3B,sCAAsC,EACtC,GAAG,EACH,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CACzD,CAAC;oBACN,CAAC;oBACD,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;2BACzB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC9F,OAAO,aAAa,CAChB,2BAA2B,EAC3B,iDAAiD,EACjD,GAAG,EACH,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,wDAAwD,EAAE,CAC5F,CAAC;oBACN,CAAC;oBACD,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC;wBACxE,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;4BACpC,CAAC,CAAC,CAAC,CAAC,QAAQ;4BACZ,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;wBAC1C,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACxE,CAAC,CAAC,CAAC;oBACJ,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,KAAK,SAAS,EAAE,CAAC;oBACb,+EAA+E;oBAC/E,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1D,OAAO,aAAa,CAChB,2BAA2B,EAC3B,uCAAuC,EACvC,GAAG,EACH,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,iCAAiC,EAAE,CACpE,CAAC;oBACN,CAAC;oBACD,MAAM,SAAS,GAAkB;wBAC7B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;wBACxC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB;qBAChF,CAAC;oBACF,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;oBAC/F,IAAI,MAAM,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;oBAC3F,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,KAAK,UAAU,EAAE,CAAC;oBACd,8EAA8E;oBAC9E,wDAAwD;oBACxD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACpD,OAAO,aAAa,CAChB,2BAA2B,EAC3B,0CAA0C,EAC1C,GAAG,EACH,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,qCAAqC,EAAE,CACrE,CAAC;oBACN,CAAC;oBACD,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBACrH,MAAM,OAAO,GAAkC,EAAE,CAAC;oBAClD,MAAM,UAAU,GAAsB,EAAE,CAAC;oBACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BACxB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;gCAC5B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gCAC1B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gCACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gCACzB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gCACzB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;6BAChC,CAAC,CAAC,CAAC;4BACJ,SAAS;wBACb,CAAC;wBACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BAC5B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACvB,CAAC;oBACL,CAAC;oBACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;wBACpC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;4BAC5B,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM;4BAClC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI;4BACnC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM;4BACvC,MAAM,EAAE,SAAS;4BACjB,QAAQ,EAAE,OAAO;yBACpB,CAAC,CAAC,CAAC;oBACR,CAAC;oBACD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC;wBACtC,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;oBACnF,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;4BAAE,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC9D,CAAC;oBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC7C,CAAC;gBACD,KAAK,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7N,KAAK,kBAAkB,EAAE,CAAC;oBACtB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC;wBAC7D,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;qBACjD,CAAC,CAAC;oBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;gBACvD,CAAC;gBACD,KAAK,kBAAkB,EAAE,CAAC;oBACtB,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5D,OAAO,aAAa,CAChB,2BAA2B,EAC3B,uCAAuC,EACvC,GAAG,EACH,EAAE,QAAQ,EAAE,mDAAmD,EAAE,CACpE,CAAC;oBACN,CAAC;oBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC;4BACzD,WAAW,EAAE,SAAS,CAAC,WAAW;4BAClC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;4BAC9C,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;yBAC1D,CAAC,EAAE,CAAC;gBACT,CAAC;gBACD,KAAK,kBAAkB,EAAE,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;2BAC1B,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1F,OAAO,aAAa,CAChB,2BAA2B,EAC3B,uCAAuC,EACvC,GAAG,EACH,EAAE,QAAQ,EAAE,uEAAuE,EAAE,CACxF,CAAC;oBACN,CAAC;oBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,mBAAmB,CAAC;4BAC9D,WAAW,EAAE,SAAS,CAAC,WAAW;4BAClC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;4BAC9C,QAAQ,EAAE,CAAC,CAAC,QAAyB;yBACxC,CAAC,EAAE,CAAC;gBACT,CAAC;gBACD,KAAK,mBAAmB,EAAE,CAAC;oBACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC;4BAC3D,WAAW,EAAE,SAAS,CAAC,WAAW;4BAClC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;yBACjD,CAAC,EAAE,CAAC;gBACT,CAAC;gBACD,KAAK,mBAAmB,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAC9B,OAAO,aAAa,CAChB,2BAA2B,EAC3B,uCAAuC,EACvC,GAAG,EACH,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CACrC,CAAC;oBACN,CAAC;oBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC;4BAC1D,WAAW,EAAE,SAAS,CAAC,WAAW;4BAClC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;4BAC9C,MAAM,EAAE,CAAC,CAAC,MAAM;yBACnB,CAAC,EAAE,CAAC;gBACT,CAAC;gBACD,KAAK,4BAA4B,EAAE,CAAC;oBAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,yBAAyB,CAAC;4BACpE,WAAW,EAAE,SAAS,CAAC,WAAW;yBACrC,CAAC,EAAE,CAAC;gBACT,CAAC;gBACD,KAAK,4BAA4B,EAAE,CAAC;oBAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,wBAAwB,CAAC;4BACnE,WAAW,EAAE,SAAS,CAAC,WAAW;4BAClC,MAAM,EAAE,CAAC,CAAC,MAA0B;yBACvC,CAAC,EAAE,CAAC;gBACT,CAAC;gBACD,SAAS,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,CAAC;YACzE,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,WAAW,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,aAAa,CAAC,eAAe,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;CAEJ"}
@@ -1,22 +1,30 @@
1
- import { type TranslatorContinuation } from "./Translator.ts";
2
- import { type AguiEvent, type UserMessage } from "./types.ts";
1
+ import Translator, { type TranslatorContinuation } from "./Translator.ts";
2
+ import { type AguiEvent, type LogEntryNotification, type UserMessage } from "./types.ts";
3
3
  export default class EventRouter {
4
4
  #private;
5
5
  constructor(args: {
6
6
  threadId: string;
7
+ replyThreads?: readonly string[];
7
8
  runId: string;
8
9
  modelWorkerId?: number | null;
9
10
  workspaceId?: number | null;
10
11
  continuation?: TranslatorContinuation;
11
12
  });
12
13
  runStarted(state?: AguiEvent): AguiEvent[];
13
- replay(entries: Array<Record<string, unknown>>, currentUser?: UserMessage): AguiEvent[];
14
+ submitted(messageId: string): void;
15
+ replay(entries: Array<Record<string, unknown>>, currentUser?: UserMessage, subagents?: ReadonlyArray<{
16
+ translator: Translator;
17
+ entries: Array<Record<string, unknown>>;
18
+ }>): AguiEvent[];
14
19
  interrupt(): {
15
20
  events: AguiEvent[];
16
21
  continuation: TranslatorContinuation;
17
22
  };
23
+ gateCall(entry: LogEntryNotification["entry"]): AguiEvent[];
24
+ subagentTranslator(args: Parameters<Translator["subagentTranslator"]>[0]): Translator;
18
25
  get reasoningOpen(): boolean;
19
26
  finish(): AguiEvent[];
27
+ fail(): AguiEvent[];
20
28
  route(method: string, params: unknown): AguiEvent[];
21
29
  }
22
30
  //# sourceMappingURL=EventRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventRouter.d.ts","sourceRoot":"","sources":["../src/EventRouter.ts"],"names":[],"mappings":"AAOA,OAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAa,KAAK,SAAS,EAA0H,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAQjM,MAAM,CAAC,OAAO,OAAO,WAAW;;IAG5B,YAAY,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,sBAAsB,CAAA;KAAE,EAEvJ;IAED,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAsC;IAChF,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,EAAE,CAAiD;IACxI,SAAS,IAAI;QAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAAC,YAAY,EAAE,sBAAsB,CAAA;KAAE,CAAgC;IAC1G,IAAI,aAAa,IAAI,OAAO,CAAkC;IAC9D,MAAM,IAAI,SAAS,EAAE,CAA6B;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,CAMlD;CAmDJ"}
1
+ {"version":3,"file":"EventRouter.d.ts","sourceRoot":"","sources":["../src/EventRouter.ts"],"names":[],"mappings":"AAOA,OAAO,UAAU,EAAE,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,oBAAoB,EAA+F,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAQjM,MAAM,CAAC,OAAO,OAAO,WAAW;;IAG5B,YAAY,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,sBAAsB,CAAA;KAAE,EAEzL;IAED,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAsC;IAChF,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAkC;IAEpE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,EACrE,SAAS,GAAE,aAAa,CAAC;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAM,GAAG,SAAS,EAAE,CAEnH;IACD,SAAS,IAAI;QAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAAC,YAAY,EAAE,sBAAsB,CAAA;KAAE,CAAgC;IAC1G,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,SAAS,EAAE,CAAoC;IAC/F,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAA6C;IAClI,IAAI,aAAa,IAAI,OAAO,CAAkC;IAC9D,MAAM,IAAI,SAAS,EAAE,CAA6B;IAClD,IAAI,IAAI,SAAS,EAAE,CAA2B;IAE9C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,CAMlD;CA+BJ"}
@@ -4,23 +4,29 @@
4
4
  // notices/stream → CUSTOM. Per-AG-UI-Run state (turn tracking, model-worker binding) lives in
5
5
  // the Translator. Proposals are ProposalHitl's domain (the terminate-resume tool-call),
6
6
  // so this router deliberately leaves loop/proposal to it — one owner per concern.
7
- var _a;
8
7
  import Translator, {} from "./Translator.js";
9
8
  import { EventType } from "./types.js";
10
9
  import { observedSync } from "./observe.js";
11
10
  import { Validator } from "@plurnk/plurnk-contracts";
12
11
  import { AGUI_NOTIFICATIONS } from "./AguiSurface.js";
13
12
  const notifications = AGUI_NOTIFICATIONS;
14
- class EventRouter {
13
+ export default class EventRouter {
15
14
  #t;
16
15
  constructor(args) {
17
16
  this.#t = new Translator(args);
18
17
  }
19
18
  runStarted(state) { return this.#t.runStarted(state); }
20
- replay(entries, currentUser) { return this.#t.replay(entries, currentUser); }
19
+ submitted(messageId) { this.#t.submitted(messageId); }
20
+ // {§agui-subagents} The bound Worker's rows and each observed subagent run's, as one conversation.
21
+ replay(entries, currentUser, subagents = []) {
22
+ return Translator.replayAll([{ translator: this.#t, entries }, ...subagents], currentUser);
23
+ }
21
24
  interrupt() { return this.#t.interrupt(); }
25
+ gateCall(entry) { return this.#t.gateCall(entry); }
26
+ subagentTranslator(args) { return this.#t.subagentTranslator(args); }
22
27
  get reasoningOpen() { return this.#t.reasoningOpen; }
23
28
  finish() { return this.#t.finish(); }
29
+ fail() { return this.#t.fail(); }
24
30
  route(method, params) {
25
31
  return observedSync(// {§observability-boundary} — the method name only; params stay off the span.
26
32
  "agui.event", { method }, () => this.#routeSettled(method, params));
@@ -33,47 +39,26 @@ class EventRouter {
33
39
  switch (method) {
34
40
  case "workspace/preparation": return [{
35
41
  type: EventType.STATE_DELTA,
36
- delta: [{ op: "replace", path: "/plurnk/status/preparation", value: params.preparation }],
42
+ delta: [{ op: "replace", path: "/plurnk/workspace/preparation", value: params.preparation }],
37
43
  }];
38
44
  case "log/entry": return this.#t.logEntry(params);
39
45
  case "loop/terminated": return this.#t.terminated(params);
40
46
  case "loop/packet": return this.#t.packet(params);
41
- case "notice/event": return this.#t.notice(params.notice ?? params);
47
+ case "notice/event": {
48
+ const { notice, loopId } = params;
49
+ return this.#t.notice(notice ?? params, typeof loopId === "number" ? loopId : null);
50
+ }
42
51
  case "reasoning/event": return this.#t.reasoning(params);
43
52
  case "outside/event": return this.#t.outside(params);
53
+ // {§agui-projection} Execution metadata: a stream's progress and its exact conclusion as they happen. The
54
+ // conversation receives an execution's result through its stream's observation ({§agui-call-result}).
44
55
  case "stream/event":
45
- case "stream/concluded": return [
46
- // Family channel (rich, full payload) AND the standard ACTIVITY channel (§475):
47
- // an exec/search stream is 'in-progress activity between chat messages'. A
48
- // replace-snapshot per event is the stateless conformant form — each carries the
49
- // full current view; activityType is the stream's scheme (SEARCH/SH/…).
50
- { type: EventType.CUSTOM, name: "plurnk.stream", value: params },
51
- _a.#activity(params),
52
- ];
56
+ case "stream/concluded": return [{ type: EventType.CUSTOM, name: "plurnk.stream", value: params }];
53
57
  case "loop/proposal":
54
58
  case "loop/interaction":
55
59
  return []; // ProposalHitl owns the shared terminate-resume path.
56
60
  default: return []; // workspace/created + anything unmodeled: the module handles out-of-band
57
61
  }
58
62
  }
59
- // A stream event → the standard ACTIVITY snapshot. messageId = the stream's entry id
60
- // (so a frontend keys deltas/updates to one activity); activityType = the scheme,
61
- // uppercased (SEARCH, SH, …), the protocol's discriminator; content = the full
62
- // payload; replace = true (each is the complete current view — stateless, conformant).
63
- static #activity(params) {
64
- const p = (params ?? {});
65
- const content = params !== null && typeof params === "object"
66
- ? params
67
- : { value: params };
68
- return {
69
- type: EventType.ACTIVITY_SNAPSHOT,
70
- messageId: `stream-${p.entryId ?? 0}`,
71
- activityType: typeof p.scheme === "string" && p.scheme.length > 0 ? p.scheme.toUpperCase() : "STREAM",
72
- content,
73
- replace: true,
74
- };
75
- }
76
63
  }
77
- _a = EventRouter;
78
- export default EventRouter;
79
64
  //# sourceMappingURL=EventRouter.js.map