vgxness 1.20.12 → 1.20.13

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.
@@ -199,7 +199,7 @@ function warningsForScope(_scope, overwriteVgxness, agentPlan, bashPermissionPol
199
199
  : [];
200
200
  const bashWarnings = bashPermissionPolicy.manager === 'deny'
201
201
  ? [
202
- 'OpenCode config sets top-level permission.bash = ask; manager read/search discovery tools (read/glob/grep) are allowed while manager bash/edit/write are denied; SDD subagents keep explicit phase permissions. This is config-level evidence only and does not verify provider runtime enforcement.',
202
+ 'OpenCode config sets top-level permission.bash = ask; manager read/search discovery tools (read/glob/grep) are allowed while manager bash/edit/write are denied; capability subagents keep explicit permissions plus legacy SDD task aliases. This is config-level evidence only and does not verify provider runtime enforcement.',
203
203
  ]
204
204
  : ['OpenCode top-level permission.bash is set to ask.'];
205
205
  return [
@@ -216,7 +216,7 @@ function confirmationRequiredMessage(scope) {
216
216
  function warnings() {
217
217
  return [
218
218
  'Restart OpenCode after installation so it reloads the project MCP config.',
219
- 'OpenCode config sets top-level permission.bash = ask; manager read/search discovery tools (read/glob/grep) are allowed while manager bash/edit/write are denied; SDD subagents keep explicit phase permissions. This is config-level evidence only and does not verify provider runtime enforcement.',
219
+ 'OpenCode config sets top-level permission.bash = ask; manager read/search discovery tools (read/glob/grep) are allowed while manager bash/edit/write are denied; capability subagents keep explicit permissions plus legacy SDD task aliases. This is config-level evidence only and does not verify provider runtime enforcement.',
220
220
  ];
221
221
  }
222
222
  function manualTest(databasePath, source) {
@@ -38,7 +38,7 @@ export class OpenCodeHandoffPreviewService {
38
38
  },
39
39
  ...(sdd.summary !== undefined ? { sdd: sdd.summary } : {}),
40
40
  ...(provider.value.value !== undefined ? { providerStatus: compactProvider(provider.value.value) } : {}),
41
- nextSafeAction: 'Continue in OpenCode conversation using this preview context and VGXNESS MCP; let hidden SDD subagents handle daily SDD progression when appropriate. Call vgxness_opencode_manager_payload separately with payloadMode=verbose if verbose provider artifact bodies are needed.',
41
+ nextSafeAction: 'Continue in OpenCode conversation using this preview context and VGXNESS MCP; let reusable capability subagents handle daily SDD progression when appropriate. Call vgxness_opencode_manager_payload separately with payloadMode=verbose if verbose provider artifact bodies are needed.',
42
42
  safety: {
43
43
  readOnly: true,
44
44
  executesProvider: false,
@@ -459,8 +459,8 @@ function subagentsCheck(config) {
459
459
  const agents = isRecord(config?.agent) ? config.agent : undefined;
460
460
  const missing = vgxnessOpenCodeSddSubagents.filter((name) => !isRecord(agents?.[name]) || agents[name]?.hidden !== true);
461
461
  if (missing.length > 0)
462
- return { id: 'opencode-sdd-subagents', status: 'fail', detail: `Missing or non-hidden SDD subagents: ${missing.join(', ')}.` };
463
- return { id: 'opencode-sdd-subagents', status: 'pass', detail: 'All expected SDD subagents exist and are hidden.' };
462
+ return { id: 'opencode-sdd-subagents', status: 'fail', detail: `Missing or non-hidden capability subagents: ${missing.join(', ')}.` };
463
+ return { id: 'opencode-sdd-subagents', status: 'pass', detail: 'All expected capability subagents exist and are hidden.' };
464
464
  }
465
465
  function delegationCheck(config) {
466
466
  const manager = isRecord(config?.agent) && isRecord(config.agent[vgxnessOpenCodeDefaultAgent]) ? config.agent[vgxnessOpenCodeDefaultAgent] : undefined;
@@ -470,7 +470,7 @@ function delegationCheck(config) {
470
470
  const missing = vgxnessOpenCodeSddSubagents.filter((name) => permission[name] !== 'allow');
471
471
  if (missing.length > 0)
472
472
  return { id: 'opencode-delegation-permissions', status: 'fail', detail: `Manager cannot delegate to expected subagents: ${missing.join(', ')}.` };
473
- return { id: 'opencode-delegation-permissions', status: 'pass', detail: 'Manager task permission is deny-by-default and allows exact SDD subagents.' };
473
+ return { id: 'opencode-delegation-permissions', status: 'pass', detail: 'Manager task permission is deny-by-default and allows exact capability subagents plus legacy SDD aliases.' };
474
474
  }
475
475
  function promptContractCheck(config, expected) {
476
476
  const agents = isRecord(config?.agent) ? config.agent : undefined;
@@ -569,7 +569,7 @@ function summarizeClaudeStatus(status, mcpEntry) {
569
569
  }
570
570
  function nextActionFor(status, mcpEntry, sddNext) {
571
571
  if (sddNext !== undefined)
572
- return { kind: 'advance-sdd', message: 'Continue the next SDD phase inside OpenCode using MCP status/ready/artifact tools and hidden SDD subagents.' };
572
+ return { kind: 'advance-sdd', message: 'Continue the next SDD phase inside OpenCode using MCP status/ready/artifact tools and reusable capability subagents.' };
573
573
  if (status === 'ready')
574
574
  return { kind: 'continue', message: 'Continue using the provider; no read-only follow-up is required.' };
575
575
  if (status === 'not-configured' && !mcpEntry.configured)
@@ -27,7 +27,7 @@ export function sddContinuationPlanFrom(input) {
27
27
  safety: [
28
28
  'Read-only planner: this command does not execute providers or mutate SDD artifacts, runs, provider config, or openspec/ files.',
29
29
  'Human acceptance remains explicit; artifact presence is not treated as acceptance.',
30
- 'Continue SDD phases in OpenCode conversation through VGXNESS MCP and hidden SDD subagents; the removed code runtime is not a CLI fallback.',
30
+ 'Continue SDD phases in OpenCode conversation through VGXNESS MCP and reusable capability subagents; the removed code runtime is not a CLI fallback.',
31
31
  'No openspec/ files are created or written.',
32
32
  ],
33
33
  };
@@ -43,7 +43,7 @@ Areas:
43
43
  opencode preview --provider opencode (--agent <name> | --agent-id <id>) --project <name> --change <id> --phase <phase> [--scope project|personal]
44
44
  OpenCode CLI preview prints the legacy injection preview JSON for inspection; MCP opencode_handoff_preview is the read-only conversation handoff preview and can be paired with opencode_manager_payload for verbose manager payload details.
45
45
 
46
- Interactive Home TUI opens from \`vgxness\` in a real terminal; non-TTY use prints safe guidance. Daily SDD progression should happen inside OpenCode through conversation, VGXNESS MCP, and hidden SDD subagents; use status/next/sdd continue for read-only CLI guidance.
46
+ Interactive Home TUI opens from \`vgxness\` in a real terminal; non-TTY use prints safe guidance. Daily SDD progression should happen inside OpenCode through conversation, VGXNESS MCP, and reusable capability subagents; use status/next/sdd continue for read-only CLI guidance.
47
47
 
48
48
  orchestrator preview --project <name> --intent <text> [--change <id>] [--db <path>]
49
49
  Orchestrator preview classifies natural-language requests only; it never executes providers, edits files, records runs, or writes provider config.
@@ -69,7 +69,7 @@ Areas:
69
69
  mcp doctor [--db <path>] [--project <name>] [--change <id>] [--timeout-ms <ms>]
70
70
  MCP setup preview is read-only; it does not install or write .opencode/, .claude/, or provider config.
71
71
  Without --db, MCP install and setup commands use the vgxness global default database; pass --db .vgx/memory.sqlite for project-local compatibility.
72
- OpenCode install defaults to user-global scope and installs mcp.vgxness plus top-level permission.bash=ask, vgxness-manager with bash=deny and native repo tools disabled, and hidden vgxness-sdd-* agents with explicit permissions; use --mcp-only for legacy MCP-only config.
72
+ OpenCode install defaults to user-global scope and installs mcp.vgxness plus top-level permission.bash=ask, vgxness-manager with bash=deny and native repo tools disabled, and hidden capability agents such as vgxness-explore/vgxness-plan/vgxness-verify with legacy vgxness-sdd-* task aliases; use --mcp-only for legacy MCP-only config.
73
73
  Use --overwrite-vgxness (alias --reinstall) to reinstall only VGXNESS-managed OpenCode entries while preserving unrelated config; --yes is still required to write.
74
74
  It writes only after --yes. VGX-managed provider configuration is user-global only for OpenCode and Claude; the OpenCode target is $HOME/.config/opencode/opencode.json.
75
75
  Project/local provider files are external/manual diagnostics and will not be written by VGXNESS. Plans are read-only; applies refuse unsafe existing user-global config and create backups before merge.
@@ -336,14 +336,14 @@ export function promptSetupWizard(environment, defaults) {
336
336
  const scope = scopeText === 'project' || scopeText === 'user' ? scopeText : undefined;
337
337
  if (scope === undefined)
338
338
  return validationFailure('OpenCode scope must be project or user.');
339
- const modeText = defaulted(await promptLine(environment, 'Install mode: MCP + manager/SDD agents, MCP only [MCP + manager/SDD agents]: '), defaults.installMode);
339
+ const modeText = defaulted(await promptLine(environment, 'Install mode: MCP + manager/capability agents, MCP only [MCP + manager/capability agents]: '), defaults.installMode);
340
340
  const installMode = modeText === 'mcp-plus-agents' || modeText.toLowerCase() === 'mcp + manager/sdd agents'
341
341
  ? 'mcp-plus-agents'
342
342
  : modeText === 'mcp-only' || modeText.toLowerCase() === 'mcp only'
343
343
  ? 'mcp-only'
344
344
  : undefined;
345
345
  if (installMode === undefined)
346
- return validationFailure('Install mode must be MCP + manager/SDD agents or MCP only.');
346
+ return validationFailure('Install mode must be MCP + manager/capability agents or MCP only.');
347
347
  const overwriteText = defaulted(await promptLine(environment, 'Reinstall VGXNESS entries: overwrite existing mcp.vgxness and VGXNESS agents after final confirmation; preserve unrelated OpenCode config [no]: '), 'no');
348
348
  const overwriteVgxness = overwriteText.toLowerCase() === 'yes' || overwriteText.toLowerCase() === 'y' || overwriteText.toLowerCase() === 'true';
349
349
  const input = {
@@ -288,7 +288,7 @@ function focusedSddLines(plan, input, sdd) {
288
288
  '',
289
289
  'This panel intentionally does not open SQLite until a change id is selected.',
290
290
  'Allowed input: letters, numbers, dot, underscore, dash; first character must be alphanumeric.',
291
- 'Daily SDD stays in OpenCode through conversation, VGXNESS MCP, hidden SDD subagents, and registry skills.',
291
+ 'Daily SDD stays in OpenCode through conversation, VGXNESS MCP, reusable capability subagents, and registry skills.',
292
292
  '',
293
293
  `Continue: vgxness sdd continue --project ${plan.project} --change ${change}`,
294
294
  `Status: vgxness sdd status --project ${plan.project} --change ${change}`,
@@ -369,7 +369,7 @@ function sddLines() {
369
369
  'Change: not selected. Press Enter for the focused SDD gate.',
370
370
  '',
371
371
  'The Home TUI does not open local SDD state until a change id is selected.',
372
- 'Daily SDD should stay in OpenCode through conversation, VGXNESS MCP, and hidden SDD subagents.',
372
+ 'Daily SDD should stay in OpenCode through conversation, VGXNESS MCP, and reusable capability subagents.',
373
373
  '',
374
374
  'CLI fallback: `vgxness sdd continue --project <name> --change <id>`.',
375
375
  ];
@@ -10,7 +10,7 @@ export function renderSddStatus(input) {
10
10
  ? 'No next SDD phase remains for this change.'
11
11
  : input.status.nextReadyPhase === undefined
12
12
  ? 'Review blockers or accept present draft artifacts before continuing.'
13
- : `Continue the ${input.status.nextReadyPhase} phase in OpenCode using VGXNESS MCP and hidden SDD subagents.`;
13
+ : `Continue the ${input.status.nextReadyPhase} phase in OpenCode using VGXNESS MCP and reusable capability subagents.`;
14
14
  const commandLabel = directPhaseCommand === undefined ? 'Diagnostic command' : 'Continuation guidance command';
15
15
  const lines = [
16
16
  'SDD Status',
@@ -43,7 +43,7 @@ export function renderSddNext(input) {
43
43
  : `vgxness sdd status --project ${input.project} --change ${input.decision.change}`;
44
44
  const commandLabel = input.decision.status === 'runnable' && input.decision.nextPhase !== undefined ? 'Continuation guidance command' : 'Diagnostic command';
45
45
  const primaryAction = input.decision.status === 'runnable' && input.decision.nextPhase !== undefined
46
- ? `Continue the ${input.decision.nextPhase} phase in OpenCode using VGXNESS MCP and hidden SDD subagents.`
46
+ ? `Continue the ${input.decision.nextPhase} phase in OpenCode using VGXNESS MCP and reusable capability subagents.`
47
47
  : input.decision.recommendedAction;
48
48
  const lines = [
49
49
  'SDD Next',
@@ -87,7 +87,7 @@ export function renderSddContinuationPlan(plan) {
87
87
  `Reason: ${plan.reason}`,
88
88
  '',
89
89
  'Recommended plan:',
90
- `- ${plan.status === 'runnable' && plan.nextPhase !== undefined ? `Continue the ${plan.nextPhase} phase in OpenCode using VGXNESS MCP and hidden SDD subagents.` : plan.recommendedAction}`,
90
+ `- ${plan.status === 'runnable' && plan.nextPhase !== undefined ? `Continue the ${plan.nextPhase} phase in OpenCode using VGXNESS MCP and reusable capability subagents.` : plan.recommendedAction}`,
91
91
  `- ${suggestedCommandLabel}: ${plan.suggestedCommand}`,
92
92
  `- Diagnostic command: ${plan.inspectCommand}`,
93
93
  '',
@@ -56,7 +56,7 @@ function descriptionForTool(publicToolName) {
56
56
  if (publicToolName === 'provider_change_plan')
57
57
  return 'Read-only provider change plan preview; composes status, doctor, and OpenCode install planning without writing provider config.';
58
58
  if (publicToolName === 'opencode_handoff_preview')
59
- return 'Read-only OpenCode handoff preview; returns compact context for continuing in OpenCode conversation with VGXNESS MCP and hidden SDD subagents, does not execute/control OpenCode, write .opencode/provider config, or create runs, checkpoints, events, sessions, or skill-usage records. Request verbose manager payload separately when artifact bodies are needed.';
59
+ return 'Read-only OpenCode handoff preview; returns compact context for continuing in OpenCode conversation with VGXNESS MCP and reusable capability subagents, does not execute/control OpenCode, write .opencode/provider config, or create runs, checkpoints, events, sessions, or skill-usage records. Request verbose manager payload separately when artifact bodies are needed.';
60
60
  if (publicToolName === 'verification_plan')
61
61
  return 'Read-only verification plan recommendations only; does not execute commands, write provider config, persist results, create checkpoints, or infer SDD acceptance.';
62
62
  if (publicToolName === 'run_resume_candidates')
@@ -175,7 +175,7 @@ function setupPlanFromOpenCode(input) {
175
175
  actions: [
176
176
  {
177
177
  id: `opencode-${input.opencode.action}`,
178
- description: `${input.opencode.overwriteVgxness ? 'Reinstall/overwrite VGXNESS entries in' : input.opencode.action === 'create' ? 'Create' : 'Merge'} OpenCode config with mcp.vgxness using vgxness mcp start${input.installMode === 'mcp-plus-agents' ? ' and manager/SDD agents' : ''}${input.opencode.overwriteVgxness ? '; unrelated OpenCode config is preserved' : ''}${bashPermissionDescription(input.opencode.bashPermissionPolicy)}.`,
178
+ description: `${input.opencode.overwriteVgxness ? 'Reinstall/overwrite VGXNESS entries in' : input.opencode.action === 'create' ? 'Create' : 'Merge'} OpenCode config with mcp.vgxness using vgxness mcp start${input.installMode === 'mcp-plus-agents' ? ' and manager/capability agents' : ''}${input.opencode.overwriteVgxness ? '; unrelated OpenCode config is preserved' : ''}${bashPermissionDescription(input.opencode.bashPermissionPolicy)}.`,
179
179
  mutating: false,
180
180
  targetPath: input.opencode.targetPath,
181
181
  backupRequired: input.opencode.backupRequired,
@@ -84,7 +84,7 @@ function fromSddCockpit(cockpit, project, baseSafety, relatedRunContext) {
84
84
  : cockpit.aggregateBlockers.map((blocker) => `${blocker.phase}: ${blocker.reason} at ${blocker.topicKey}${blocker.action === undefined ? '' : `; action=${blocker.action}`}`),
85
85
  next: [
86
86
  cockpit.next.status === 'runnable' && cockpit.next.nextPhase !== undefined
87
- ? `Continue the ${cockpit.next.nextPhase} phase in OpenCode using VGXNESS MCP and hidden SDD subagents.`
87
+ ? `Continue the ${cockpit.next.nextPhase} phase in OpenCode using VGXNESS MCP and reusable capability subagents.`
88
88
  : cockpit.recommendedAction,
89
89
  ],
90
90
  command,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vgxness",
3
- "version": "1.20.12",
3
+ "version": "1.20.13",
4
4
  "description": "CLI and MCP control plane for guided AI-agent workflows, SDD, memory, and OpenCode setup.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {