@useorgx/wizard 0.1.63 → 0.1.65

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.
package/README.md CHANGED
@@ -33,9 +33,9 @@ The wizard modifies local tool configuration only. Depending on the command, it
33
33
  - `work-graph preview --from all` shows the same profile story locally without publishing.
34
34
  - `work-graph runtime-event --source codex|claude --summary "..."` lets an agent write public-safe runtime evidence that the next AQ profile can collect.
35
35
  - `hooks install [--targets codex,claude-code]` installs bounded local capture hooks. Terminal events write compact session summaries to a durable queue, then request a detached single-flight delivery worker. The hook does not read credentials or perform network I/O. Set `ORGX_SESSION_SUMMARY_AUTO_FLUSH=off` for local-only capture and manual delivery. The legacy transcript-derived execution-graph emit remains off unless `ORGX_EMIT_EXECUTION_GRAPH=1` is set.
36
- - `ORGX_SESSION_WORK_CONTEXT` can carry one explicit, bounded JSON annotation for intent, authority, cost, artifact references, and evidence references. The Wizard does not infer this context from prompts; invalid or oversized annotations are omitted, and unknown fields are removed before cloud delivery.
37
- - `hooks flush [--limit 100]` is the manual delivery and recovery path. It uses the same queue lease as automatic delivery and removes each file only after a successful server acknowledgement. Failed or malformed captures stay on disk for inspection and retry.
38
- - `hooks doctor` shows hook wiring, automatic-delivery configuration, the capture-queue count, and the legacy spool count without changing local configuration.
36
+ - `ORGX_SESSION_WORK_CONTEXT` can carry one explicit, bounded JSON annotation for intent, authority, cost, artifact and evidence references, plus exact Context Capsule, decision, constraint, expectation, applied-learning, and prior-receipt references. Capsule delivery requires both the capsule reference and delivery timestamp. The Wizard does not infer this context from prompts; invalid or oversized annotations are omitted, and unknown fields are removed before cloud delivery.
37
+ - `hooks flush [--limit 100]` is the manual delivery and recovery path. It uses the same queue lease as automatic delivery and removes each valid file only after a successful server acknowledgement. Failed captures stay queued for retry; malformed captures move to the owner-only `session-summary-captures/quarantine/` directory and make a manual flush fail visibly without being deleted.
38
+ - `hooks doctor` shows hook wiring, automatic-delivery configuration, active and quarantined capture counts, and the legacy spool count without changing local configuration.
39
39
  - `hooks backfill` previews compact summaries distilled from the legacy spool. It does not upload or archive anything unless you add `--post --yes`; `--truncate` also requires both flags and archives the original spool only after every upload succeeds.
40
40
  - `map [query...] --deep-search` runs the v1 Operating Map discovery flow over connected company signals and cited deep research, prints source health and low-confidence ProcessCards, and keeps ownership/timing/"done" confirmation human-gated. Add `--candidate <id-or-number> --yes` to explicitly propose one card as an OperatingProcess; the wizard never auto-confirms or activates inferred workflow ownership.
41
41
  - `surface list` shows supported surfaces and current status.
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/cli.ts
4
4
 
5
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d41747ca-7c63-5e0b-83ef-90af38ff9921")}catch(e){}}();
5
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="af54c3d7-9ef3-5d66-90dc-45a9ecb71d96")}catch(e){}}();
6
6
  import * as clack from "@clack/prompts";
7
7
  import { spawnSync as spawnSync5 } from "child_process";
8
8
  import { readFileSync as readFileSync10 } from "fs";
@@ -3736,8 +3736,8 @@ function encodeRepoPath2(value) {
3736
3736
  return value.split("/").filter((segment) => segment.length > 0).map((segment) => encodeURIComponent(segment)).join("/");
3737
3737
  }
3738
3738
  function isLikelyRepoFilePath(path) {
3739
- const basename6 = path.split("/").pop() ?? path;
3740
- return basename6.includes(".") && !/^\.[^./]+$/.test(basename6);
3739
+ const basename7 = path.split("/").pop() ?? path;
3740
+ return basename7.includes(".") && !/^\.[^./]+$/.test(basename7);
3741
3741
  }
