@sjawhar/opencode-legion-envoy 1.12.0 → 1.13.1

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.
@@ -13621,6 +13621,8 @@ var AskEditedEventPayloadSchema = object({
13621
13621
  var CommentEventPayloadSchema = object({
13622
13622
  id: string2().optional(),
13623
13623
  artifact_name: string2().optional(),
13624
+ project_key: string2().optional(),
13625
+ artifact_slug: string2().optional(),
13624
13626
  body: string2().optional(),
13625
13627
  reply_to: string2().nullish(),
13626
13628
  ask_id: string2().nullish(),
@@ -13821,7 +13823,7 @@ var dispatchToolSpecs = [
13821
13823
  quote: z.string().describe("Optional exact quoted document text.").optional(),
13822
13824
  occurrence: z.number({ int: true, min: 0 }).describe("Optional zero-based occurrence of quote.").optional(),
13823
13825
  body: z.string({ max: 2000 }).describe("Review comment, at most 2,000 characters."),
13824
- reply_to: z.string().describe("Optional comment id to reply to.").optional(),
13826
+ reply_to: z.string().describe("Full id of a comment to reply to; replying to any comment in a thread continues that " + "thread (an ask's clarification thread included).").optional(),
13825
13827
  reply_to_ask: z.string().describe("Optional ask id to reply to, threading this comment under that question. Mutually " + "exclusive with reply_to.").optional()
13826
13828
  }),
13827
13829
  validation: documentOwnerValidation(true)
@@ -14102,12 +14104,24 @@ var controllerIssue = strictObject({
14102
14104
  issue: nonEmptyString
14103
14105
  });
14104
14106
  var TREE_STATUSES = ["queued", "active", "lingering", "dead", "launch-failed", "closed"];
14105
- var stateWindowLocator = strictObject({
14107
+ var stateTmuxLocator = strictObject({
14108
+ runtime: literal("tmux"),
14106
14109
  tmuxSession: nonEmptyString,
14107
14110
  tmuxWindowId: nonEmptyString,
14108
14111
  tmuxPaneId: nonEmptyString.optional()
14109
14112
  });
14110
- var stateTreeLocator = stateWindowLocator.extend({ ompSessionFile: nonEmptyString.optional() });
14113
+ var stateK8sLocator = strictObject({
14114
+ runtime: literal("kubernetes"),
14115
+ namespace: nonEmptyString,
14116
+ podName: nonEmptyString,
14117
+ podUid: nonEmptyString,
14118
+ pvcName: nonEmptyString
14119
+ });
14120
+ var stateLocator = discriminatedUnion("runtime", [stateTmuxLocator, stateK8sLocator]);
14121
+ var stateTreeLocator = discriminatedUnion("runtime", [
14122
+ stateTmuxLocator.extend({ ompSessionFile: nonEmptyString.optional() }),
14123
+ stateK8sLocator.extend({ ompSessionFile: nonEmptyString.optional() })
14124
+ ]);
14111
14125
  var stateIssue = strictObject({
14112
14126
  key: nonEmptyString,
14113
14127
  title: string2(),
@@ -14134,7 +14148,7 @@ var stateRole = strictObject({
14134
14148
  sessionId: nonEmptyString.optional(),
14135
14149
  readyConfirmedAt: number2().optional(),
14136
14150
  launchFailures: number2().int().nonnegative().optional(),
14137
- locator: stateWindowLocator.optional()
14151
+ locator: stateLocator.optional()
14138
14152
  });
14139
14153
  var LegionDaemonApi = {
14140
14154
  State: {
@@ -14149,7 +14163,7 @@ var LegionDaemonApi = {
14149
14163
  queue: array(nonEmptyString)
14150
14164
  }),
14151
14165
  gates: record(string2(), stateGate),
14152
- controllerLocator: stateWindowLocator.optional(),
14166
+ controllerLocator: stateLocator.optional(),
14153
14167
  roles: record(string2(), stateRole),
14154
14168
  controllerPendingNotices: number2().int().nonnegative(),
14155
14169
  pendingStatusWrites: array(nonEmptyString)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/opencode-legion-envoy",
3
- "version": "1.12.0",
3
+ "version": "1.13.1",
4
4
  "type": "module",
5
5
  "main": "dist/src/server.js",
6
6
  "exports": {
@@ -36,6 +36,12 @@ it to the agent through `dispatch.token` in `~/.config/opencode/envoy.json` or `
36
36
  The server records the minting human as the owner of that session's writes. `DISPATCH_AGENT_TOKEN`
37
37
  is the shared devbox fallback; do not configure it for an individual agent.
38
38
 
39
+ The deployed Dispatch server's browser origin is configured separately with
40
+ `DISPATCH_SERVER_URL` in the deployment `compose/.env`. Do not change an
41
+ agent's `envoy.json` to set the GitHub OAuth callback origin: the value must
42
+ be the exact URL humans type in their browser, and the GitHub App callback is
43
+ `<DISPATCH_SERVER_URL>/auth/callback`.
44
+
39
45
  ## Writing a spec
40
46
 
41
47
  A spec has two readers: the human who decides reads the top; the implementer who builds reads the
@@ -284,10 +290,10 @@ dispatch_comment({ issue?, project?, artifact?, ref?, quote?, occurrence?, body,
284
290
  It returns issue or project-document owner details plus `comment` and, for writes, `topic`.
285
291
  `ref` names the owner (an issue or project-document reference) in place of `issue`/`project`.
286
292
  `quote` requires `artifact`; omit both for a floating issue comment. A reply (`reply_to`/`reply_to_ask`)
287
- takes no `quote`; it belongs to its parent's anchor. Use `reply_to` to continue a comment thread at
288
- its root; a reply to a resolved thread reopens it. Use `reply_to_ask` to reply directly under a
289
- question asked with `dispatch_ask`. Comments are edited only by their author from the dashboard. A
290
- delivered `comment.created` event carries the comment `id`; reply to it with
293
+ takes no `quote`; it belongs to its parent's anchor. Reply to any comment in a thread; the server
294
+ keeps threads flat. A reply to a resolved thread reopens it. Use `reply_to_ask` to reply directly
295
+ under a question asked with `dispatch_ask`. Comments are edited only by their author from the
296
+ dashboard. A delivered `comment.created` event carries the comment `id`; reply to it with
291
297
  `dispatch_comment({ reply_to: <id> })`.
292
298
 
293
299
  Propose an exact replacement instead of describing it: