overlord-cli 0.2608250836.0 → 0.2608251110.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.
@@ -316,7 +316,7 @@ connectors/
316
316
  README.md ← architectural overview
317
317
  ```
318
318
 
319
- No adapter implementations have landed yet. When they do, the Claude and Codex adapters serve as the reference implementations.
319
+ The Claude and Codex adapters are the reference implementations; Cursor, Pi, Antigravity, and OpenCode adapters have also shipped. See `connectors/HARNESS-MATRIX.md` for the current per-adapter capability matrix.
320
320
 
321
321
  ---
322
322
 
@@ -1 +1 @@
1
- 0.3.36
1
+ 0.3.37
@@ -1,4 +1,4 @@
1
- contractVersion: "117"
1
+ contractVersion: "123"
2
2
  componentType: connector
3
3
  componentKey: antigravity
4
4
  label: "Antigravity Connector"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://antigravity.google/schemas/v1/plugin.json",
3
3
  "name": "overlord",
4
- "version": "0.3.36",
4
+ "version": "0.3.37",
5
5
  "description": "Chat-driven access to Overlord mission protocol workflows through skills and MCP.",
6
6
  "author": {
7
7
  "name": "Cooperativ",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overlord",
3
- "version": "0.3.36",
3
+ "version": "0.3.37",
4
4
  "description": "Overlord mission protocol workflow for Claude Code — attach/update/ask/deliver, slash commands, and hook-driven activity capture.",
5
5
  "author": {
6
6
  "name": "Cooperativ",
@@ -1,4 +1,4 @@
1
- contractVersion: "117"
1
+ contractVersion: "123"
2
2
  componentType: connector
3
3
  componentKey: claude
4
4
  label: "Claude Code Connector"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overlord",
3
- "version": "0.3.36",
3
+ "version": "0.3.37",
4
4
  "description": "Chat-driven access to Overlord mission protocol workflows with hook-driven activity capture.",
5
5
  "author": {
6
6
  "name": "Cooperativ",
@@ -1,4 +1,4 @@
1
- contractVersion: "117"
1
+ contractVersion: "123"
2
2
  componentType: connector
3
3
  componentKey: codex
4
4
  label: "Codex Connector"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overlord",
3
- "version": "0.3.36",
3
+ "version": "0.3.37",
4
4
  "description": "Overlord mission protocol workflow for Cursor — attach/update/ask/deliver, slash commands, MCP bridge, and follow-up capture.",
5
5
  "author": {
6
6
  "name": "Cooperativ",
@@ -1,4 +1,4 @@
1
- contractVersion: "117"
1
+ contractVersion: "123"
2
2
  componentType: connector
3
3
  componentKey: cursor
4
4
  label: "Cursor Connector"
@@ -1,4 +1,4 @@
1
- contractVersion: "117"
1
+ contractVersion: "123"
2
2
  componentType: connector
3
3
  componentKey: opencode
4
4
  label: "OpenCode Connector"
@@ -1,4 +1,4 @@
1
- contractVersion: "117"
1
+ contractVersion: "123"
2
2
  componentType: connector
3
3
  componentKey: pi
4
4
  label: "PI Connector"
@@ -478,14 +478,14 @@ const tools = [
478
478
  name: 'overlord_manage_run_queue',
479
479
  title: 'Manage Run Queues',
480
480
  description:
481
- "Use this only when the user explicitly asks to create, rename, pause, resume, delete, or reorder the project's Run Queue definitions. These are administrative project-configuration actions and require a full-scope token; adding, moving, or removing objectives inside a queue uses overlord_queue_objective and overlord_reorder_run_queue instead.",
481
+ "Use this only when the user explicitly asks to create, rename, pause, resume, delete, or reorder the project's Run Queue definitions, or to retry one held queue entry. The queue-definition actions are administrative project-configuration and require a full-scope token; adding, moving, or removing objectives inside a queue uses overlord_queue_objective and overlord_reorder_run_queue instead.",
482
482
  inputSchema: objectSchema(
483
483
  {
484
484
  action: {
485
485
  type: 'string',
486
- enum: ['create', 'update', 'delete', 'reorder_queues'],
486
+ enum: ['create', 'update', 'delete', 'reorder_queues', 'retry_entry'],
487
487
  description:
488
- 'create a queue, update (rename/pause/resume) one, delete one, or reorder the queue definitions.'
488
+ 'create a queue, update (rename/pause/resume) one, delete one, reorder the queue definitions, or retry_entry to clear one held entry\'s hold and attempt budget so the dispatcher tries it again.'
489
489
  },
490
490
  projectId: stringProperty(
491
491
  'Project UUID, slug, or name. Required for create and reorder_queues.'
@@ -498,6 +498,12 @@ const tools = [
498
498
  moveEntriesTo: stringProperty(
499
499
  'delete only: destination queue UUID or unambiguous name. Required when the queue still holds entries.'
500
500
  ),
501
+ entry: stringProperty(
502
+ 'retry_entry only: entry UUID, objective UUID, or objective display id. One of entry or objectiveId is required.'
503
+ ),
504
+ objectiveId: stringProperty(
505
+ 'retry_entry only: objective UUID or display id whose live entry should be retried.'
506
+ ),
501
507
  orderedQueues: {
502
508
  type: 'array',
503
509
  description:
@@ -953,6 +959,19 @@ async function callOverlordTool(name, args) {
953
959
  });
954
960
  }
955
961
 
962
+ if (action === 'retry_entry') {
963
+ const entry = optionalString(args, 'entry');
964
+ const objectiveRef = optionalString(args, 'objectiveId');
965
+ if (!entry && !objectiveRef) {
966
+ throw new Error("action 'retry_entry' requires entry or objectiveId");
967
+ }
968
+ return runProtocol('retry-queue-entry', {
969
+ ...(entry ? { entry } : {}),
970
+ ...(objectiveRef ? { 'objective-id': objectiveRef } : {}),
971
+ ...(projectRef ? { 'project-id': projectRef } : {})
972
+ });
973
+ }
974
+
956
975
  if (action === 'reorder_queues') {
957
976
  if (!projectRef) throw new Error("action 'reorder_queues' requires projectId");
958
977
  if (
@@ -1091,7 +1110,7 @@ process.stdin.on('data', async chunk => {
1091
1110
  result: {
1092
1111
  protocolVersion: PROTOCOL_VERSION,
1093
1112
  capabilities: { tools: { listChanged: false } },
1094
- serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.36' }
1113
+ serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.37' }
1095
1114
  }
1096
1115
  });
1097
1116
  continue;
@@ -132,7 +132,11 @@ Requirements:
132
132
 
133
133
  - Install local Cursor plugin/rules/commands.
134
134
  - Add `beforeSubmitPrompt` hook to record follow-ups.
135
- - Map `beforeShellExecution` and `beforeMCPExecution` onto the canonical observational `PermissionRequest` hook without overriding Cursor's permission decision.
135
+ - Wire `beforeShellExecution`, `beforeMCPExecution`, and `preToolUse` to the Agent
136
+ Session Module's blocking Decide capability (`ovld agent-session request`) per
137
+ the descriptor — Cursor has no single universal `PermissionRequest` event, so
138
+ do not route all three through one shared hook. See
139
+ `connectors/adapters/cursor/CAPABILITIES.md` for current per-capability status.
136
140
  - Add `postToolUse` edit capture for file tools and shell-mediated changes.
137
141
  - Add a bounded `stop` hook for pending-delivery reminders.
138
142
  - Add permission allow rules for protocol commands.
@@ -212,13 +216,24 @@ Requirements:
212
216
  - Records native session/resume ID when the harness exposes one.
213
217
  - Does not restart execution by itself.
214
218
 
215
- ### Permission Hook
219
+ ### Permission Hook (Decide capability)
220
+
221
+ This is the Agent Session Module's **Decide** capability, not a one-way event
222
+ push. See `planning/feature-plans/agent-session-module.md` and
223
+ `docs/src/content/docs/docs-for-agents/agent-sessions.mdx` for the current
224
+ architecture; `connectors/HARNESS-MATRIX.md` for live per-adapter status.
216
225
 
217
226
  Requirements:
218
227
 
219
- - Publishes `permission_request` with tool/request payload.
228
+ - Creates an answerable request (`ovld agent-session request`) carrying the
229
+ tool/request payload, one of the four request kinds (`permission`,
230
+ `question`, `choice`, `retry`), and a decision window.
231
+ - Blocks the harness's tool call until the request is answered, the window
232
+ elapses, or a fallback decision applies — it does not merely publish an
233
+ event and continue.
220
234
  - Does not leak secrets.
221
- - Works without requiring a web app.
235
+ - Degrades gracefully without a web app open: the harness's own fallback
236
+ decision (allow/deny/ask) applies when no one answers in time.
222
237
 
223
238
  ### Stop Hook
224
239
 
package/dist/index.js CHANGED
@@ -22176,6 +22176,21 @@ dequeue-objective:
22176
22176
  Returns:
22177
22177
  { removed, objectiveId }. Already-unqueued objectives return removed: false.
22178
22178
 
22179
+ retry-queue-entry:
22180
+ Purpose:
22181
+ Retry one held Run Queue entry: clears its hold and resets the attempt
22182
+ budget so the dispatcher tries it again on the next tick.
22183
+ Required (one of):
22184
+ --objective-id <id> Objective UUID or display id with a live entry
22185
+ --entry <id> Entry UUID, objective UUID, or display id
22186
+ Optional:
22187
+ --project-id <id|slug|name> Confirms the entry's project
22188
+ Returns:
22189
+ The RunQueueEntryDto, back in waiting with attempt_count reset to 0.
22190
+ Rules:
22191
+ An entry already dispatched or running cannot be retried \u2014 remove it with
22192
+ \`dequeue-objective\` (or a forced entry delete) first.
22193
+
22179
22194
  search:
22180
22195
  Purpose:
22181
22196
  Find grouped mission, objective, and delivery matches by keyword, status type, or project.
@@ -22576,6 +22591,7 @@ var init_protocol_help = __esm({
22576
22591
  "run-queue",
22577
22592
  "queue-objective",
22578
22593
  "resume-follow-up",
22594
+ "retry-queue-entry",
22579
22595
  "search",
22580
22596
  "search-missions",
22581
22597
  "sync-changes",