3742
3742
  function buildContentsUrl2(spec, path) {
3743
3743
  const encodedPath = encodeRepoPath2(path);
@@ -6354,7 +6354,7 @@ function initializeWizardSentry() {
6354
6354
  Sentry.init({
6355
6355
  dsn,
6356
6356
  environment: process.env.ORGX_SENTRY_ENVIRONMENT || "production",
6357
- release: "useorgx-wizard@0.1.63",
6357
+ release: "useorgx-wizard@0.1.65",
6358
6358
  tracesSampleRate: sampleRate(process.env.ORGX_SENTRY_TRACES_SAMPLE_RATE),
6359
6359
  enableLogs: true,
6360
6360
  sendDefaultPii: false,
@@ -14281,7 +14281,7 @@ function workRefs(value) {
14281
14281
 
14282
14282
  function workIso(value) {
14283
14283
  var text = workString(value, 100);
14284
- return text && /^d{4}-d{2}-d{2}Td{2}:d{2}:d{2}(?:.d+)?(?:Z|[+-]d{2}:d{2})$/.test(text) && !Number.isNaN(Date.parse(text))
14284
+ return text && /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/.test(text) && !Number.isNaN(Date.parse(text))
14285
14285
  ? text
14286
14286
  : null;
14287
14287
  }
@@ -14316,6 +14316,18 @@ export function parseExplicitWorkContext(value) {
14316
14316
  var validUntil = authority.valid_until === undefined ? undefined : workIso(authority.valid_until);
14317
14317
  var artifactRefs = workRefs(parsed.artifact_refs);
14318
14318
  var evidenceRefs = workRefs(parsed.evidence_refs);
14319
+ var semantic = parsed.semantic_refs === undefined ? undefined : workObject(parsed.semantic_refs);
14320
+ var contextCapsuleRef = !semantic || semantic.context_capsule_ref === undefined
14321
+ ? undefined
14322
+ : workRef(semantic.context_capsule_ref);
14323
+ var contextDeliveredAt = !semantic || semantic.context_delivered_at === undefined
14324
+ ? undefined
14325
+ : workIso(semantic.context_delivered_at);
14326
+ var decisionRefs = !semantic ? [] : workRefs(semantic.decision_refs);
14327
+ var constraintRefs = !semantic ? [] : workRefs(semantic.constraint_refs);
14328
+ var expectationRefs = !semantic ? [] : workRefs(semantic.expectation_refs);
14329
+ var learningRefs = !semantic ? [] : workRefs(semantic.learning_refs);
14330
+ var priorReceiptRefs = !semantic ? [] : workRefs(semantic.prior_receipt_refs);
14319
14331
  var currency = workString(cost.currency, 12);
14320
14332
  var source = cost.source === undefined ? undefined : workString(cost.source, 120);
14321
14333
  if (!summary || objective === null || acceptance === null || intentConstraints === null || requestRef === null) return null;
@@ -14326,6 +14338,11 @@ export function parseExplicitWorkContext(value) {
14326
14338
  if (!currency || !/^[A-Z][A-Z0-9_-]{1,11}$/.test(currency) || typeof cost.total !== "number" || !Number.isFinite(cost.total) || cost.total < 0 || cost.total > 100000 || source === null) return null;
14327
14339
  if (cost.estimated !== undefined && typeof cost.estimated !== "boolean") return null;
14328
14340
  if (artifactRefs === null || evidenceRefs === null) return null;
14341
+ if (parsed.semantic_refs !== undefined && !semantic) return null;
14342
+ if (contextCapsuleRef === null || contextDeliveredAt === null || decisionRefs === null || constraintRefs === null || expectationRefs === null || learningRefs === null || priorReceiptRefs === null) return null;
14343
+ if (Boolean(contextCapsuleRef) !== Boolean(contextDeliveredAt)) return null;
14344
+ var semanticRefCount = decisionRefs.length + constraintRefs.length + expectationRefs.length + learningRefs.length + priorReceiptRefs.length + (contextCapsuleRef ? 1 : 0);
14345
+ if (semantic !== undefined && (semanticRefCount === 0 || semanticRefCount > 20)) return null;
14329
14346
  var normalizedIntent = { summary: summary, acceptance_criteria: acceptance, constraints: intentConstraints };
14330
14347
  if (objective) normalizedIntent.objective = objective;
14331
14348
  if (requestRef) normalizedIntent.request_ref = requestRef;
@@ -14341,6 +14358,20 @@ export function parseExplicitWorkContext(value) {
14341
14358
  if (validUntil) normalizedAuthority.valid_until = validUntil;
14342
14359
  var normalizedCost = { currency: currency, total: cost.total, estimated: cost.estimated !== false };
14343
14360
  if (source) normalizedCost.source = source;
14361
+ var normalizedSemantic;
14362
+ if (semantic !== undefined) {
14363
+ normalizedSemantic = {
14364
+ decision_refs: decisionRefs,
14365
+ constraint_refs: constraintRefs,
14366
+ expectation_refs: expectationRefs,
14367
+ learning_refs: learningRefs,
14368
+ prior_receipt_refs: priorReceiptRefs,
14369
+ };
14370
+ if (contextCapsuleRef) {
14371
+ normalizedSemantic.context_capsule_ref = contextCapsuleRef;
14372
+ normalizedSemantic.context_delivered_at = contextDeliveredAt;
14373
+ }
14374
+ }
14344
14375
  return {
14345
14376
  schema_version: "orgx-session-work-context/v1",
14346
14377
  provenance: "producer_asserted",
@@ -14349,6 +14380,7 @@ export function parseExplicitWorkContext(value) {
14349
14380
  cost: normalizedCost,
14350
14381
  artifact_refs: artifactRefs,
14351
14382
  evidence_refs: evidenceRefs,
14383
+ ...(normalizedSemantic ? { semantic_refs: normalizedSemantic } : {}),
14352
14384
  };
14353
14385
  }
14354
14386
 
@@ -14546,6 +14578,15 @@ function countSessionSummaryCaptures(path) {
14546
14578
  return 0;
14547
14579
  }
14548
14580
  }
14581
+ function countSessionSummaryQuarantinedCaptures(path) {
14582
+ try {
14583
+ return readdirSync6(join8(path, "quarantine")).filter(
14584
+ (name) => name.includes(".malformed")
14585
+ ).length;
14586
+ } catch {
14587
+ return 0;
14588
+ }
14589
+ }
14549
14590
  function backupPath(path, now) {
14550
14591
  const timestamp = now.toISOString().replace(/[:.]/g, "-");
14551
14592
  return `${path}.bak.${timestamp}`;
@@ -15081,7 +15122,10 @@ function inspectRuntimeHooks(options = {}) {
15081
15122
  notifyPreserved: !codexHasNotify(codexConfigRaw) || !hasOrgxHook(codexConfigRaw)
15082
15123
  },
15083
15124
  outboxEvents: countJsonlLines(paths.outboxPath),
15084
- sessionSummaryCaptures: countSessionSummaryCaptures(paths.sessionSummaryQueueDir)
15125
+ sessionSummaryCaptures: countSessionSummaryCaptures(paths.sessionSummaryQueueDir),
15126
+ sessionSummaryQuarantinedCaptures: countSessionSummaryQuarantinedCaptures(
15127
+ paths.sessionSummaryQueueDir
15128
+ )
15085
15129
  };
15086
15130
  }
15087
15131
  function installRuntimeHooks(targets, options = {}) {
@@ -15172,8 +15216,16 @@ function parseRuntimeHookTargets(value) {
15172
15216
  }
15173
15217
 
15174
15218
  // src/lib/session-summary-queue.ts
15175
- import { existsSync as existsSync10, readdirSync as readdirSync7, readFileSync as readFileSync8, unlinkSync as unlinkSync2 } from "fs";
15176
- import { join as join9 } from "path";
15219
+ import {
15220
+ chmodSync as chmodSync2,
15221
+ existsSync as existsSync10,
15222
+ mkdirSync as mkdirSync5,
15223
+ readdirSync as readdirSync7,
15224
+ readFileSync as readFileSync8,
15225
+ renameSync as renameSync3,
15226
+ unlinkSync as unlinkSync2
15227
+ } from "fs";
15228
+ import { basename as basename6, join as join9 } from "path";
15177
15229
 
15178
15230
  // src/lib/session-summary-backfill.ts
15179
15231
  import { createReadStream, renameSync as renameSync2, statSync as statSync5, writeFileSync as writeFileSync4 } from "fs";
@@ -15207,6 +15259,29 @@ var referenceList = z.array(externalReferenceSchema).max(20).default([]).transfo
15207
15259
  return a < b ? -1 : a > b ? 1 : 0;
15208
15260
  });
15209
15261
  });
15262
+ var semanticReferencesSchema = z.object({
15263
+ context_capsule_ref: externalReferenceSchema.optional(),
15264
+ context_delivered_at: z.string().datetime({ offset: true }).optional(),
15265
+ decision_refs: referenceList,
15266
+ constraint_refs: referenceList,
15267
+ expectation_refs: referenceList,
15268
+ learning_refs: referenceList,
15269
+ prior_receipt_refs: referenceList
15270
+ }).superRefine((value, context) => {
15271
+ if (Boolean(value.context_capsule_ref) !== Boolean(value.context_delivered_at)) {
15272
+ context.addIssue({
15273
+ code: z.ZodIssueCode.custom,
15274
+ message: "context_capsule_ref and context_delivered_at must be supplied together"
15275
+ });
15276
+ }
15277
+ const totalRefs = value.decision_refs.length + value.constraint_refs.length + value.expectation_refs.length + value.learning_refs.length + value.prior_receipt_refs.length + (value.context_capsule_ref ? 1 : 0);
15278
+ if (totalRefs === 0 || totalRefs > 20) {
15279
+ context.addIssue({
15280
+ code: z.ZodIssueCode.custom,
15281
+ message: "semantic_refs must contain between 1 and 20 references"
15282
+ });
15283
+ }
15284
+ });
15210
15285
  var authoritySchema = z.object({
15211
15286
  mode: z.enum([
15212
15287
  "explicit",
@@ -15251,7 +15326,8 @@ var sessionWorkContextInputSchema = z.object({
15251
15326
  source: boundedText(120).optional()
15252
15327
  }),
15253
15328
  artifact_refs: referenceList,
15254
- evidence_refs: referenceList
15329
+ evidence_refs: referenceList,
15330
+ semantic_refs: semanticReferencesSchema.optional()
15255
15331
  });
15256
15332
  function normalizeSessionWorkContext(value) {
15257
15333
  const parsed = sessionWorkContextInputSchema.safeParse(value);
@@ -15560,6 +15636,8 @@ function truncateSpool(spoolPath, post, options = {}) {
15560
15636
  var SESSION_SUMMARY_CAPTURE_VERSION = "orgx-session-summary-capture/v1";
15561
15637
  var SESSION_SUMMARY_CAPTURE_FILE_SUFFIX = ".capture.json";
15562
15638
  var SESSION_SUMMARY_CAPTURE_MAX_BYTES = 16 * 1024;
15639
+ var SESSION_SUMMARY_QUARANTINE_DIR_NAME = "quarantine";
15640
+ var SESSION_SUMMARY_QUARANTINE_FILE_SUFFIX = ".malformed";
15563
15641
  function sessionSummaryCaptureFiles(queueDir) {
15564
15642
  if (!existsSync10(queueDir)) return [];
15565
15643
  try {
@@ -15568,6 +15646,33 @@ function sessionSummaryCaptureFiles(queueDir) {
15568
15646
  return [];
15569
15647
  }
15570
15648
  }
15649
+ function sessionSummaryQuarantineDir(queueDir) {
15650
+ return join9(queueDir, SESSION_SUMMARY_QUARANTINE_DIR_NAME);
15651
+ }
15652
+ function quarantineMalformedCapture(path, queueDir) {
15653
+ const quarantineDir = sessionSummaryQuarantineDir(queueDir);
15654
+ try {
15655
+ mkdirSync5(quarantineDir, { recursive: true, mode: 448 });
15656
+ const baseTarget = join9(
15657
+ quarantineDir,
15658
+ `${basename6(path)}${SESSION_SUMMARY_QUARANTINE_FILE_SUFFIX}`
15659
+ );
15660
+ let target = baseTarget;
15661
+ let collision = 0;
15662
+ while (existsSync10(target)) {
15663
+ collision += 1;
15664
+ target = `${baseTarget}.${collision}`;
15665
+ }
15666
+ renameSync3(path, target);
15667
+ try {
15668
+ chmodSync2(target, 384);
15669
+ } catch {
15670
+ }
15671
+ return target;
15672
+ } catch {
15673
+ return null;
15674
+ }
15675
+ }
15571
15676
  function isRecord4(value) {
15572
15677
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
15573
15678
  }
@@ -15680,14 +15785,20 @@ async function flushSessionSummaryCaptures(options) {
15680
15785
  acknowledged: 0,
15681
15786
  retained: 0,
15682
15787
  malformed: 0,
15788
+ quarantined: 0,
15683
15789
  fallbackAcknowledged: 0
15684
15790
  };
15685
15791
  for (const path of selected) {
15686
15792
  const capture = readSessionSummaryCapture(path);
15687
15793
  if (!capture) {
15688
15794
  result.malformed += 1;
15689
- result.retained += 1;
15690
- result.firstError ??= `Malformed capture retained: ${path}`;
15795
+ const quarantinedPath = quarantineMalformedCapture(path, options.queueDir);
15796
+ if (quarantinedPath) {
15797
+ result.quarantined += 1;
15798
+ } else {
15799
+ result.retained += 1;
15800
+ result.firstError ??= `Malformed capture could not be quarantined: ${path}`;
15801
+ }
15691
15802
  continue;
15692
15803
  }
15693
15804
  result.attempted += 1;
@@ -15725,10 +15836,10 @@ import { randomUUID as randomUUID3 } from "crypto";
15725
15836
  import {
15726
15837
  closeSync as closeSync2,
15727
15838
  fsyncSync,
15728
- mkdirSync as mkdirSync5,
15839
+ mkdirSync as mkdirSync6,
15729
15840
  openSync as openSync2,
15730
15841
  readFileSync as readFileSync9,
15731
- renameSync as renameSync3,
15842
+ renameSync as renameSync4,
15732
15843
  statSync as statSync6,
15733
15844
  unlinkSync as unlinkSync3,
15734
15845
  writeSync
@@ -15805,7 +15916,7 @@ function claimSessionSummaryFlushLease(queueDir, options = {}) {
15805
15916
  const path = join10(queueDir, SESSION_SUMMARY_FLUSH_LOCK_NAME);
15806
15917
  const record = { token, pid, claimed_at: now.toISOString() };
15807
15918
  try {
15808
- mkdirSync5(queueDir, { recursive: true, mode: 448 });
15919
+ mkdirSync6(queueDir, { recursive: true, mode: 448 });
15809
15920
  } catch {
15810
15921
  return { acquired: false, reason: "unavailable" };
15811
15922
  }
@@ -15825,7 +15936,7 @@ function claimSessionSummaryFlushLease(queueDir, options = {}) {
15825
15936
  }
15826
15937
  const stalePath = `${path}.stale-${token}`;
15827
15938
  try {
15828
- renameSync3(path, stalePath);
15939
+ renameSync4(path, stalePath);
15829
15940
  unlinkSync3(stalePath);
15830
15941
  } catch {
15831
15942
  return { acquired: false, reason: "busy" };
@@ -16587,6 +16698,7 @@ function printRuntimeHookInspection(report) {
16587
16698
  console.log(` ${report.installed.summaryHookScript ? ICON.ok : ICON.warn} ${pc3.bold("summary hook")} ${report.installed.summaryHookScript ? pc3.green("installed") : pc3.yellow("missing")} ${pc3.dim(report.paths.summaryHookScriptPath)}`);
16588
16699
  console.log(` ${report.installed.automaticDelivery ? ICON.ok : ICON.warn} ${pc3.bold("auto delivery")} ${report.installed.automaticDelivery ? pc3.green("configured") : pc3.yellow("not configured")} ${pc3.dim("detached, ACK-gated worker")}`);
16589
16700
  console.log(` ${ICON.skip} ${pc3.bold("capture queue")} ${pc3.dim(`${report.sessionSummaryCaptures} capture${report.sessionSummaryCaptures === 1 ? "" : "s"} at ${report.paths.sessionSummaryQueueDir}`)}`);
16701
+ console.log(` ${report.sessionSummaryQuarantinedCaptures === 0 ? ICON.skip : ICON.warn} ${pc3.bold("quarantine ")} ${pc3.dim(`${report.sessionSummaryQuarantinedCaptures} malformed capture${report.sessionSummaryQuarantinedCaptures === 1 ? "" : "s"}, recoverable on disk`)}`);
16590
16702
  console.log(` ${ICON.skip} ${pc3.bold("outbox ")} ${pc3.dim(`${report.outboxEvents} event${report.outboxEvents === 1 ? "" : "s"} at ${report.paths.outboxPath}`)}`);
16591
16703
  }
16592
16704
  function printSessionSummaryFlush(result) {
@@ -16595,7 +16707,7 @@ function printSessionSummaryFlush(result) {
16595
16707
  return;
16596
16708
  }
16597
16709
  const delivered = `${result.acknowledged}/${result.attempted} acknowledged`;
16598
- console.log(` ${result.retained === 0 ? ICON.ok : ICON.warn} ${pc3.bold("captures ")} ${pc3.dim(`${delivered}, ${result.retained} retained, ${result.malformed} malformed`)}`);
16710
+ console.log(` ${result.retained === 0 && result.malformed === 0 ? ICON.ok : ICON.warn} ${pc3.bold("captures ")} ${pc3.dim(`${delivered}, ${result.retained} retained, ${result.quarantined} quarantined, ${result.malformed} malformed`)}`);
16599
16711
  if (result.fallbackAcknowledged > 0) {
16600
16712
  console.log(` ${ICON.warn} ${pc3.bold("fallback ")} ${pc3.dim(`${result.fallbackAcknowledged} capture(s) delivered through the legacy Work Graph endpoint`)}`);
16601
16713
  }
@@ -16612,6 +16724,7 @@ async function runSessionSummaryFlushCommand(options) {
16612
16724
  acknowledged: 0,
16613
16725
  retained: 0,
16614
16726
  malformed: 0,
16727
+ quarantined: 0,
16615
16728
  fallbackAcknowledged: 0,
16616
16729
  skipped: "empty_queue"
16617
16730
  };
@@ -16628,6 +16741,7 @@ async function runSessionSummaryFlushCommand(options) {
16628
16741
  acknowledged: 0,
16629
16742
  retained: 0,
16630
16743
  malformed: 0,
16744
+ quarantined: 0,
16631
16745
  fallbackAcknowledged: 0,
16632
16746
  skipped: "already_running"
16633
16747
  };
@@ -16670,11 +16784,12 @@ async function runSessionSummaryFlushCommand(options) {
16670
16784
  command: "hooks flush",
16671
16785
  attempted: String(result.attempted),
16672
16786
  acknowledged: String(result.acknowledged),
16673
- retained: String(result.retained)
16787
+ retained: String(result.retained),
16788
+ quarantined: String(result.quarantined)
16674
16789
  });
16675
- if (result.retained > 0) process.exitCode = 1;
16790
+ if (result.retained > 0 || result.malformed > 0) process.exitCode = 1;
16676
16791
  if (options.json) {
16677
- console.log(JSON.stringify({ ok: result.retained === 0, queueDir, ...result }, null, 2));
16792
+ console.log(JSON.stringify({ ok: result.retained === 0 && result.malformed === 0, queueDir, ...result }, null, 2));
16678
16793
  return;
16679
16794
  }
16680
16795
  printSessionSummaryFlush(result);
@@ -18448,7 +18563,7 @@ async function main() {
18448
18563
  initializeWizardSentry();
18449
18564
  const program = new Command();
18450
18565
  program.name("orgx-wizard").description("Add OrgX MCP configs, skills/rules, and companion plugins to your local AI tools.").showHelpAfterError();
18451
- const pkgVersion = true ? "0.1.63" : void 0;
18566
+ const pkgVersion = true ? "0.1.65" : void 0;
18452
18567
  program.version(pkgVersion ?? "unknown", "-V, --version");
18453
18568
  program.hook("preAction", (_thisCommand, actionCommand) => {
18454
18569
  if (Boolean(actionCommand.optsWithGlobals().json)) return;
@@ -19492,4 +19607,4 @@ main().catch(async (error) => {
19492
19607
  process.exitCode = 1;
19493
19608
  });
19494
19609
  //# sourceMappingURL=cli.js.map
19495
- //# debugId=d41747ca-7c63-5e0b-83ef-90af38ff9921
19610
+ //# debugId=af54c3d7-9ef3-5d66-90dc-45a9ecb71d96