@useorgx/orgx-opencode-plugin 0.1.0-alpha.1 → 0.1.0-alpha.11

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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +126 -3
  3. package/dist/OpenCodeDriver.d.ts +5 -2
  4. package/dist/OpenCodeDriver.d.ts.map +1 -1
  5. package/dist/OpenCodeDriver.js +12 -1
  6. package/dist/OpenCodeDriver.js.map +1 -1
  7. package/dist/attentionBridge.d.ts +38 -0
  8. package/dist/attentionBridge.d.ts.map +1 -0
  9. package/dist/attentionBridge.js +230 -0
  10. package/dist/attentionBridge.js.map +1 -0
  11. package/dist/childProcessEnv.d.ts +5 -0
  12. package/dist/childProcessEnv.d.ts.map +1 -0
  13. package/dist/childProcessEnv.js +17 -0
  14. package/dist/childProcessEnv.js.map +1 -0
  15. package/dist/cli.js +6 -3
  16. package/dist/cli.js.map +1 -1
  17. package/dist/contextPackHydration.d.ts +14 -0
  18. package/dist/contextPackHydration.d.ts.map +1 -0
  19. package/dist/contextPackHydration.js +57 -0
  20. package/dist/contextPackHydration.js.map +1 -0
  21. package/dist/continuityHealth.d.ts +48 -0
  22. package/dist/continuityHealth.d.ts.map +1 -0
  23. package/dist/continuityHealth.js +118 -0
  24. package/dist/continuityHealth.js.map +1 -0
  25. package/dist/index.d.ts +6 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +8 -3
  28. package/dist/index.js.map +1 -1
  29. package/dist/peer.d.ts +14 -0
  30. package/dist/peer.d.ts.map +1 -1
  31. package/dist/peer.js +142 -13
  32. package/dist/peer.js.map +1 -1
  33. package/dist/plugin.d.ts +17 -0
  34. package/dist/plugin.d.ts.map +1 -0
  35. package/dist/plugin.js +124 -0
  36. package/dist/plugin.js.map +1 -0
  37. package/dist/sentry.d.ts +4 -0
  38. package/dist/sentry.d.ts.map +1 -0
  39. package/dist/sentry.js +97 -0
  40. package/dist/sentry.js.map +1 -0
  41. package/dist/sessionSummaryBridge.d.ts +20 -0
  42. package/dist/sessionSummaryBridge.d.ts.map +1 -0
  43. package/dist/sessionSummaryBridge.js +125 -0
  44. package/dist/sessionSummaryBridge.js.map +1 -0
  45. package/dist/v2Canary.d.ts +13 -0
  46. package/dist/v2Canary.d.ts.map +1 -0
  47. package/dist/v2Canary.js +27 -0
  48. package/dist/v2Canary.js.map +1 -0
  49. package/dist/workGraphOutbox.js +2 -2
  50. package/dist/workGraphOutbox.js.map +1 -1
  51. package/dist/workGraphReplay.d.ts +9 -0
  52. package/dist/workGraphReplay.d.ts.map +1 -0
  53. package/dist/workGraphReplay.js +41 -0
  54. package/dist/workGraphReplay.js.map +1 -0
  55. package/package.json +30 -9
  56. package/plugin.manifest.json +8 -2
  57. package/scripts/orgx-work-graph-reconcile.mjs +994 -0
  58. package/scripts/orgx-work-graph-reconcile.node-test.mjs +131 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 OrgX
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,10 +1,87 @@
1
1
  # orgx-opencode-plugin
2
2
 
