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

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 +122 -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 +120 -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,83 @@
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
+ ### V2 beta canary
53
+
54
+ The production plugin stays on OpenCode's stable plugin contract. Set
55
+ `ORGX_OPENCODE_V2_CANARY=1` only in a canary process and call
56
+ `inspectOpenCodeV2Canary(context)` to inspect the beta context. The canary is
57
+ `ready` only when session hooks, tool hooks, and the public event stream are all
58
+ present; otherwise it returns an explicit `unsupported` state. Package-export
59
+ availability alone is not treated as runtime parity.
60
+
61
+ ### Resumable questions
62
+
63
+ OpenCode's native `question.asked` event can be routed to the same OrgX
64
+ Attention queue used by Codex and Claude. This is opt-in because a visible
65
+ OpenCode client can still answer its local prompt first:
66
+
67
+ ```bash
68
+ export ORGX_REMOTE_ATTENTION=1
69
+ export ORGX_INITIATIVE_ID=<uuid>
70
+ export ORGX_API_KEY=oxk_...
71
+ opencode
72
+ ```
73
+
74
+ The plugin creates one durable attention record per native question, waits for
75
+ all related answers, replies to the original OpenCode request through the v2
76
+ local SDK, and records `resuming`, `resumed`, or `resume_failed` receipts. If
77
+ the OpenCode process exits, the durable answer remains in OrgX but cannot be
78
+ claimed as resumed until a client applies it again.
79
+
80
+ You can also run the peer directly:
8
81
 
9
82
  ```bash
10
83
  npm install -g @useorgx/orgx-opencode-plugin
@@ -60,9 +133,32 @@ The OrgX wizard can later use them to detect missed OrgX writeback, generate a
60
133
  shareable public Work Graph readout, and hydrate the fingerprint into a signed-up
61
134
  workspace.
62
135
 
136
+ Generate a local summary-only Work Graph report without credentials:
137
+
138
+ ```bash
139
+ node scripts/orgx-work-graph-reconcile.mjs --output /tmp/orgx-work-graph-report.json
140
+ ```
141
+
142
+ Manually post the report to OrgX when you want an immediate replay:
143
+
144
+ ```bash
145
+ ORGX_API_KEY=... node scripts/orgx-work-graph-reconcile.mjs --post
146
+ ```
147
+
148
+ The runtime also replays summary-only Work Graph reports privately after
149
+ terminal task events. The report fingerprint is the server idempotency key, so
150
+ retries are safe and do not create duplicate work. No raw transcript is sent.
151
+
63
152
  ## License heartbeat
64
153
 
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.
154
+ `startPeer()` posts runtime presence every 20 seconds and a license heartbeat on
155
+ boot and every 7 days. Presence includes the shared `plugin-health.v1` contract:
156
+ endpoint/auth state, release identity, hook coverage, replay/dead-letter state,
157
+ tool-profile parity, and entity inspection coverage. The manifest is read from
158
+ `plugin.manifest.json`; when the fingerprint + signature are missing (dev
159
+ builds), the server marks the license `degraded` in permissive mode — read-only
160
+ features keep working, but deviation ingestion 402s until a signed manifest
161
+ ships.
66
162
 
67
163
  ## Skills
68
164
 
@@ -93,6 +189,29 @@ npm test
93
189
  npm run build
94
190
  ```
95
191
 
192
+ ## Release
193
+
194
+ Publishing is handled by `.github/workflows/publish.yml` when a GitHub release
195
+ is published. The workflow uses npm trusted publishing/OIDC and automatically
196
+ uses the `alpha` dist-tag for prerelease versions such as `0.1.0-alpha.1`.
197
+
198
+ Configure the package trusted publisher on npmjs.com with:
199
+
200
+ - Publisher: GitHub Actions
201
+ - Organization or user: `useorgx`
202
+ - Repository: `orgx-opencode-plugin`
203
+ - Workflow filename: `publish.yml`
204
+ - Allowed action: `npm publish`
205
+ - Environment name: leave empty unless this workflow is later moved behind a GitHub environment
206
+
207
+ The package `repository.url` must keep matching this GitHub repository exactly,
208
+ otherwise npm trusted publishing can fail authentication.
209
+
210
+ If the release workflow builds successfully but fails at `npm publish` with
211
+ `E404` / "not found or you do not have permission", re-check the npm package's
212
+ trusted publisher settings above. The workflow uses OIDC, so a local npm login
213
+ is not used by GitHub Actions.
214
+
96
215
  ## Status
97
216
 
98
217
  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"}