overlord-cli 0.2608091208.0 → 0.2608110806.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.
@@ -1 +1 @@
1
- 0.3.19
1
+ 0.3.20
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://antigravity.google/schemas/v1/plugin.json",
3
3
  "name": "overlord",
4
- "version": "0.3.19",
4
+ "version": "0.3.20",
5
5
  "description": "Chat-driven access to Overlord mission protocol workflows with hook-driven activity capture.",
6
6
  "author": {
7
7
  "name": "Cooperativ",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overlord",
3
- "version": "0.3.19",
3
+ "version": "0.3.20",
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,6 +1,6 @@
1
1
  {
2
2
  "name": "overlord",
3
- "version": "0.3.19",
3
+ "version": "0.3.20",
4
4
  "description": "Chat-driven access to Overlord mission protocol workflows with hook-driven activity capture.",
5
5
  "author": {
6
6
  "name": "Cooperativ",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overlord",
3
- "version": "0.3.19",
3
+ "version": "0.3.20",
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",
@@ -124,15 +124,30 @@ const tools = [
124
124
  name: 'overlord_create_mission',
125
125
  title: 'Create Overlord mission',
126
126
  description:
127
- 'Create a mission in an explicit project. Hosted MCP never chooses a default project implicitly.',
127
+ 'Create a draft mission in projectId, or an account-owned inbox item when projectId is omitted. This connector never chooses a project implicitly.',
128
128
  inputSchema: objectSchema(
129
129
  {
130
- projectId: stringProperty('Required Overlord project id, slug, or name.'),
130
+ projectId: stringProperty('Optional Overlord project id, slug, or name.'),
131
131
  objective: stringProperty('Initial objective text.'),
132
132
  title: stringProperty('Optional mission title.'),
133
- resourceKey: stringProperty('Optional logical project resource key for the objective.')
133
+ resourceKey: stringProperty('Optional logical project resource key for the objective.'),
134
+ assignedTo: stringProperty(
135
+ 'Optional workspace member to own the mission (workspace_users.id, profile UUID, orgid:username, bare username, or email). Rejected when the member is not in the workspace; meaningless on the inbox fallback.'
136
+ )
137
+ },
138
+ ['objective']
139
+ )
140
+ },
141
+ {
142
+ name: 'overlord_create_inbox_item',
143
+ title: 'Create inbox item',
144
+ description: 'Create a private, account-owned unassigned task capture.',
145
+ inputSchema: objectSchema(
146
+ {
147
+ title: stringProperty('Inbox item title.'),
148
+ objective: stringProperty('The one objective captured in v1.')
134
149
  },
135
- ['projectId', 'objective']
150
+ ['title', 'objective']
136
151
  )
137
152
  },
138
153
  {
@@ -353,14 +368,26 @@ function callOverlordTool(name, args) {
353
368
  }
354
369
  if (name === 'overlord_create_mission') {
355
370
  return runProtocol('create', {
356
- 'project-id': requiredString(args, 'projectId'),
371
+ ...(optionalString(args, 'projectId')
372
+ ? { 'project-id': requiredString(args, 'projectId') }
373
+ : { inbox: true }),
357
374
  objective: requiredString(args, 'objective'),
358
375
  ...(optionalString(args, 'title') ? { title: requiredString(args, 'title') } : {}),
359
376
  ...(optionalString(args, 'resourceKey')
360
377
  ? { resource: requiredString(args, 'resourceKey') }
378
+ : {}),
379
+ ...(optionalString(args, 'assignedTo')
380
+ ? { 'assigned-to': requiredString(args, 'assignedTo') }
361
381
  : {})
362
382
  });
363
383
  }
384
+ if (name === 'overlord_create_inbox_item') {
385
+ return runProtocol('create', {
386
+ inbox: true,
387
+ title: requiredString(args, 'title'),
388
+ objective: requiredString(args, 'objective')
389
+ });
390
+ }
364
391
  if (name === 'overlord_load_mission_context') {
365
392
  return runProtocol('load-context', {
366
393
  'mission-id': requiredString(args, 'missionId'),
@@ -513,7 +540,7 @@ process.stdin.on('data', async chunk => {
513
540
  result: {
514
541
  protocolVersion: PROTOCOL_VERSION,
515
542
  capabilities: { tools: { listChanged: false } },
516
- serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.19' }
543
+ serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.20' }
517
544
  }
518
545
  });
519
546
  continue;
package/dist/index.js CHANGED
@@ -2652,26 +2652,6 @@ ${after}`;
2652
2652
  ${managedBlock}
2653
2653
  `;
2654
2654
  }
2655
- function rewriteCodexHookCommands({
2656
- hooks,
2657
- eventName,
2658
- targetCommand
2659
- }) {
2660
- const hookRoot = hooks.hooks;
2661
- if (!hookRoot || typeof hookRoot !== "object" || Array.isArray(hookRoot)) return;
2662
- const groups = hookRoot[eventName];
2663
- if (!Array.isArray(groups)) return;
2664
- for (const group of groups) {
2665
- if (!group || typeof group !== "object") continue;
2666
- const entries = group.hooks;
2667
- if (!Array.isArray(entries)) continue;
2668
- for (const hook of entries) {
2669
- if (hook && typeof hook === "object" && hook.type === "command") {
2670
- hook.command = targetCommand;
2671
- }
2672
- }
2673
- }
2674
- }
2675
2655
  function configureCodexHarness({
2676
2656
  home,
2677
2657
  installPath,
@@ -2682,8 +2662,6 @@ function configureCodexHarness({
2682
2662
  const rulesPath = path6.join(home, ".codex", "rules", "default.rules");
2683
2663
  const legacyAgentsPath = path6.join(home, ".codex", "AGENTS.md");
2684
2664
  const hooksPath = path6.join(installPath, ".codex-plugin", "hooks.json");
2685
- const userPromptHook = path6.join(installPath, "scripts", "user-prompt-submit-hook.sh");
2686
- const permissionHook = path6.join(installPath, "scripts", "permission-hook.sh");
2687
2665
  const currentMarketplace = readJsonObject(marketplacePath) ?? {
2688
2666
  name: "overlord-local",
2689
2667
  interface: { displayName: "Overlord Local Plugins" },
@@ -2704,7 +2682,6 @@ function configureCodexHarness({
2704
2682
  if (dryRun) {
2705
2683
  warnings.push(`Would update Codex marketplace at ${marketplacePath}.`);
2706
2684
  warnings.push(`Would merge protocol permission rules into ${rulesPath}.`);
2707
- warnings.push(`Would rewrite Codex hook commands in ${hooksPath}.`);
2708
2685
  if (existsSync6(legacyAgentsPath)) {
2709
2686
  warnings.push(`Would remove legacy Codex bundle at ${legacyAgentsPath}.`);
2710
2687
  }
@@ -2732,21 +2709,7 @@ function configureCodexHarness({
2732
2709
  const existingRules = existsSync6(rulesPath) ? readFileSync6(rulesPath, "utf8") : "";
2733
2710
  mkdirSync3(path6.dirname(rulesPath), { recursive: true });
2734
2711
  writeFileSync3(rulesPath, mergeCodexRules(existingRules));
2735
- const hooks = readJsonObject(hooksPath);
2736
- if (hooks) {
2737
- rewriteCodexHookCommands({
2738
- hooks,
2739
- eventName: "PermissionRequest",
2740
- targetCommand: permissionHook
2741
- });
2742
- rewriteCodexHookCommands({
2743
- hooks,
2744
- eventName: "UserPromptSubmit",
2745
- targetCommand: userPromptHook
2746
- });
2747
- writeFileSync3(hooksPath, `${JSON.stringify(hooks, null, 2)}
2748
- `);
2749
- } else {
2712
+ if (!readJsonObject(hooksPath)) {
2750
2713
  warnings.push(`Codex hook manifest missing or invalid at ${hooksPath}.`);
2751
2714
  }
2752
2715
  if (existsSync6(legacyAgentsPath)) {
@@ -19077,12 +19040,16 @@ add-objectives:
19077
19040
 
19078
19041
  create:
19079
19042
  Purpose:
19080
- Create a draft mission without attaching.
19043
+ Create a draft mission without attaching. Without --project-id and
19044
+ without a resolvable working-directory project, falls back to an
19045
+ account-owned inbox item instead of failing.
19081
19046
  Required:
19082
19047
  --objective "<text>" or --objectives-json / --objectives-file <path|->
19083
19048
  Optional:
19084
19049
  --title <text>
19085
19050
  --project-id <id> Skips working-directory project resolution
19051
+ --inbox Force an account-owned inbox item instead of a project mission
19052
+ --assigned-to <id> Workspace member to own the mission (meaningless on the inbox fallback)
19086
19053
 
19087
19054
  prompt:
19088
19055
  Purpose:
@@ -19095,6 +19062,7 @@ prompt:
19095
19062
  --agent <identifier>
19096
19063
  --model <identifier>
19097
19064
  --external-session-id <id>
19065
+ --assigned-to <id> Workspace member to own the mission
19098
19066
  Returns:
19099
19067
  New mission/session JSON plus SESSION_KEY on stderr when available.
19100
19068
 
@@ -19111,6 +19079,7 @@ record-work:
19111
19079
  Optional:
19112
19080
  --title <text>
19113
19081
  --project-id <id>
19082
+ --assigned-to <id> Workspace member to own the mission
19114
19083
  --artifacts-json / --artifacts-file <path|->
19115
19084
  --change-rationales-json / --change-rationales-file <path|->
19116
19085
  --changed-files-json / --changed-files-file <path|->
@@ -19358,6 +19327,7 @@ var init_protocol_help = __esm({
19358
19327
  "load-context",
19359
19328
  "prompt",
19360
19329
  "read-context",
19330
+ "record-touched",
19361
19331
  "record-work",
19362
19332
  "resume-follow-up",
19363
19333
  "search-missions",
@@ -22375,6 +22345,16 @@ var LAUNCH_FLAGS = [
22375
22345
  "--flag",
22376
22346
  "--pre-command"
22377
22347
  ];
22348
+ var AGENT_SESSION_FLAGS = [
22349
+ "--agent",
22350
+ "--native-session-id",
22351
+ "--mission-id",
22352
+ "--payload-file",
22353
+ "--port",
22354
+ "--confirm",
22355
+ "--lease-id",
22356
+ "--wait-ms"
22357
+ ];
22378
22358
  var COMMAND_FLAGS = {
22379
22359
  version: [],
22380
22360
  update: ["--check", "--force", "--no-fund"],
@@ -22387,7 +22367,7 @@ var COMMAND_FLAGS = {
22387
22367
  auth: ["--token", "--organization-id"],
22388
22368
  "user-token": ["--label", "--expires-in", "--no-expiry", "--scope", "--id"],
22389
22369
  prune: [],
22390
- "agent-session": ["--json"],
22370
+ "agent-session": AGENT_SESSION_FLAGS,
22391
22371
  "create-project": ["--name", "--directory", "--no-directory"],
22392
22372
  "org-setup": [
22393
22373
  "--org-name",