3
- OrgX plugin peer for **OpenCode**. One of three reference peers (alongside `orgx-claude-code-plugin` and `orgx-codex-plugin`) that implements [`@useorgx/orgx-gateway-sdk`](https://github.com/useorgx/orgx-gateway-sdk) Protocol v1.
3
+ OrgX plugin peer for **OpenCode**. One of three reference peers (alongside `orgx-claude-code-plugin` and `orgx-codex-plugin`) that uses [`@useorgx/orgx-gateway-sdk`](https://github.com/useorgx/orgx-gateway-sdk), pinned to a release that supports Gateway protocols v1 and v2.
4
+
5
+ The production peer deliberately negotiates v1 today: a successful OpenCode
6
+ session is not, by itself, a canonical `ProofPacket`. The protocol will move to
7
+ v2 only when the driver can return the envelope-bound proof, receipt, artifact,
8
+ cost, and outcome references required by `ExecutionResult`.
4
9
 
5
10
  **The peer model:** this plugin opens its own authenticated WebSocket to OrgX server, receives `task.dispatch` messages, runs them in your local OpenCode session (your subscription pays the tokens), and posts receipts + deviations back. It also writes compact, redacted Work Graph events locally so audit-first reconciliation can preserve progress and fingerprints across signup. No central broker. If another peer goes down, this one keeps running.
6
11
 
7
- ## Install + run
12
+ ## Install
13
+
14
+ OpenCode can load the peer as a native plugin from `opencode.json` once
15
+ `@useorgx/orgx-opencode-plugin@0.1.0-alpha.2` or newer is published to npm:
16
+
17
+ ```json
18
+ {
19
+ "$schema": "https://opencode.ai/config.json",
20
+ "plugin": ["@useorgx/orgx-opencode-plugin"]
21
+ }
22
+ ```
23
+
24
+ Then start OpenCode with the OrgX credentials available in the environment:
25
+
26
+ ```bash
27
+ export ORGX_API_KEY=oxk_...
28
+ export ORGX_WORKSPACE_ID=<uuid>
29
+ opencode
30
+ ```
31
+
32
+ The native plugin starts the OrgX peer when the local OpenCode server connects.
33
+ Set `ORGX_BASE_URL` only when testing against a non-production OrgX API. Until
34
+ the npm package is updated, use the direct peer command below from a checked-out
35
+ copy of this repository.
36
+
37
+ ### Automatic run receipts
38
+
39
+ When the OrgX Wizard capture hook is installed, the native plugin forwards an
40
+ allowlisted lifecycle shape into the shared durable session-summary queue.
41
+ `session.idle` becomes `RunEnd`, so one completed agent response can issue one
42
+ run receipt without pretending the multi-turn OpenCode conversation ended.
43
+ `session.deleted` remains the whole-session terminal boundary.
44
+
45
+ The adapter observes session, user-message, permission, and tool lifecycle
46
+ events. It never forwards message bodies, prompts, tool arguments or results,
47
+ error text, transcripts, credentials, or model content. The Wizard owns queue
48
+ durability, acknowledgement, retry, privacy normalization, and AWR delivery.
49
+ If the Wizard hook is absent or incompatible, the plugin records that capture
50
+ is unavailable and continues without inventing a receipt.
51
+
52
+ Set `ORGX_SESSION_SUMMARY_AUTO_FLUSH=off` for a deliberately offline run. The
53
+ adapter and Wizard retain the capture without starting a delivery worker;
54
+ `orgx-wizard hooks flush` can replay it later with server acknowledgement.
55
+
56
+ ### V2 beta canary
57
+
58
+ The production plugin stays on OpenCode's stable plugin contract. Set
59
+ `ORGX_OPENCODE_V2_CANARY=1` only in a canary process and call
60
+ `inspectOpenCodeV2Canary(context)` to inspect the beta context. The canary is
61
+ `ready` only when session hooks, tool hooks, and the public event stream are all
62
+ present; otherwise it returns an explicit `unsupported` state. Package-export
63
+ availability alone is not treated as runtime parity.
64
+
65
+ ### Resumable questions
66
+
67
+ OpenCode's native `question.asked` event can be routed to the same OrgX
68
+ Attention queue used by Codex and Claude. This is opt-in because a visible
69
+ OpenCode client can still answer its local prompt first:
70
+
71
+ ```bash
72
+ export ORGX_REMOTE_ATTENTION=1
73
+ export ORGX_INITIATIVE_ID=<uuid>
74
+ export ORGX_API_KEY=oxk_...
75
+ opencode
76
+ ```
77
+
78
+ The plugin creates one durable attention record per native question, waits for
79
+ all related answers, replies to the original OpenCode request through the v2
80
+ local SDK, and records `resuming`, `resumed`, or `resume_failed` receipts. If
81
+ the OpenCode process exits, the durable answer remains in OrgX but cannot be
82
+ claimed as resumed until a client applies it again.
83
+
84
+ You can also run the peer directly:
8
85
 
9
86
  ```bash
10
87
  npm install -g @useorgx/orgx-opencode-plugin
@@ -60,9 +137,32 @@ The OrgX wizard can later use them to detect missed OrgX writeback, generate a
60
137
  shareable public Work Graph readout, and hydrate the fingerprint into a signed-up
61
138
  workspace.
62
139
 
140
+ Generate a local summary-only Work Graph report without credentials:
141
+
142
+ ```bash
143
+ node scripts/orgx-work-graph-reconcile.mjs --output /tmp/orgx-work-graph-report.json
144
+ ```
145
+
146
+ Manually post the report to OrgX when you want an immediate replay:
147
+
148
+ ```bash
149
+ ORGX_API_KEY=... node scripts/orgx-work-graph-reconcile.mjs --post
150
+ ```
151
+
152
+ The runtime also replays summary-only Work Graph reports privately after
153
+ terminal task events. The report fingerprint is the server idempotency key, so
154
+ retries are safe and do not create duplicate work. No raw transcript is sent.
155
+
63
156
  ## License heartbeat
64
157
 
65
- `startPeer()` posts `POST /api/v1/licenses/heartbeat` on boot and then every 7 days. The manifest is read from `plugin.manifest.json`; when the fingerprint + signature are missing (dev builds), the server marks the license `degraded` in permissive mode — read-only features keep working, but deviation ingestion 402s until a signed manifest ships.
158
+ `startPeer()` posts runtime presence every 20 seconds and a license heartbeat on
159
+ boot and every 7 days. Presence includes the shared `plugin-health.v1` contract:
160
+ endpoint/auth state, release identity, hook coverage, replay/dead-letter state,
161
+ tool-profile parity, and entity inspection coverage. The manifest is read from
162
+ `plugin.manifest.json`; when the fingerprint + signature are missing (dev
163
+ builds), the server marks the license `degraded` in permissive mode — read-only
164
+ features keep working, but deviation ingestion 402s until a signed manifest
165
+ ships.
66
166
 
67
167
  ## Skills
68
168
 
@@ -93,6 +193,29 @@ npm test
93
193
  npm run build
94
194
  ```
95
195
 
196
+ ## Release
197
+
198
+ Publishing is handled by `.github/workflows/publish.yml` when a GitHub release
199
+ is published. The workflow uses npm trusted publishing/OIDC and automatically
200
+ uses the `alpha` dist-tag for prerelease versions such as `0.1.0-alpha.1`.
201
+
202
+ Configure the package trusted publisher on npmjs.com with:
203
+
204
+ - Publisher: GitHub Actions
205
+ - Organization or user: `useorgx`
206
+ - Repository: `orgx-opencode-plugin`
207
+ - Workflow filename: `publish.yml`
208
+ - Allowed action: `npm publish`
209
+ - Environment name: leave empty unless this workflow is later moved behind a GitHub environment
210
+
211
+ The package `repository.url` must keep matching this GitHub repository exactly,
212
+ otherwise npm trusted publishing can fail authentication.
213
+
214
+ If the release workflow builds successfully but fails at `npm publish` with
215
+ `E404` / "not found or you do not have permission", re-check the npm package's
216
+ trusted publisher settings above. The workflow uses OIDC, so a local npm login
217
+ is not used by GitHub Actions.
218
+
96
219
  ## Status
97
220
 
98
221
  Alpha. Part of the Sovereign Execution initiative (`993cabeb`).
@@ -23,7 +23,7 @@
23
23
  * connect and cached per run). When a rule matches, we emit
24
24
  * task.deviation — the peer forwards it to the server.
25
25
  */
26
- import type { Driver, DriverStatus, DriverProbe, DispatchableTask, PeerToServerMessage } from '@useorgx/orgx-gateway-sdk';
26
+ import type { Driver, DriverOutboundMessage, DriverStatus, DriverProbe, DispatchableTask } from '@useorgx/orgx-gateway-sdk';
27
27
  type SkillRule = {
28
28
  skill_id: string;
29
29
  match: {
@@ -44,6 +44,8 @@ export type OpenCodeDriverOptions = {
44
44
  workGraphOutboxPath?: string | false;
45
45
  /** Source client name for Work Graph reconciliation. */
46
46
  sourceClient?: string;
47
+ /** Best-effort private replay after terminal events. */
48
+ replayWorkGraph?: () => Promise<void>;
47
49
  };
48
50
  export declare class OpenCodeDriver implements Driver {
49
51
  readonly id: "opencode";
@@ -55,9 +57,10 @@ export declare class OpenCodeDriver implements Driver {
55
57
  dispatch(task: DispatchableTask, context: {
56
58
  run_id: string;
57
59
  idempotency_key: string;
58
- }): AsyncIterable<PeerToServerMessage>;
60
+ }): AsyncIterable<DriverOutboundMessage>;
59
61
  cancel(runId: string): Promise<void>;
60
62
  private recordWorkGraph;
63
+ private replayWorkGraph;
61
64
  private resolvePort;
62
65
  private createSession;
63
66
  private streamSessionEvents;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenCodeDriver.d.ts","sourceRoot":"","sources":["../src/OpenCodeDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAiBnC,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,WAAW,GAAG,WAAW,CAAA;KAAE,CAAC;IAC1D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACxC,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrC,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,cAAe,YAAW,MAAM;IAC3C,QAAQ,CAAC,EAAE,EAAG,UAAU,CAAU;IAElC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;gBAEjC,IAAI,GAAE,qBAA0B;IAItC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA+B/B,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAwB5B,QAAQ,CACb,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GACnD,aAAa,CAAC,mBAAmB,CAAC;IA0I/B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAW5B,eAAe;YA0Bf,WAAW;YAYX,aAAa;YA6BZ,mBAAmB;CA6BnC"}
1
+ {"version":3,"file":"OpenCodeDriver.d.ts","sourceRoot":"","sources":["../src/OpenCodeDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,KAAK,EACV,MAAM,EACN,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAkBnC,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,WAAW,GAAG,WAAW,CAAA;KAAE,CAAC;IAC1D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACxC,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrC,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AAEF,qBAAa,cAAe,YAAW,MAAM;IAC3C,QAAQ,CAAC,EAAE,EAAG,UAAU,CAAU;IAElC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;gBAEjC,IAAI,GAAE,qBAA0B;IAItC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA+B/B,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAwB5B,QAAQ,CACb,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GACnD,aAAa,CAAC,qBAAqB,CAAC;IA4IjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAW5B,eAAe;YA0Bf,eAAe;YAQf,WAAW;YAYX,aAAa;YA6BZ,mBAAmB;CA6BnC"}
@@ -26,7 +26,8 @@
26
26
  import { promises as fs } from 'fs';
27
27
  import { homedir, platform } from 'os';
28
28
  import { join } from 'path';
29
- import { recordWorkGraphEvent } from './workGraphOutbox';
29
+ import { recordWorkGraphEvent } from './workGraphOutbox.js';
30
+ import { capturePluginException } from './sentry.js';
30
31
  export class OpenCodeDriver {
31
32
  id = 'opencode';
32
33
  portCache = null;
@@ -129,6 +130,7 @@ export class OpenCodeDriver {
129
130
  reason: event.message,
130
131
  recoverable: event.recoverable === true,
131
132
  };
133
+ await this.replayWorkGraph();
132
134
  return;
133
135
  }
134
136
  if (event.kind === 'assistant_completed') {
@@ -155,6 +157,7 @@ export class OpenCodeDriver {
155
157
  // job that backfills from task_type_baselines.
156
158
  cost_estimate_cents: 0,
157
159
  };
160
+ await this.replayWorkGraph();
158
161
  return;
159
162
  }
160
163
  // Narrate progress to the server + check deviation rules.
@@ -241,6 +244,14 @@ export class OpenCodeDriver {
241
244
  },
242
245
  });
243
246
  }
247
+ async replayWorkGraph() {
248
+ try {
249
+ await this.opts.replayWorkGraph?.();
250
+ }
251
+ catch (error) {
252
+ capturePluginException(error, { stage: 'work_graph_replay' });
253
+ }
254
+ }
244
255
  async resolvePort() {
245
256
  if (this.portCache !== null)
246
257
  return this.portCache;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenCodeDriver.js","sourceRoot":"","sources":["../src/OpenCodeDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenCodeDriver.js","sourceRoot":"","sources":["../src/OpenCodeDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ type QuestionOption = {
2
+ label: string;
3
+ description?: string;
4
+ };
5
+ export type OpenCodeQuestion = {
6
+ question: string;
7
+ header?: string;
8
+ options?: QuestionOption[];
9
+ multiple?: boolean;
10
+ };
11
+ export type OpenCodeQuestionRequest = {
12
+ id: string;
13
+ sessionID: string;
14
+ questions: OpenCodeQuestion[];
15
+ tool?: {
16
+ messageID?: string;
17
+ callID?: string;
18
+ };
19
+ };
20
+ type FetchLike = typeof fetch;
21
+ type BridgeOptions = {
22
+ request: OpenCodeQuestionRequest;
23
+ apiKey: string;
24
+ initiativeId: string;
25
+ runId?: string;
26
+ workstreamId?: string;
27
+ baseUrl?: string;
28
+ reply: (answers: string[][]) => Promise<unknown>;
29
+ fetchImpl?: FetchLike;
30
+ pollIntervalMs?: number;
31
+ maxWaitMs?: number;
32
+ signal?: AbortSignal;
33
+ onCreated?: (attentionIds: string[]) => void;
34
+ };
35
+ export declare function parseQuestionRequest(event: unknown): OpenCodeQuestionRequest | null;
36
+ export declare function bridgeOpenCodeQuestions(options: BridgeOptions): Promise<void>;
37
+ export {};
38
+ //# sourceMappingURL=attentionBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attentionBridge.d.ts","sourceRoot":"","sources":["../src/attentionBridge.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAAC;AAEF,KAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC9C,CAAC;AAQF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CA0BnF;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiHnF"}
@@ -0,0 +1,230 @@
1
+ export function parseQuestionRequest(event) {
2
+ if (!event || typeof event !== 'object')
3
+ return null;
4
+ const record = event;
5
+ if (record.type !== 'question.asked')
6
+ return null;
7
+ const payload = asRecord(record.properties) ?? asRecord(record.data);
8
+ if (!payload)
9
+ return null;
10
+ const id = string(payload.id ?? payload.requestID);
11
+ const sessionID = string(payload.sessionID);
12
+ const questions = Array.isArray(payload.questions)
13
+ ? payload.questions.map(normalizeQuestion).filter(Boolean)
14
+ : [];
15
+ if (!id || !sessionID || questions.length === 0)
16
+ return null;
17
+ const toolRecord = asRecord(payload.tool);
18
+ return {
19
+ id,
20
+ sessionID,
21
+ questions: questions,
22
+ ...(toolRecord
23
+ ? {
24
+ tool: {
25
+ messageID: string(toolRecord.messageID),
26
+ callID: string(toolRecord.callID),
27
+ },
28
+ }
29
+ : {}),
30
+ };
31
+ }
32
+ export async function bridgeOpenCodeQuestions(options) {
33
+ const request = options.fetchImpl ?? globalThis.fetch;
34
+ const baseUrl = (options.baseUrl ?? 'https://useorgx.com').replace(/\/$/, '');
35
+ const created = [];
36
+ for (const [questionIndex, question] of options.request.questions.entries()) {
37
+ throwIfAborted(options.signal);
38
+ const optionIds = new Map();
39
+ const optionRecords = (question.options ?? []).map((option, optionIndex) => {
40
+ const id = `q${questionIndex + 1}-o${optionIndex + 1}`;
41
+ optionIds.set(id, option.label);
42
+ return { id, label: option.label, ...(option.description ? { description: option.description } : {}) };
43
+ });
44
+ const payload = await requestJson(request, `${baseUrl}/api/client/live/attention`, options.apiKey, {
45
+ initiative_id: options.initiativeId,
46
+ ...(options.runId ? { run_id: options.runId } : {}),
47
+ ...(!options.runId
48
+ ? {
49
+ correlation_id: trimTo(`opencode:${options.request.sessionID}`, 120),
50
+ source_client: 'opencode',
51
+ }
52
+ : { source_client: 'opencode' }),
53
+ ...(options.workstreamId ? { workstream_id: options.workstreamId } : {}),
54
+ idempotency_key: trimTo(`opencode:${options.request.sessionID}:${options.request.id}:${questionIndex}`, 120),
55
+ question: question.question,
56
+ context: [
57
+ question.header,
58
+ options.request.questions.length > 1
59
+ ? `Question ${questionIndex + 1} of ${options.request.questions.length}. OpenCode resumes after every answer arrives.`
60
+ : null,
61
+ ]
62
+ .filter(Boolean)
63
+ .join('\n\n'),
64
+ ...(optionRecords.length ? { options: optionRecords } : {}),
65
+ blocking: true,
66
+ attention_kind: 'question',
67
+ response_mode: question.multiple
68
+ ? 'multi_select'
69
+ : optionRecords.length
70
+ ? 'single_select'
71
+ : 'free_text',
72
+ source_tool: 'question.asked',
73
+ source_session_id: options.request.sessionID,
74
+ source_event_id: trimTo(`${options.request.id}:${questionIndex}`, 255),
75
+ impact_if_delayed: 'The OpenCode session remains paused at its native question until every answer is returned.',
76
+ recommended_action: 'Answer here to continue the same OpenCode session.',
77
+ continuation: {
78
+ strategy: 'reply_in_place',
79
+ session_handle: options.request.sessionID,
80
+ tool_call_id: options.request.tool?.callID ?? options.request.id,
81
+ capability_version: 'opencode-question-v1',
82
+ },
83
+ metadata: {
84
+ opencode: {
85
+ request_id: options.request.id,
86
+ message_id: options.request.tool?.messageID ?? null,
87
+ call_id: options.request.tool?.callID ?? null,
88
+ question_index: questionIndex,
89
+ question_count: options.request.questions.length,
90
+ },
91
+ },
92
+ }, options.signal);
93
+ const id = string(payload.decision_id);
94
+ if (!id)
95
+ throw new Error('OrgX attention response did not include a decision id');
96
+ created.push({ id, question, optionIds });
97
+ options.onCreated?.(created.map((item) => item.id));
98
+ }
99
+ const answers = await Promise.all(created.map(async (item) => {
100
+ const payload = await pollAttention({
101
+ request,
102
+ baseUrl,
103
+ apiKey: options.apiKey,
104
+ attentionId: item.id,
105
+ pollIntervalMs: options.pollIntervalMs ?? 2_000,
106
+ maxWaitMs: options.maxWaitMs ?? 86_400_000,
107
+ signal: options.signal,
108
+ });
109
+ return normalizeAnswer(payload.question, item.optionIds);
110
+ }));
111
+ await acknowledgeAll(request, baseUrl, options.apiKey, created, 'resuming', {
112
+ session_handle: options.request.sessionID,
113
+ detail: 'Returning every owner answer to the native OpenCode question.',
114
+ });
115
+ try {
116
+ await options.reply(answers);
117
+ }
118
+ catch (error) {
119
+ await acknowledgeAll(request, baseUrl, options.apiKey, created, 'resume_failed', {
120
+ session_handle: options.request.sessionID,
121
+ detail: error instanceof Error ? error.message : String(error),
122
+ });
123
+ throw error;
124
+ }
125
+ await acknowledgeAll(request, baseUrl, options.apiKey, created, 'resumed', {
126
+ session_handle: options.request.sessionID,
127
+ detail: 'OpenCode accepted the answers in the same session.',
128
+ });
129
+ }
130
+ async function pollAttention(input) {
131
+ const deadline = Date.now() + input.maxWaitMs;
132
+ while (Date.now() < deadline) {
133
+ throwIfAborted(input.signal);
134
+ const payload = await requestJson(input.request, `${input.baseUrl}/api/client/live/attention/${encodeURIComponent(input.attentionId)}`, input.apiKey, undefined, input.signal, 'GET');
135
+ const question = asRecord(payload.question);
136
+ if (question?.resolved === true)
137
+ return payload;
138
+ await wait(input.pollIntervalMs, input.signal);
139
+ }
140
+ throw new Error(`OpenCode attention timed out after ${input.maxWaitMs}ms`);
141
+ }
142
+ async function acknowledgeAll(request, baseUrl, apiKey, items, state, detail) {
143
+ await Promise.all(items.map((item) => requestJson(request, `${baseUrl}/api/client/live/attention/${encodeURIComponent(item.id)}`, apiKey, {
144
+ state,
145
+ idempotency_key: `opencode:${item.id}:${state}`,
146
+ ...detail,
147
+ })));
148
+ }
149
+ async function requestJson(request, url, apiKey, body, signal, method = 'POST') {
150
+ const response = await request(url, {
151
+ method,
152
+ headers: {
153
+ Authorization: `Bearer ${apiKey}`,
154
+ 'Content-Type': 'application/json',
155
+ },
156
+ ...(body === undefined ? {} : { body: JSON.stringify(body) }),
157
+ signal,
158
+ });
159
+ const payload = (await response.json().catch(() => ({})));
160
+ if (!response.ok) {
161
+ throw new Error(`OrgX attention request failed (${response.status}): ${string(payload.error) ?? 'unknown error'}`);
162
+ }
163
+ return payload;
164
+ }
165
+ function normalizeQuestion(value) {
166
+ const record = asRecord(value);
167
+ const question = string(record?.question);
168
+ if (!record || !question)
169
+ return null;
170
+ const options = Array.isArray(record.options)
171
+ ? record.options
172
+ .map((option) => {
173
+ const item = asRecord(option);
174
+ const label = string(item?.label);
175
+ return label
176
+ ? { label, ...(string(item?.description) ? { description: string(item?.description) } : {}) }
177
+ : null;
178
+ })
179
+ .filter(Boolean)
180
+ : [];
181
+ return {
182
+ question,
183
+ ...(string(record.header) ? { header: string(record.header) } : {}),
184
+ ...(options.length ? { options: options } : {}),
185
+ ...(record.multiple === true ? { multiple: true } : {}),
186
+ };
187
+ }
188
+ function normalizeAnswer(value, optionIds) {
189
+ const question = asRecord(value);
190
+ const resolution = asRecord(question?.resolution_context);
191
+ const raw = question?.answer ??
192
+ resolution?.selected_option_ids ??
193
+ resolution?.option_ids ??
194
+ resolution?.answer ??
195
+ resolution?.note ??
196
+ '';
197
+ const values = Array.isArray(raw) ? raw : [raw];
198
+ return values
199
+ .filter((item) => item != null && String(item).trim())
200
+ .map((item) => optionIds.get(String(item)) ?? String(item));
201
+ }
202
+ function asRecord(value) {
203
+ return value && typeof value === 'object' && !Array.isArray(value)
204
+ ? value
205
+ : null;
206
+ }
207
+ function string(value) {
208
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
209
+ }
210
+ function trimTo(value, max) {
211
+ return value.length <= max ? value : value.slice(value.length - max);
212
+ }
213
+ function throwIfAborted(signal) {
214
+ if (signal?.aborted)
215
+ throw signal.reason ?? new Error('OpenCode attention was cancelled');
216
+ }
217
+ function wait(ms, signal) {
218
+ if (ms <= 0)
219
+ return Promise.resolve();
220
+ return new Promise((resolve, reject) => {
221
+ const timer = setTimeout(resolve, ms);
222
+ if (!signal)
223
+ return;
224
+ signal.addEventListener('abort', () => {
225
+ clearTimeout(timer);
226
+ reject(signal.reason ?? new Error('OpenCode attention was cancelled'));
227
+ }, { once: true });
228
+ });
229
+ }
230
+ //# sourceMappingURL=attentionBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attentionBridge.js","sourceRoot":"","sources":["../src/attentionBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type ProcessEnv = Record<string, string | undefined>;
2
+ export declare const GATEWAY_SECRET_ENV_KEYS: readonly ["ORGX_API_KEY", "ORGX_GATEWAY_KEY"];
3
+ export declare function captureGatewayCredential(env: ProcessEnv): string | undefined;
4
+ export declare function sanitizedChildProcessEnv(base: ProcessEnv, overrides?: ProcessEnv): ProcessEnv;
5
+ //# sourceMappingURL=childProcessEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"childProcessEnv.d.ts","sourceRoot":"","sources":["../src/childProcessEnv.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE5D,eAAO,MAAM,uBAAuB,+CAG1B,CAAC;AAEX,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAM5E;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,UAAU,EAChB,SAAS,GAAE,UAAe,GACzB,UAAU,CAIZ"}
@@ -0,0 +1,17 @@
1
+ export const GATEWAY_SECRET_ENV_KEYS = [
2
+ 'ORGX_API_KEY',
3
+ 'ORGX_GATEWAY_KEY',
4
+ ];
5
+ export function captureGatewayCredential(env) {
6
+ const credential = env.ORGX_API_KEY?.trim() || env.ORGX_GATEWAY_KEY?.trim() || undefined;
7
+ for (const key of GATEWAY_SECRET_ENV_KEYS)
8
+ delete env[key];
9
+ return credential;
10
+ }
11
+ export function sanitizedChildProcessEnv(base, overrides = {}) {
12
+ const childEnv = { ...base, ...overrides };
13
+ for (const key of GATEWAY_SECRET_ENV_KEYS)
14
+ delete childEnv[key];
15
+ return childEnv;
16
+ }
17
+ //# sourceMappingURL=childProcessEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"childProcessEnv.js","sourceRoot":"","sources":["../src/childProcessEnv.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,cAAc;IACd,kBAAkB;CACV,CAAC;AAEX,MAAM,UAAU,wBAAwB,CAAC,GAAe;IACtD,MAAM,UAAU,GACd,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAExE,KAAK,MAAM,GAAG,IAAI,uBAAuB;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAgB,EAChB,YAAwB,EAAE;IAE1B,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,uBAAuB;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChE,OAAO,QAAQ,CAAC;AAClB,CAAC"}