@wix/web50-cli 0.1.1 → 0.1.3

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.
Files changed (108) hide show
  1. package/bin/web5.js +1 -2
  2. package/dist/cjs/auth/deviceFlow.js +96 -17
  3. package/dist/cjs/auth/deviceFlow.js.map +1 -1
  4. package/dist/cjs/auth/index.js +40 -10
  5. package/dist/cjs/auth/index.js.map +1 -1
  6. package/dist/cjs/cli.js +3 -3
  7. package/dist/cjs/cli.js.map +1 -1
  8. package/dist/cjs/commands/bundle.js +12 -4
  9. package/dist/cjs/commands/bundle.js.map +1 -1
  10. package/dist/cjs/commands/conversation.js.map +1 -1
  11. package/dist/cjs/commands/conversationWizard.js +36 -12
  12. package/dist/cjs/commands/conversationWizard.js.map +1 -1
  13. package/dist/cjs/commands/deploy.js +55 -10
  14. package/dist/cjs/commands/deploy.js.map +1 -1
  15. package/dist/cjs/commands/ecom.js +239 -0
  16. package/dist/cjs/commands/ecom.js.map +1 -0
  17. package/dist/cjs/commands/embed.js +41 -52
  18. package/dist/cjs/commands/embed.js.map +1 -1
  19. package/dist/cjs/commands/init.js +34 -3
  20. package/dist/cjs/commands/init.js.map +1 -1
  21. package/dist/cjs/commands/instructions.js +147 -51
  22. package/dist/cjs/commands/instructions.js.map +1 -1
  23. package/dist/cjs/commands/login.js +8 -4
  24. package/dist/cjs/commands/login.js.map +1 -1
  25. package/dist/cjs/commands/serve.js.map +1 -1
  26. package/dist/cjs/commands/validate.js +368 -16
  27. package/dist/cjs/commands/validate.js.map +1 -1
  28. package/dist/cjs/commands/whoami.js.map +1 -1
  29. package/dist/cjs/templates/aiInstructionsSchema.js +5 -1
  30. package/dist/cjs/templates/aiInstructionsSchema.js.map +1 -1
  31. package/dist/cjs/templates/cmsMappingSchema.js +132 -0
  32. package/dist/cjs/templates/cmsMappingSchema.js.map +1 -0
  33. package/dist/cjs/templates/embedDocs.js +488 -0
  34. package/dist/cjs/templates/embedDocs.js.map +1 -0
  35. package/dist/cjs/utils/project.js +13 -0
  36. package/dist/cjs/utils/project.js.map +1 -1
  37. package/dist/cjs/utils/wixApi.js +3 -1
  38. package/dist/cjs/utils/wixApi.js.map +1 -1
  39. package/dist/esm/auth/deviceFlow.js +95 -17
  40. package/dist/esm/auth/deviceFlow.js.map +1 -1
  41. package/dist/esm/auth/index.js +40 -11
  42. package/dist/esm/auth/index.js.map +1 -1
  43. package/dist/esm/cli.js +3 -3
  44. package/dist/esm/cli.js.map +1 -1
  45. package/dist/esm/commands/bundle.js +12 -4
  46. package/dist/esm/commands/bundle.js.map +1 -1
  47. package/dist/esm/commands/conversation.js.map +1 -1
  48. package/dist/esm/commands/conversationWizard.js +36 -12
  49. package/dist/esm/commands/conversationWizard.js.map +1 -1
  50. package/dist/esm/commands/deploy.js +55 -10
  51. package/dist/esm/commands/deploy.js.map +1 -1
  52. package/dist/esm/commands/ecom.js +234 -0
  53. package/dist/esm/commands/ecom.js.map +1 -0
  54. package/dist/esm/commands/embed.js +42 -52
  55. package/dist/esm/commands/embed.js.map +1 -1
  56. package/dist/esm/commands/init.js +34 -3
  57. package/dist/esm/commands/init.js.map +1 -1
  58. package/dist/esm/commands/instructions.js +152 -53
  59. package/dist/esm/commands/instructions.js.map +1 -1
  60. package/dist/esm/commands/login.js +8 -4
  61. package/dist/esm/commands/login.js.map +1 -1
  62. package/dist/esm/commands/serve.js.map +1 -1
  63. package/dist/esm/commands/validate.js +373 -19
  64. package/dist/esm/commands/validate.js.map +1 -1
  65. package/dist/esm/commands/whoami.js.map +1 -1
  66. package/dist/esm/templates/aiInstructionsSchema.js +5 -1
  67. package/dist/esm/templates/aiInstructionsSchema.js.map +1 -1
  68. package/dist/esm/templates/cmsMappingSchema.js +128 -0
  69. package/dist/esm/templates/cmsMappingSchema.js.map +1 -0
  70. package/dist/esm/templates/embedDocs.js +484 -0
  71. package/dist/esm/templates/embedDocs.js.map +1 -0
  72. package/dist/esm/utils/project.js +15 -0
  73. package/dist/esm/utils/project.js.map +1 -1
  74. package/dist/esm/utils/wixApi.js +4 -2
  75. package/dist/esm/utils/wixApi.js.map +1 -1
  76. package/dist/types/auth/deviceFlow.d.ts +1 -1
  77. package/dist/types/auth/deviceFlow.d.ts.map +1 -1
  78. package/dist/types/auth/index.d.ts +2 -1
  79. package/dist/types/auth/index.d.ts.map +1 -1
  80. package/dist/types/commands/bundle.d.ts.map +1 -1
  81. package/dist/types/commands/conversation.d.ts.map +1 -1
  82. package/dist/types/commands/conversationWizard.d.ts.map +1 -1
  83. package/dist/types/commands/deploy.d.ts.map +1 -1
  84. package/dist/types/commands/ecom.d.ts +3 -0
  85. package/dist/types/commands/ecom.d.ts.map +1 -0
  86. package/dist/types/commands/embed.d.ts.map +1 -1
  87. package/dist/types/commands/init.d.ts.map +1 -1
  88. package/dist/types/commands/instructions.d.ts.map +1 -1
  89. package/dist/types/commands/login.d.ts.map +1 -1
  90. package/dist/types/commands/serve.d.ts.map +1 -1
  91. package/dist/types/commands/validate.d.ts +4 -2
  92. package/dist/types/commands/validate.d.ts.map +1 -1
  93. package/dist/types/commands/whoami.d.ts.map +1 -1
  94. package/dist/types/templates/aiInstructionsSchema.d.ts.map +1 -1
  95. package/dist/types/templates/cmsMappingSchema.d.ts +2 -0
  96. package/dist/types/templates/cmsMappingSchema.d.ts.map +1 -0
  97. package/dist/types/templates/embedDocs.d.ts +2 -0
  98. package/dist/types/templates/embedDocs.d.ts.map +1 -0
  99. package/dist/types/utils/project.d.ts +3 -0
  100. package/dist/types/utils/project.d.ts.map +1 -1
  101. package/dist/types/utils/wixApi.d.ts.map +1 -1
  102. package/package.json +2 -2
  103. package/dist/cjs/commands/getClientId.js +0 -60
  104. package/dist/cjs/commands/getClientId.js.map +0 -1
  105. package/dist/esm/commands/getClientId.js +0 -56
  106. package/dist/esm/commands/getClientId.js.map +0 -1
  107. package/dist/types/commands/getClientId.d.ts +0 -3
  108. package/dist/types/commands/getClientId.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_commander","require","_inquirer","_interopRequireDefault","path","_interopRequireWildcard","fs","_promises","_chalk","_print","_fs2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULTS_DIR","join","__dirname","printBanner","logo","console","log","line","chalk","cyan","dim","copyDefault","srcRelative","destAbsolute","substitutions","srcPath","content","readFile","token","value","entries","replaceAll","atomicWrite","copyDefaultTree","filter","cp","recursive","findExistingConfig","startDir","current","parent","dirname","candidate","existsSync","resolveString","flag","isTTY","question","opts","defaultValue","undefined","exitMsg","error","process","exit","answers","inquirer","prompt","initCommand","exports","Command","description","option","action","existing","cwd","warn","Boolean","stdin","mode","name","type","message","validate","v","trim","length","stem","split","pop","displayName","replace","dir","outDir","resolve","readdirSync","info","subs","NAME","DISPLAY_NAME","skill","folder","componentDir","ensureDir","success","err_","Error","String"],"sources":["../../../src/commands/init.ts"],"sourcesContent":["import { Command } from 'commander';\nimport inquirer from 'inquirer';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport { readFile, cp } from 'fs/promises';\nimport chalk from 'chalk';\nimport { success, error, info, warn } from '../utils/print';\nimport { atomicWrite, ensureDir } from '../utils/fs';\n\nconst DEFAULTS_DIR = path.join(__dirname, '../../../defaults');\n\nfunction printBanner(): void {\n const logo = [\n '██╗ ██╗ ███████╗ ██████╗ ███████╗',\n '██║ ██║ ██╔════╝ ██╔══██╗ ██╔════╝',\n '██║ █╗ ██║ █████╗ ██████╔╝ ███████╗',\n '██║███╗██║ ██╔══╝ ██╔══██╗ ╚════██║',\n '╚███╔███╔╝ ███████╗ ██████╔╝ ███████║',\n ' ╚══╝╚══╝ ╚══════╝ ╚═════╝ ╚══════╝',\n ];\n console.log('');\n for (const line of logo) {\n console.log(chalk.cyan(line));\n }\n console.log('');\n console.log(chalk.dim(' Build AI-powered client components for the Wix platform.'));\n console.log(chalk.dim(' Define sections, actions, and AI instructions —'));\n console.log(chalk.dim(' the platform interprets user intent and delivers personalized experiences.'));\n console.log('');\n}\n\ntype Mode = 'defaults' | 'scratch';\n\ninterface InitOptions {\n mode?: Mode;\n name?: string;\n displayName?: string;\n dir?: string;\n}\n\nasync function copyDefault(\n srcRelative: string,\n destAbsolute: string,\n substitutions: Record<string, string> = {},\n): Promise<void> {\n const srcPath = path.join(DEFAULTS_DIR, srcRelative);\n let content = await readFile(srcPath, 'utf8');\n for (const [token, value] of Object.entries(substitutions)) {\n content = content.replaceAll(`{{${token}}}`, value);\n }\n await atomicWrite(destAbsolute, content);\n}\n\nasync function copyDefaultTree(\n srcRelative: string,\n destAbsolute: string,\n filter?: (src: string, dest: string) => boolean,\n): Promise<void> {\n const srcPath = path.join(DEFAULTS_DIR, srcRelative);\n await cp(srcPath, destAbsolute, { recursive: true, filter });\n}\n\nfunction findExistingConfig(startDir: string): string | null {\n let current = startDir;\n let parent = path.dirname(current);\n while (current !== parent) {\n const candidate = path.join(current, 'web5.config.json');\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n current = parent;\n parent = path.dirname(current);\n }\n const candidate = path.join(current, 'web5.config.json');\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n return null;\n}\n\nasync function resolveString(\n flag: string | undefined,\n isTTY: boolean,\n question: Parameters<typeof inquirer.prompt>[0],\n opts: { defaultValue?: string; exitMsg?: string } = {},\n): Promise<string> {\n if (flag) {\n return flag;\n }\n if (!isTTY) {\n if (opts.defaultValue !== undefined) {\n return opts.defaultValue;\n }\n if (opts.exitMsg) {\n error(opts.exitMsg);\n }\n process.exit(1);\n }\n const answers = await inquirer.prompt<{ value: string }>(question);\n return answers.value ?? opts.defaultValue ?? '';\n}\n\nexport const initCommand = new Command('init')\n .description('Scaffold a new Web5 client component library')\n .option('--mode <mode>', 'scaffold mode: defaults or scratch', 'defaults')\n .option('--name <name>', 'npm package name (e.g. @wix/my-components)')\n .option('--display-name <displayName>', 'human-readable display name')\n .option(\n '--dir <dir>',\n 'output directory (default: derived from package name)',\n )\n .action(async (opts: InitOptions) => {\n try {\n printBanner();\n\n const existing = findExistingConfig(process.cwd());\n if (existing) {\n warn(`web5.config.json already exists at ${existing}`);\n warn('Proceeding will create a nested project.');\n }\n\n const isTTY = Boolean(process.stdin.isTTY);\n const mode: Mode = opts.mode ?? 'defaults';\n\n // ── Collect: package name ─────────────────────────────────────────────\n const name = await resolveString(\n opts.name,\n isTTY,\n [\n {\n type: 'input',\n name: 'value',\n message: 'Package name (e.g. @wix/my-components):',\n validate: (v: string) =>\n v.trim().length > 0 ? true : 'Package name is required',\n },\n ],\n { exitMsg: '--name is required in non-interactive mode' },\n );\n\n // ── Derive: display name and output directory from package name ───────\n const stem = name.split('/').pop()!;\n const displayName = opts.displayName ?? stem.replace(/-/g, ' ');\n const dir = opts.dir ?? stem;\n\n const outDir = path.resolve(process.cwd(), dir);\n\n if (fs.existsSync(outDir) && fs.readdirSync(outDir).length > 0) {\n warn(`Directory ${outDir} already exists and is not empty`);\n }\n\n info(`Scaffolding ${name} \\u2192 ${outDir}`);\n void mode;\n\n const subs = { NAME: name, DISPLAY_NAME: displayName };\n\n // ── Root config files ─────────────────────────────────────────────────\n await copyDefault(\n 'web5.config.json',\n path.join(outDir, 'web5.config.json'),\n subs,\n );\n await copyDefault(\n 'package.template.json',\n path.join(outDir, 'package.json'),\n subs,\n );\n await copyDefault('tsconfig.json', path.join(outDir, 'tsconfig.json'));\n\n // ── src/ ──────────────────────────────────────────────────────────────\n await copyDefault(\n 'src/index.ts',\n path.join(outDir, 'src', 'index.ts'),\n subs,\n );\n await copyDefault(\n 'src/createRegistry.ts',\n path.join(outDir, 'src', 'createRegistry.ts'),\n );\n await copyDefaultTree(\n 'src/components',\n path.join(outDir, 'src', 'components'),\n );\n await copyDefaultTree(\n '.storybook',\n path.join(outDir, '.storybook'),\n );\n await copyDefault(\n 'src/vite.cdn.config.ts',\n path.join(outDir, 'src', 'vite.cdn.config.ts'),\n );\n // ── src/configuration/ ────────────────────────────────────────────────\n await copyDefault(\n 'src/client.config.ts',\n path.join(outDir, 'src', 'client.config.ts'),\n );\n await copyDefault(\n 'src/configuration/ai/prompt-instructions.yaml',\n path.join(\n outDir,\n 'src',\n 'configuration',\n 'ai',\n 'prompt-instructions.yaml',\n ),\n );\n await copyDefault(\n 'src/configuration/cms/cms-mapping.yaml',\n path.join(outDir, 'src', 'configuration', 'cms', 'cms-mapping.yaml'),\n );\n await copyDefault(\n 'src/configuration/cms/cms-schema.yaml',\n path.join(outDir, 'src', 'configuration', 'cms', 'cms-schema.yaml'),\n );\n\n // ── src/actions/ ──────────────────────────────────────────────────────\n await copyDefault(\n 'src/actions/index.ts',\n path.join(outDir, 'src', 'actions', 'index.ts'),\n );\n await copyDefault(\n 'src/actions/bookDemoAction.ts',\n path.join(outDir, 'src', 'actions', 'bookDemoAction.ts'),\n );\n await copyDefault(\n 'src/actions/book-demo.yaml',\n path.join(outDir, 'src', 'actions', 'book-demo.yaml'),\n );\n await copyDefault(\n 'src/actions/contactAction.ts',\n path.join(outDir, 'src', 'actions', 'contactAction.ts'),\n );\n await copyDefault(\n 'src/actions/contact-action.yaml',\n path.join(outDir, 'src', 'actions', 'contact-action.yaml'),\n );\n\n // ── AGENTS.md ─────────────────────────────────────────────────────────\n await copyDefault('AGENTS.md', path.join(outDir, 'AGENTS.md'), subs);\n\n // ── docs/ ─────────────────────────────────────────────────────────────\n await copyDefault(\n 'docs/architecture.md',\n path.join(outDir, 'docs', 'architecture.md'),\n subs,\n );\n await copyDefault(\n 'docs/api-reference.md',\n path.join(outDir, 'docs', 'api-reference.md'),\n subs,\n );\n\n // ── skills/ ───────────────────────────────────────────────────────────\n for (const skill of [\n 'action-add',\n 'action-remove',\n 'action-update',\n 'section-add',\n 'section-remove',\n 'section-update',\n 'slot-add',\n ]) {\n await copyDefault(\n `skills/${skill}.md`,\n path.join(outDir, 'skills', `${skill}.md`),\n );\n }\n\n // ── Component subdirectories ──────────────────────────────────────────\n for (const folder of ['base', 'slots', 'sections']) {\n const componentDir = path.join(outDir, 'src', 'components', folder);\n await ensureDir(componentDir);\n await atomicWrite(path.join(componentDir, '.gitkeep'), '');\n }\n\n // ── Done ──────────────────────────────────────────────────────────────\n success(`Created ${name}`);\n console.log('');\n info('Next steps:');\n info(` cd ${dir}`);\n info(' npm install');\n } catch (err_) {\n error(err_ instanceof Error ? err_.message : String(err_));\n process.exit(1);\n }\n });\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_commander","require","_inquirer","_interopRequireDefault","path","_interopRequireWildcard","fs","_promises","_chalk","_print","_fs2","_auth","_deviceFlow","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULTS_DIR","join","__dirname","printBanner","logo","console","log","line","chalk","cyan","dim","copyDefault","srcRelative","destAbsolute","substitutions","srcPath","content","readFile","token","value","entries","replaceAll","atomicWrite","copyDefaultTree","filter","cp","recursive","findExistingConfig","startDir","current","parent","dirname","candidate","existsSync","resolveString","flag","isTTY","question","opts","defaultValue","undefined","exitMsg","error","process","exit","answers","inquirer","prompt","initCommand","exports","Command","description","option","action","authed","isAuthenticated","existing","cwd","warn","Boolean","stdin","mode","name","type","message","validate","v","trim","length","stem","split","pop","displayName","replace","dir","msid","getToken","promptSiteSelection","platformType","choices","outDir","resolve","readdirSync","info","subs","NAME","DISPLAY_NAME","MSID","PLATFORM_TYPE","skill","folder","componentDir","ensureDir","success","err_","Error","String"],"sources":["../../../src/commands/init.ts"],"sourcesContent":["import { Command } from 'commander';\nimport inquirer from 'inquirer';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport { readFile, cp } from 'fs/promises';\nimport chalk from 'chalk';\nimport { success, error, info, warn } from '../utils/print';\nimport { atomicWrite, ensureDir } from '../utils/fs';\nimport { isAuthenticated, getToken } from '../auth';\nimport { promptSiteSelection } from '../auth/deviceFlow';\n\nconst DEFAULTS_DIR = path.join(__dirname, '../../../defaults');\n\nfunction printBanner(): void {\n const logo = [\n '██╗ ██╗ ███████╗ ██████╗ ███████╗',\n '██║ ██║ ██╔════╝ ██╔══██╗ ██╔════╝',\n '██║ █╗ ██║ █████╗ ██████╔╝ ███████╗',\n '██║███╗██║ ██╔══╝ ██╔══██╗ ╚════██║',\n '╚███╔███╔╝ ███████╗ ██████╔╝ ███████║',\n ' ╚══╝╚══╝ ╚══════╝ ╚═════╝ ╚══════╝',\n ];\n console.log('');\n for (const line of logo) {\n console.log(chalk.cyan(line));\n }\n console.log('');\n console.log(\n chalk.dim(' Build AI-powered client components for the Wix platform.'),\n );\n console.log(chalk.dim(' Define sections, actions, and AI instructions —'));\n console.log(\n chalk.dim(\n ' the platform interprets user intent and delivers personalized experiences.',\n ),\n );\n console.log('');\n}\n\ntype Mode = 'defaults' | 'scratch';\n\ninterface InitOptions {\n mode?: Mode;\n name?: string;\n displayName?: string;\n dir?: string;\n msid?: string;\n}\n\nasync function copyDefault(\n srcRelative: string,\n destAbsolute: string,\n substitutions: Record<string, string> = {},\n): Promise<void> {\n const srcPath = path.join(DEFAULTS_DIR, srcRelative);\n let content = await readFile(srcPath, 'utf8');\n for (const [token, value] of Object.entries(substitutions)) {\n content = content.replaceAll(`{{${token}}}`, value);\n }\n await atomicWrite(destAbsolute, content);\n}\n\nasync function copyDefaultTree(\n srcRelative: string,\n destAbsolute: string,\n filter?: (src: string, dest: string) => boolean,\n): Promise<void> {\n const srcPath = path.join(DEFAULTS_DIR, srcRelative);\n await cp(srcPath, destAbsolute, { recursive: true, filter });\n}\n\nfunction findExistingConfig(startDir: string): string | null {\n let current = startDir;\n let parent = path.dirname(current);\n while (current !== parent) {\n const candidate = path.join(current, 'web5.config.json');\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n current = parent;\n parent = path.dirname(current);\n }\n const candidate = path.join(current, 'web5.config.json');\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n return null;\n}\n\nasync function resolveString(\n flag: string | undefined,\n isTTY: boolean,\n question: Parameters<typeof inquirer.prompt>[0],\n opts: { defaultValue?: string; exitMsg?: string } = {},\n): Promise<string> {\n if (flag) {\n return flag;\n }\n if (!isTTY) {\n if (opts.defaultValue !== undefined) {\n return opts.defaultValue;\n }\n if (opts.exitMsg) {\n error(opts.exitMsg);\n }\n process.exit(1);\n }\n const answers = await inquirer.prompt<{ value: string }>(question);\n return answers.value ?? opts.defaultValue ?? '';\n}\n\nexport const initCommand = new Command('init')\n .description('Scaffold a new Web5 client component library')\n .option('--mode <mode>', 'scaffold mode: defaults or scratch', 'defaults')\n .option('--name <name>', 'npm package name (e.g. @wix/my-components)')\n .option('--display-name <displayName>', 'human-readable display name')\n .option(\n '--dir <dir>',\n 'output directory (default: derived from package name)',\n )\n .option('--msid <msid>', 'Wix site ID to bind this project to')\n .action(async (opts: InitOptions) => {\n try {\n const authed = await isAuthenticated();\n if (!authed) {\n error('You must be logged in. Run `web5 login` first.');\n process.exit(1);\n }\n\n printBanner();\n\n const existing = findExistingConfig(process.cwd());\n if (existing) {\n warn(`web5.config.json already exists at ${existing}`);\n warn('Proceeding will create a nested project.');\n }\n\n const isTTY = Boolean(process.stdin.isTTY);\n const mode: Mode = opts.mode ?? 'defaults';\n\n // ── Collect: package name ─────────────────────────────────────────────\n const name = await resolveString(\n opts.name,\n isTTY,\n [\n {\n type: 'input',\n name: 'value',\n message: 'Package name (e.g. @wix/my-components):',\n validate: (v: string) =>\n v.trim().length > 0 ? true : 'Package name is required',\n },\n ],\n { exitMsg: '--name is required in non-interactive mode' },\n );\n\n // ── Derive: display name and output directory from package name ───────\n const stem = name.split('/').pop()!;\n const displayName = opts.displayName ?? stem.replace(/-/g, ' ');\n const dir = opts.dir ?? stem;\n\n let msid: string;\n if (opts.msid) {\n msid = opts.msid;\n } else if (isTTY) {\n const token = await getToken();\n msid = await promptSiteSelection(token!);\n } else {\n error('--msid is required in non-interactive mode');\n process.exit(1);\n }\n\n let platformType: string;\n if (isTTY) {\n const answers = await inquirer.prompt<{ value: string }>([\n {\n type: 'list',\n name: 'value',\n message: 'Platform type:',\n choices: ['Content', 'Ecommerce'],\n },\n ]);\n platformType = answers.value;\n } else {\n platformType = 'Content';\n }\n\n const outDir = path.resolve(process.cwd(), dir);\n\n if (fs.existsSync(outDir) && fs.readdirSync(outDir).length > 0) {\n warn(`Directory ${outDir} already exists and is not empty`);\n }\n\n info(`Scaffolding ${name} \\u2192 ${outDir}`);\n void mode;\n\n const subs = {\n NAME: name,\n DISPLAY_NAME: displayName,\n MSID: msid,\n PLATFORM_TYPE: platformType,\n };\n\n // ── Root config files ─────────────────────────────────────────────────\n await copyDefault(\n 'web5.config.template.json',\n path.join(outDir, 'web5.config.json'),\n subs,\n );\n await copyDefault(\n 'package.template.json',\n path.join(outDir, 'package.json'),\n subs,\n );\n await copyDefault('tsconfig.json', path.join(outDir, 'tsconfig.json'));\n\n // ── src/ ──────────────────────────────────────────────────────────────\n await copyDefault(\n 'src/index.ts',\n path.join(outDir, 'src', 'index.ts'),\n subs,\n );\n await copyDefault(\n 'src/createRegistry.ts',\n path.join(outDir, 'src', 'createRegistry.ts'),\n );\n await copyDefaultTree(\n 'src/components',\n path.join(outDir, 'src', 'components'),\n );\n await copyDefaultTree('.storybook', path.join(outDir, '.storybook'));\n await copyDefault(\n 'src/vite.cdn.config.ts',\n path.join(outDir, 'src', 'vite.cdn.config.ts'),\n );\n // ── src/configuration/ ────────────────────────────────────────────────\n await copyDefault(\n 'src/client.config.ts',\n path.join(outDir, 'src', 'client.config.ts'),\n );\n await copyDefault(\n 'src/configuration/ai/prompt-instructions.yaml',\n path.join(\n outDir,\n 'src',\n 'configuration',\n 'ai',\n 'prompt-instructions.yaml',\n ),\n );\n await copyDefault(\n 'src/configuration/cms/cms-mapping.yaml',\n path.join(outDir, 'src', 'configuration', 'cms', 'cms-mapping.yaml'),\n );\n await copyDefault(\n 'src/configuration/cms/cms-schema.yaml',\n path.join(outDir, 'src', 'configuration', 'cms', 'cms-schema.yaml'),\n );\n\n // ── src/actions/ ──────────────────────────────────────────────────────\n await copyDefault(\n 'src/actions/index.ts',\n path.join(outDir, 'src', 'actions', 'index.ts'),\n );\n await copyDefault(\n 'src/actions/bookDemoAction.ts',\n path.join(outDir, 'src', 'actions', 'bookDemoAction.ts'),\n );\n await copyDefault(\n 'src/actions/book-demo.yaml',\n path.join(outDir, 'src', 'actions', 'book-demo.yaml'),\n );\n await copyDefault(\n 'src/actions/contactAction.ts',\n path.join(outDir, 'src', 'actions', 'contactAction.ts'),\n );\n await copyDefault(\n 'src/actions/contact-action.yaml',\n path.join(outDir, 'src', 'actions', 'contact-action.yaml'),\n );\n\n // ── AGENTS.md ─────────────────────────────────────────────────────────\n await copyDefault('AGENTS.md', path.join(outDir, 'AGENTS.md'), subs);\n\n // ── docs/ ─────────────────────────────────────────────────────────────\n await copyDefault(\n 'docs/architecture.md',\n path.join(outDir, 'docs', 'architecture.md'),\n subs,\n );\n await copyDefault(\n 'docs/api-reference.md',\n path.join(outDir, 'docs', 'api-reference.md'),\n subs,\n );\n\n // ── skills/ ───────────────────────────────────────────────────────────\n for (const skill of [\n 'action-add',\n 'action-remove',\n 'action-update',\n 'section-add',\n 'section-remove',\n 'section-update',\n 'slot-add',\n ]) {\n await copyDefault(\n `skills/${skill}.md`,\n path.join(outDir, 'skills', `${skill}.md`),\n );\n }\n\n // ── Component subdirectories ──────────────────────────────────────────\n for (const folder of ['base', 'slots', 'sections']) {\n const componentDir = path.join(outDir, 'src', 'components', folder);\n await ensureDir(componentDir);\n await atomicWrite(path.join(componentDir, '.gitkeep'), '');\n }\n\n // ── Done ──────────────────────────────────────────────────────────────\n success(`Created ${name}`);\n console.log('');\n info('Next steps:');\n info(` cd ${dir}`);\n info(' npm install');\n } catch (err_) {\n error(err_ instanceof Error ? err_.message : String(err_));\n process.exit(1);\n }\n });\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,10 @@ var _wixApi = require("../utils/wixApi");
13
13
  var _print = require("../utils/print");
14
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
15
  const BASE = '/web5/instructions/cli';
16
- // ── Wizard ────────────────────────────────────────────────────────────────
16
+
17
+ // ── Types ─────────────────────────────────────────────────────────────────────
18
+
19
+ // ── Display helpers ───────────────────────────────────────────────────────────
17
20
 
18
21
  const BOX_W = 66;
19
22
  function printHeader(title) {
@@ -29,17 +32,121 @@ function printDivider(hints) {
29
32
  console.log();
30
33
  }
31
34
  function truncate(text, max = 48) {
32
- const clean = text.replace(/\n/g, ' ').trim();
35
+ const clean = (text ?? '').replace(/\n/g, ' ').trim();
33
36
  return clean.length > max ? `${clean.slice(0, max - 1)}…` : clean;
34
37
  }
38
+ function printInstructionContent(inst) {
39
+ // Intents
40
+ console.log(_chalk.default.bold(' Intents'));
41
+ console.log(_chalk.default.dim(' ' + '─'.repeat(40)));
42
+ const intents = inst.intents ?? {};
43
+ if (Object.keys(intents).length === 0) {
44
+ console.log(_chalk.default.dim(' (none)'));
45
+ } else {
46
+ for (const [k, v] of Object.entries(intents)) {
47
+ console.log(` ${_chalk.default.cyan(k)}: ${v}`);
48
+ }
49
+ }
50
+ console.log();
51
+
52
+ // Semantics
53
+ console.log(_chalk.default.bold(' Semantics'));
54
+ console.log(_chalk.default.dim(' ' + '─'.repeat(40)));
55
+ const semantics = inst.semantics ?? {};
56
+ if (Object.keys(semantics).length === 0) {
57
+ console.log(_chalk.default.dim(' (none)'));
58
+ } else {
59
+ for (const [k, v] of Object.entries(semantics)) {
60
+ console.log(` ${_chalk.default.cyan(k)}: ${v}`);
61
+ }
62
+ }
63
+ console.log();
64
+
65
+ // Actions
66
+ console.log(_chalk.default.bold(' Actions'));
67
+ console.log(_chalk.default.dim(' ' + '─'.repeat(40)));
68
+ const actions = inst.actions ?? [];
69
+ if (actions.length === 0) {
70
+ console.log(_chalk.default.dim(' (none)'));
71
+ } else {
72
+ for (const action of actions) {
73
+ const desc = action.description ? _chalk.default.dim(` — ${action.description}`) : '';
74
+ console.log(` ${_chalk.default.cyan('• ' + action.name)}${desc}`);
75
+ for (const p of action.params ?? []) {
76
+ const preview = p.values.length > 0 ? _chalk.default.dim(` [${p.values.slice(0, 3).join(', ')}${p.values.length > 3 ? ', …' : ''}]`) : '';
77
+ const optTag = p.optional ? _chalk.default.dim(' (optional)') : '';
78
+ console.log(` ${p.param}${preview}${optTag}`);
79
+ }
80
+ }
81
+ }
82
+ console.log();
83
+
84
+ // Free-text instruction
85
+ console.log(_chalk.default.bold(' Instruction'));
86
+ console.log(_chalk.default.dim(' ' + '─'.repeat(40)));
87
+ console.log(` ${inst.content ?? ''}`);
88
+ console.log();
89
+ }
90
+
91
+ // ── Diff helper ───────────────────────────────────────────────────────────────
92
+
93
+ function diffLines(aStr, bStr) {
94
+ const aLines = aStr.split('\n');
95
+ const bLines = bStr.split('\n');
96
+ const out = [];
97
+ const maxLen = Math.max(aLines.length, bLines.length);
98
+ for (let i = 0; i < maxLen; i++) {
99
+ const aLine = i < aLines.length ? aLines[i] : null;
100
+ const bLine = i < bLines.length ? bLines[i] : null;
101
+ if (aLine === bLine) {
102
+ out.push(` ${aLine ?? ''}`);
103
+ } else {
104
+ if (aLine !== null) {
105
+ out.push(_chalk.default.red(`- ${aLine}`));
106
+ }
107
+ if (bLine !== null) {
108
+ out.push(_chalk.default.green(`+ ${bLine}`));
109
+ }
110
+ }
111
+ }
112
+ return out.join('\n');
113
+ }
114
+ function formatKV(obj) {
115
+ return Object.entries(obj ?? {}).map(([k, v]) => `${k}: ${v}`).join('\n');
116
+ }
117
+ function formatActions(actions) {
118
+ return (actions ?? []).map(a => {
119
+ const params = (a.params ?? []).map(p => ` ${p.param}: [${p.values.join(', ')}]`).join('\n');
120
+ const header = a.description ? `${a.name} — ${a.description}` : a.name;
121
+ return params ? `${header}\n${params}` : header;
122
+ }).join('\n\n');
123
+ }
124
+ function diffInstructions(a, b, v1, v2) {
125
+ const out = [_chalk.default.dim(`--- v${v1}`), _chalk.default.dim(`+++ v${v2}`), ''];
126
+ const sections = [['Intents', formatKV(a.intents), formatKV(b.intents)], ['Semantics', formatKV(a.semantics), formatKV(b.semantics)], ['Actions', formatActions(a.actions), formatActions(b.actions)], ['Instruction', a.content ?? '', b.content ?? '']];
127
+ for (const [label, aStr, bStr] of sections) {
128
+ out.push(_chalk.default.bold(`── ${label} ──`));
129
+ if (aStr === bStr) {
130
+ out.push(_chalk.default.dim(' (no changes)'));
131
+ } else {
132
+ out.push(diffLines(aStr, bStr));
133
+ }
134
+ out.push('');
135
+ }
136
+ return out.join('\n');
137
+ }
138
+
139
+ // ── Wizard ────────────────────────────────────────────────────────────────────
140
+
35
141
  async function showInstructionDetail(version, instructions) {
36
142
  const inst = instructions.find(i => i.version === version);
37
- if (!inst) return 'back';
143
+ if (!inst) {
144
+ return 'back';
145
+ }
38
146
  console.clear();
39
147
  const activeLabel = inst.active ? _chalk.default.green(' (active)') : '';
40
148
  printHeader(`📋 AI Instructions ❯ Version ${version}${activeLabel}`);
41
- console.log(_chalk.default.dim(' Content:'));
42
- console.log(`\n${inst.content}\n`);
149
+ printInstructionContent(inst);
43
150
  const choices = [{
44
151
  name: ` ${_chalk.default.dim('← Back')}`,
45
152
  value: 'back'
@@ -80,8 +187,6 @@ async function runInstructionsWizard() {
80
187
  console.log(_chalk.default.dim('\nBye.\n'));
81
188
  process.exit(0);
82
189
  });
83
-
84
- // Fetch once, keep local copy so activation updates in-memory
85
190
  const sp = (0, _ora.default)('Fetching instructions…').start();
86
191
  let instructions = [];
87
192
  try {
@@ -103,7 +208,7 @@ async function runInstructionsWizard() {
103
208
  console.log(_chalk.default.yellow('No instructions found.'));
104
209
  process.exit(0);
105
210
  }
106
- let running = true;
211
+ const running = true;
107
212
  while (running) {
108
213
  console.clear();
109
214
  printHeader(`📋 AI Instructions ${_chalk.default.dim(`${instructions.length} versions`)}`);
@@ -128,9 +233,13 @@ async function runInstructionsWizard() {
128
233
  choices,
129
234
  pageSize: 12
130
235
  }]);
131
- if (version === '__exit__') break;
236
+ if (version === '__exit__') {
237
+ break;
238
+ }
132
239
  const result = await showInstructionDetail(version, instructions);
133
- if (result === 'exit') break;
240
+ if (result === 'exit') {
241
+ break;
242
+ }
134
243
  if (result === 'refetch') {
135
244
  try {
136
245
  const data = await (0, _wixApi.wixRequest)({
@@ -151,27 +260,7 @@ async function runInstructionsWizard() {
151
260
  process.exit(0);
152
261
  }
153
262
 
154
- // ── Diff helper ───────────────────────────────────────────────────────────
155
-
156
- function diffContent(a, b, v1, v2) {
157
- const aLines = a.split('\n');
158
- const bLines = b.split('\n');
159
- const out = [_chalk.default.dim(`--- v${v1}`), _chalk.default.dim(`+++ v${v2}`), ''];
160
- const maxLen = Math.max(aLines.length, bLines.length);
161
- for (let i = 0; i < maxLen; i++) {
162
- const aLine = i < aLines.length ? aLines[i] : null;
163
- const bLine = i < bLines.length ? bLines[i] : null;
164
- if (aLine === bLine) {
165
- out.push(` ${aLine ?? ''}`);
166
- } else {
167
- if (aLine !== null) out.push(_chalk.default.red(`- ${aLine}`));
168
- if (bLine !== null) out.push(_chalk.default.green(`+ ${bLine}`));
169
- }
170
- }
171
- return out.join('\n');
172
- }
173
-
174
- // ── Subcommands ───────────────────────────────────────────────────────────
263
+ // ── Subcommands ───────────────────────────────────────────────────────────────
175
264
 
176
265
  const getActiveCmd = new _commander.Command('get-active').description('Get the currently active instruction').action(async () => {
177
266
  const sp = (0, _print.spinner)('Fetching active instruction...');
@@ -180,13 +269,10 @@ const getActiveCmd = new _commander.Command('get-active').description('Get the c
180
269
  path: `${BASE}/active`
181
270
  });
182
271
  sp.stop();
183
- const {
184
- version,
185
- content
186
- } = data.instruction;
187
- console.log(_chalk.default.bold(`Version ${version}`));
272
+ const inst = data.instruction;
273
+ console.log(_chalk.default.bold(`Version ${inst.version}`));
188
274
  console.log();
189
- console.log(content);
275
+ printInstructionContent(inst);
190
276
  } catch (err_) {
191
277
  sp.stop();
192
278
  (0, _print.error)(err_.message);
@@ -212,22 +298,28 @@ const listCmd = new _commander.Command('list').description('List all instruction
212
298
  const view = items.map(({
213
299
  version,
214
300
  active,
301
+ intents,
302
+ semantics,
303
+ actions,
215
304
  content
216
305
  }) => ({
217
306
  version,
218
307
  active: active ?? false,
308
+ intents,
309
+ semantics,
310
+ actions,
219
311
  content
220
312
  }));
221
313
  console.log(JSON.stringify(view, null, 2));
222
314
  } else {
223
- const header = `${'Version'.padEnd(10)}${'Active'.padEnd(10)}Content`;
315
+ const header = `${'Version'.padEnd(10)}${'Active'.padEnd(10)}Instruction`;
224
316
  console.log(_chalk.default.bold(header));
225
317
  console.log('─'.repeat(60));
226
318
  for (const i of items) {
227
319
  const ver = `v${i.version}`.padEnd(10);
228
320
  const active = (i.active ? '✓' : '').padEnd(10);
229
- const content = truncate(i.content, 40);
230
- console.log(`${_chalk.default.cyan(ver)}${_chalk.default.green(active)}${content}`);
321
+ const preview = truncate(i.content, 40);
322
+ console.log(`${_chalk.default.cyan(ver)}${_chalk.default.green(active)}${preview}`);
231
323
  }
232
324
  }
233
325
  } catch (err_) {
@@ -258,20 +350,17 @@ const getCmd = new _commander.Command('get').description('Get an instruction by
258
350
  path: `${BASE}/by-version/${version}`
259
351
  });
260
352
  sp.stop();
261
- const {
262
- version: ver,
263
- content
264
- } = data.instruction;
265
- console.log(_chalk.default.bold(`Version ${ver}`));
353
+ const inst = data.instruction;
354
+ console.log(_chalk.default.bold(`Version ${inst.version}`));
266
355
  console.log();
267
- console.log(content);
356
+ printInstructionContent(inst);
268
357
  } catch (err_) {
269
358
  sp.stop();
270
359
  (0, _print.error)(err_.message);
271
360
  process.exit(1);
272
361
  }
273
362
  });
274
- const diffCmd = new _commander.Command('diff').description('Show line-by-line diff between two instruction versions').argument('<v1>', 'First version number').argument('<v2>', 'Second version number').action(async (v1, v2) => {
363
+ const diffCmd = new _commander.Command('diff').description('Show diff between two instruction versions across all sections').argument('<v1>', 'First version number').argument('<v2>', 'Second version number').action(async (v1, v2) => {
275
364
  const sp = (0, _print.spinner)(`Fetching versions ${v1} and ${v2}...`);
276
365
  try {
277
366
  const [d1, d2] = await Promise.all([(0, _wixApi.wixRequest)({
@@ -280,22 +369,29 @@ const diffCmd = new _commander.Command('diff').description('Show line-by-line di
280
369
  path: `${BASE}/by-version/${v2}`
281
370
  })]);
282
371
  sp.stop();
283
- console.log(diffContent(d1.instruction.content, d2.instruction.content, v1, v2));
372
+ console.log(diffInstructions(d1.instruction, d2.instruction, v1, v2));
284
373
  } catch (err_) {
285
374
  sp.stop();
286
375
  (0, _print.error)(err_.message);
287
376
  process.exit(1);
288
377
  }
289
378
  });
290
- const exportCmd = new _commander.Command('export').description('Export an instruction version to a local file').requiredOption('--version <v>', 'Version number to export').requiredOption('--output <file>', 'Output file path').action(async opts => {
379
+ const exportCmd = new _commander.Command('export').description('Export an instruction version to a local file').requiredOption('--version <v>', 'Version number to export').requiredOption('--output <file>', 'Output file path (.json)').action(async opts => {
291
380
  const sp = (0, _print.spinner)(`Fetching instruction version ${opts.version}...`);
292
381
  try {
293
382
  const data = await (0, _wixApi.wixRequest)({
294
383
  path: `${BASE}/by-version/${opts.version}`
295
384
  });
296
385
  sp.stop();
386
+ const inst = data.instruction;
387
+ const outContent = JSON.stringify({
388
+ intents: inst.intents,
389
+ semantics: inst.semantics,
390
+ actions: inst.actions,
391
+ content: inst.content
392
+ }, null, 2);
297
393
  const outPath = path.resolve(opts.output);
298
- fs.writeFileSync(outPath, data.instruction.content, 'utf8');
394
+ fs.writeFileSync(outPath, outContent, 'utf8');
299
395
  (0, _print.success)(`Exported version ${opts.version} to ${outPath}`);
300
396
  } catch (err_) {
301
397
  sp.stop();
@@ -339,7 +435,7 @@ const rollbackCmd = new _commander.Command('rollback').description('Re-activate
339
435
  }
340
436
  });
341
437
 
342
- // ── Command export ────────────────────────────────────────────────────────
438
+ // ── Command export ────────────────────────────────────────────────────────────
343
439
 
344
440
  const wizardCmd = new _commander.Command('wizard').description('Open the interactive TUI to browse and activate instruction versions').action(async () => {
345
441
  try {
@@ -1 +1 @@
1
- {"version":3,"names":["_commander","require","fs","_interopRequireWildcard","path","_inquirer","_interopRequireDefault","_chalk","_ora","_wixApi","_print","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BASE","BOX_W","printHeader","title","pad","repeat","Math","max","length","console","log","chalk","cyan","bold","printDivider","hints","dim","truncate","text","clean","replace","trim","slice","showInstructionDetail","version","instructions","inst","find","clear","activeLabel","active","green","content","choices","name","value","red","action","inquirer","prompt","type","message","sp","ora","start","wixRequest","method","stop","err_","fail","error","runInstructionsWizard","process","on","exit","data","body","query","yellow","running","map","activeTag","label","white","Separator","pageSize","result","diffContent","a","b","v1","v2","aLines","split","bLines","out","maxLen","aLine","bLine","push","join","getActiveCmd","Command","description","spinner","instruction","listCmd","option","opts","items","filter","format","view","JSON","stringify","header","padEnd","ver","activateCmd","argument","success","getCmd","diffCmd","d1","d2","Promise","all","exportCmd","requiredOption","outPath","resolve","output","writeFileSync","rollbackCmd","previous","Number","sort","sp2","wizardCmd","msg","includes","instructionsCommand","exports","outputHelp","addCommand"],"sources":["../../../src/commands/instructions.ts"],"sourcesContent":["import { Command } from 'commander';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { wixRequest } from '../utils/wixApi';\nimport { success, error, spinner } from '../utils/print';\n\nconst BASE = '/web5/instructions/cli';\n\ninterface Instruction {\n id: string;\n revision: string;\n version: string;\n active?: boolean;\n content: string;\n createdDate?: string;\n updatedDate?: string;\n}\n\n// ── Wizard ────────────────────────────────────────────────────────────────\n\nconst BOX_W = 66;\n\nfunction printHeader(title: string): void {\n const pad = ' '.repeat(Math.max(0, BOX_W - title.length - 1));\n console.log(chalk.cyan('╔' + '═'.repeat(BOX_W) + '╗'));\n console.log(`${chalk.cyan('║')} ${chalk.bold(title)}${pad}${chalk.cyan('║')}`);\n console.log(chalk.cyan('╚' + '═'.repeat(BOX_W) + '╝'));\n console.log();\n}\n\nfunction printDivider(hints: string): void {\n console.log(chalk.dim('─'.repeat(BOX_W + 2)));\n console.log(chalk.dim(` ${hints}`));\n console.log();\n}\n\nfunction truncate(text: string, max = 48): string {\n const clean = text.replace(/\\n/g, ' ').trim();\n return clean.length > max ? `${clean.slice(0, max - 1)}…` : clean;\n}\n\n\nasync function showInstructionDetail(\n version: string,\n instructions: Instruction[],\n): Promise<'back' | 'exit' | 'refetch'> {\n const inst = instructions.find((i) => i.version === version);\n if (!inst) return 'back';\n\n console.clear();\n const activeLabel = inst.active ? chalk.green(' (active)') : '';\n printHeader(`📋 AI Instructions ❯ Version ${version}${activeLabel}`);\n\n console.log(chalk.dim(' Content:'));\n console.log(`\\n${inst.content}\\n`);\n\n const choices = [\n { name: ` ${chalk.dim('← Back')}`, value: 'back' },\n ...(!inst.active\n ? [{ name: ` ${chalk.cyan('⚡ Activate this version')}`, value: 'activate' }]\n : []),\n { name: ` ${chalk.red('✕ Exit')}`, value: 'exit' },\n ];\n\n const { action } = await inquirer.prompt<{ action: string }>([\n {\n type: 'list',\n name: 'action',\n message: chalk.bold('What would you like to do?'),\n choices,\n },\n ]);\n\n if (action === 'activate') {\n const sp = ora(`Activating version ${version}…`).start();\n try {\n await wixRequest({ path: `${BASE}/activate/${version}`, method: 'POST' });\n sp.stop();\n console.log(chalk.green(`✔ Version ${version} is now active\\n`));\n } catch (err_) {\n sp.fail('Activation failed');\n console.error(chalk.red((err_ as Error).message));\n }\n return 'refetch';\n }\n\n return action as 'back' | 'exit';\n}\n\nasync function runInstructionsWizard(): Promise<void> {\n process.on('SIGINT', () => {\n console.log(chalk.dim('\\nBye.\\n'));\n process.exit(0);\n });\n\n // Fetch once, keep local copy so activation updates in-memory\n const sp = ora('Fetching instructions…').start();\n let instructions: Instruction[] = [];\n try {\n const data = await wixRequest<{ instructions: Instruction[] }>({\n path: `${BASE}/query`,\n method: 'POST',\n body: { query: {} },\n });\n sp.stop();\n instructions = data.instructions ?? [];\n } catch (err_) {\n sp.fail('Failed to fetch instructions');\n console.error(chalk.red((err_ as Error).message));\n process.exit(1);\n }\n\n if (instructions.length === 0) {\n console.log(chalk.yellow('No instructions found.'));\n process.exit(0);\n }\n\n let running = true;\n while (running) {\n console.clear();\n printHeader(`📋 AI Instructions ${chalk.dim(`${instructions.length} versions`)}`);\n printDivider('[↑↓] Navigate [Enter] Select [Ctrl+C] Quit');\n\n const choices = [\n ...instructions.map((inst) => {\n const activeTag = inst.active\n ? chalk.green(' ✓ active')\n : chalk.dim(' ');\n const label = ` v${inst.version}${activeTag} ${chalk.white(truncate(inst.content))}`;\n return { name: label, value: inst.version };\n }),\n new inquirer.Separator('─'.repeat(BOX_W)),\n { name: ` ${chalk.red('✕ Exit')}`, value: '__exit__' },\n ];\n\n const { version } = await inquirer.prompt<{ version: string }>([\n {\n type: 'list',\n name: 'version',\n message: chalk.bold('Select a version'),\n choices,\n pageSize: 12,\n },\n ]);\n\n if (version === '__exit__') break;\n\n const result = await showInstructionDetail(version, instructions);\n if (result === 'exit') break;\n if (result === 'refetch') {\n try {\n const data = await wixRequest<{ instructions: Instruction[] }>({\n path: `${BASE}/query`,\n method: 'POST',\n body: { query: {} },\n });\n instructions = data.instructions ?? instructions;\n } catch {\n // keep existing data if re-fetch fails\n }\n }\n }\n\n console.clear();\n console.log(chalk.dim('Bye.\\n'));\n process.exit(0);\n}\n\n// ── Diff helper ───────────────────────────────────────────────────────────\n\nfunction diffContent(a: string, b: string, v1: string, v2: string): string {\n const aLines = a.split('\\n');\n const bLines = b.split('\\n');\n const out: string[] = [\n chalk.dim(`--- v${v1}`),\n chalk.dim(`+++ v${v2}`),\n '',\n ];\n\n const maxLen = Math.max(aLines.length, bLines.length);\n for (let i = 0; i < maxLen; i++) {\n const aLine = i < aLines.length ? aLines[i] : null;\n const bLine = i < bLines.length ? bLines[i] : null;\n if (aLine === bLine) {\n out.push(` ${aLine ?? ''}`);\n } else {\n if (aLine !== null) out.push(chalk.red(`- ${aLine}`));\n if (bLine !== null) out.push(chalk.green(`+ ${bLine}`));\n }\n }\n\n return out.join('\\n');\n}\n\n// ── Subcommands ───────────────────────────────────────────────────────────\n\nconst getActiveCmd = new Command('get-active')\n .description('Get the currently active instruction')\n .action(async () => {\n const sp = spinner('Fetching active instruction...');\n try {\n const data = await wixRequest<{ instruction: Instruction }>({\n path: `${BASE}/active`,\n });\n sp.stop();\n const { version, content } = data.instruction;\n console.log(chalk.bold(`Version ${version}`));\n console.log();\n console.log(content);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst listCmd = new Command('list')\n .description('List all instructions')\n .option('--active', 'Show only the currently active instruction')\n .option('--format <format>', 'Output format: table (default) or json', 'table')\n .action(async (opts: { active?: boolean; format?: string }) => {\n const sp = spinner('Fetching instructions...');\n try {\n const data = await wixRequest<{ instructions: Instruction[] }>({\n path: `${BASE}/query`,\n method: 'POST',\n body: { query: {} },\n });\n sp.stop();\n\n let items = data.instructions ?? [];\n if (opts.active) {\n items = items.filter((i) => i.active);\n }\n\n if (opts.format === 'json') {\n const view = items.map(({ version, active, content }) => ({ version, active: active ?? false, content }));\n console.log(JSON.stringify(view, null, 2));\n } else {\n const header = `${'Version'.padEnd(10)}${'Active'.padEnd(10)}Content`;\n console.log(chalk.bold(header));\n console.log('─'.repeat(60));\n for (const i of items) {\n const ver = `v${i.version}`.padEnd(10);\n const active = (i.active ? '✓' : '').padEnd(10);\n const content = truncate(i.content, 40);\n console.log(`${chalk.cyan(ver)}${chalk.green(active)}${content}`);\n }\n }\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst activateCmd = new Command('set-active')\n .description('Set an instruction as active by version number')\n .argument('<version>', 'Version number to activate')\n .action(async (version: string) => {\n const sp = spinner(`Activating instruction version ${version}...`);\n try {\n await wixRequest<{\n instruction: Instruction;\n previousInstruction?: Instruction;\n }>({\n path: `${BASE}/activate/${version}`,\n method: 'POST',\n });\n sp.stop();\n success(`Activated version ${version}`);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst getCmd = new Command('get')\n .description('Get an instruction by version number')\n .argument('<version>', 'Version number')\n .action(async (version: string) => {\n const sp = spinner(`Fetching instruction version ${version}...`);\n try {\n const data = await wixRequest<{ instruction: Instruction }>({\n path: `${BASE}/by-version/${version}`,\n });\n sp.stop();\n const { version: ver, content } = data.instruction;\n console.log(chalk.bold(`Version ${ver}`));\n console.log();\n console.log(content);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst diffCmd = new Command('diff')\n .description('Show line-by-line diff between two instruction versions')\n .argument('<v1>', 'First version number')\n .argument('<v2>', 'Second version number')\n .action(async (v1: string, v2: string) => {\n const sp = spinner(`Fetching versions ${v1} and ${v2}...`);\n try {\n const [d1, d2] = await Promise.all([\n wixRequest<{ instruction: Instruction }>({ path: `${BASE}/by-version/${v1}` }),\n wixRequest<{ instruction: Instruction }>({ path: `${BASE}/by-version/${v2}` }),\n ]);\n sp.stop();\n console.log(diffContent(d1.instruction.content, d2.instruction.content, v1, v2));\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst exportCmd = new Command('export')\n .description('Export an instruction version to a local file')\n .requiredOption('--version <v>', 'Version number to export')\n .requiredOption('--output <file>', 'Output file path')\n .action(async (opts: { version: string; output: string }) => {\n const sp = spinner(`Fetching instruction version ${opts.version}...`);\n try {\n const data = await wixRequest<{ instruction: Instruction }>({\n path: `${BASE}/by-version/${opts.version}`,\n });\n sp.stop();\n const outPath = path.resolve(opts.output);\n fs.writeFileSync(outPath, data.instruction.content, 'utf8');\n success(`Exported version ${opts.version} to ${outPath}`);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst rollbackCmd = new Command('rollback')\n .description('Re-activate the version that was active before the current one')\n .action(async () => {\n const sp = spinner('Fetching instructions...');\n try {\n const data = await wixRequest<{ instructions: Instruction[] }>({\n path: `${BASE}/query`,\n method: 'POST',\n body: { query: {} },\n });\n sp.stop();\n\n const instructions = data.instructions ?? [];\n const active = instructions.find((i) => i.active);\n if (!active) {\n error('No active instruction found — nothing to roll back from.');\n process.exit(1);\n }\n\n const previous = instructions\n .filter((i) => !i.active && Number(i.version) < Number(active!.version))\n .sort((a, b) => Number(b.version) - Number(a.version))[0];\n\n if (!previous) {\n error(`No previous version found before v${active!.version}.`);\n process.exit(1);\n }\n\n const sp2 = spinner(`Rolling back to version ${previous.version}...`);\n await wixRequest({\n path: `${BASE}/activate/${previous.version}`,\n method: 'POST',\n });\n sp2.stop();\n success(`Rolled back to v${previous.version} (was v${active.version})`);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\n// ── Command export ────────────────────────────────────────────────────────\n\nconst wizardCmd = new Command('wizard')\n .description('Open the interactive TUI to browse and activate instruction versions')\n .action(async () => {\n try {\n await runInstructionsWizard();\n } catch (err_) {\n const msg = (err_ as Error).message ?? '';\n if (msg.includes('force closed') || msg.includes('User force')) {\n console.log(chalk.dim('\\nBye.'));\n process.exit(0);\n }\n console.error(chalk.red('Unexpected error: ' + msg));\n process.exit(1);\n }\n });\n\nexport const instructionsCommand = new Command('instructions')\n .description('Manage AI instructions')\n .action(function (this: Command) {\n this.outputHelp();\n })\n .addCommand(wizardCmd)\n .addCommand(getActiveCmd)\n .addCommand(listCmd)\n .addCommand(activateCmd)\n .addCommand(getCmd)\n .addCommand(diffCmd)\n .addCommand(exportCmd)\n .addCommand(rollbackCmd);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_commander","require","fs","_interopRequireWildcard","path","_inquirer","_interopRequireDefault","_chalk","_ora","_wixApi","_print","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BASE","BOX_W","printHeader","title","pad","repeat","Math","max","length","console","log","chalk","cyan","bold","printDivider","hints","dim","truncate","text","clean","replace","trim","slice","printInstructionContent","inst","intents","keys","k","v","entries","semantics","actions","action","desc","description","name","p","params","preview","values","join","optTag","optional","param","content","diffLines","aStr","bStr","aLines","split","bLines","out","maxLen","aLine","bLine","push","red","green","formatKV","obj","map","formatActions","a","header","diffInstructions","b","v1","v2","sections","label","showInstructionDetail","version","instructions","find","clear","activeLabel","active","choices","value","inquirer","prompt","type","message","sp","ora","start","wixRequest","method","stop","err_","fail","error","runInstructionsWizard","process","on","exit","data","body","query","yellow","running","activeTag","white","Separator","pageSize","result","getActiveCmd","Command","spinner","instruction","listCmd","option","opts","items","filter","format","view","JSON","stringify","padEnd","ver","activateCmd","argument","success","getCmd","diffCmd","d1","d2","Promise","all","exportCmd","requiredOption","outContent","outPath","resolve","output","writeFileSync","rollbackCmd","previous","Number","sort","sp2","wizardCmd","msg","includes","instructionsCommand","exports","outputHelp","addCommand"],"sources":["../../../src/commands/instructions.ts"],"sourcesContent":["import { Command } from 'commander';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { wixRequest } from '../utils/wixApi';\nimport { success, error, spinner } from '../utils/print';\n\nconst BASE = '/web5/instructions/cli';\n\n// ── Types ─────────────────────────────────────────────────────────────────────\n\ninterface ActionParam {\n param: string;\n values: string[];\n optional?: boolean;\n description?: string;\n}\n\ninterface ActionItem {\n name: string;\n description?: string;\n params: ActionParam[];\n}\n\ninterface Instruction {\n id: string;\n revision: string;\n version: string;\n active?: boolean;\n intents: Record<string, string>;\n semantics: Record<string, string>;\n actions: ActionItem[];\n content: string;\n created_date?: string;\n updated_date?: string;\n}\n\n// ── Display helpers ───────────────────────────────────────────────────────────\n\nconst BOX_W = 66;\n\nfunction printHeader(title: string): void {\n const pad = ' '.repeat(Math.max(0, BOX_W - title.length - 1));\n console.log(chalk.cyan('╔' + '═'.repeat(BOX_W) + '╗'));\n console.log(\n `${chalk.cyan('║')} ${chalk.bold(title)}${pad}${chalk.cyan('║')}`,\n );\n console.log(chalk.cyan('╚' + '═'.repeat(BOX_W) + '╝'));\n console.log();\n}\n\nfunction printDivider(hints: string): void {\n console.log(chalk.dim('─'.repeat(BOX_W + 2)));\n console.log(chalk.dim(` ${hints}`));\n console.log();\n}\n\nfunction truncate(text: string, max = 48): string {\n const clean = (text ?? '').replace(/\\n/g, ' ').trim();\n return clean.length > max ? `${clean.slice(0, max - 1)}…` : clean;\n}\n\nfunction printInstructionContent(inst: Instruction): void {\n // Intents\n console.log(chalk.bold(' Intents'));\n console.log(chalk.dim(' ' + '─'.repeat(40)));\n const intents = inst.intents ?? {};\n if (Object.keys(intents).length === 0) {\n console.log(chalk.dim(' (none)'));\n } else {\n for (const [k, v] of Object.entries(intents)) {\n console.log(` ${chalk.cyan(k)}: ${v}`);\n }\n }\n console.log();\n\n // Semantics\n console.log(chalk.bold(' Semantics'));\n console.log(chalk.dim(' ' + '─'.repeat(40)));\n const semantics = inst.semantics ?? {};\n if (Object.keys(semantics).length === 0) {\n console.log(chalk.dim(' (none)'));\n } else {\n for (const [k, v] of Object.entries(semantics)) {\n console.log(` ${chalk.cyan(k)}: ${v}`);\n }\n }\n console.log();\n\n // Actions\n console.log(chalk.bold(' Actions'));\n console.log(chalk.dim(' ' + '─'.repeat(40)));\n const actions = inst.actions ?? [];\n if (actions.length === 0) {\n console.log(chalk.dim(' (none)'));\n } else {\n for (const action of actions) {\n const desc = action.description\n ? chalk.dim(` — ${action.description}`)\n : '';\n console.log(` ${chalk.cyan('• ' + action.name)}${desc}`);\n for (const p of action.params ?? []) {\n const preview =\n p.values.length > 0\n ? chalk.dim(\n ` [${p.values.slice(0, 3).join(', ')}${\n p.values.length > 3 ? ', …' : ''\n }]`,\n )\n : '';\n const optTag = p.optional ? chalk.dim(' (optional)') : '';\n console.log(` ${p.param}${preview}${optTag}`);\n }\n }\n }\n console.log();\n\n // Free-text instruction\n console.log(chalk.bold(' Instruction'));\n console.log(chalk.dim(' ' + '─'.repeat(40)));\n console.log(` ${inst.content ?? ''}`);\n console.log();\n}\n\n// ── Diff helper ───────────────────────────────────────────────────────────────\n\nfunction diffLines(aStr: string, bStr: string): string {\n const aLines = aStr.split('\\n');\n const bLines = bStr.split('\\n');\n const out: string[] = [];\n const maxLen = Math.max(aLines.length, bLines.length);\n for (let i = 0; i < maxLen; i++) {\n const aLine = i < aLines.length ? aLines[i] : null;\n const bLine = i < bLines.length ? bLines[i] : null;\n if (aLine === bLine) {\n out.push(` ${aLine ?? ''}`);\n } else {\n if (aLine !== null) {\n out.push(chalk.red(`- ${aLine}`));\n }\n if (bLine !== null) {\n out.push(chalk.green(`+ ${bLine}`));\n }\n }\n }\n return out.join('\\n');\n}\n\nfunction formatKV(obj: Record<string, string>): string {\n return Object.entries(obj ?? {})\n .map(([k, v]) => `${k}: ${v}`)\n .join('\\n');\n}\n\nfunction formatActions(actions: ActionItem[]): string {\n return (actions ?? [])\n .map((a) => {\n const params = (a.params ?? [])\n .map((p) => ` ${p.param}: [${p.values.join(', ')}]`)\n .join('\\n');\n const header = a.description ? `${a.name} — ${a.description}` : a.name;\n return params ? `${header}\\n${params}` : header;\n })\n .join('\\n\\n');\n}\n\nfunction diffInstructions(\n a: Instruction,\n b: Instruction,\n v1: string,\n v2: string,\n): string {\n const out: string[] = [chalk.dim(`--- v${v1}`), chalk.dim(`+++ v${v2}`), ''];\n\n const sections: [string, string, string][] = [\n ['Intents', formatKV(a.intents), formatKV(b.intents)],\n ['Semantics', formatKV(a.semantics), formatKV(b.semantics)],\n ['Actions', formatActions(a.actions), formatActions(b.actions)],\n ['Instruction', a.content ?? '', b.content ?? ''],\n ];\n\n for (const [label, aStr, bStr] of sections) {\n out.push(chalk.bold(`── ${label} ──`));\n if (aStr === bStr) {\n out.push(chalk.dim(' (no changes)'));\n } else {\n out.push(diffLines(aStr, bStr));\n }\n out.push('');\n }\n\n return out.join('\\n');\n}\n\n// ── Wizard ────────────────────────────────────────────────────────────────────\n\nasync function showInstructionDetail(\n version: string,\n instructions: Instruction[],\n): Promise<'back' | 'exit' | 'refetch'> {\n const inst = instructions.find((i) => i.version === version);\n if (!inst) {\n return 'back';\n }\n\n console.clear();\n const activeLabel = inst.active ? chalk.green(' (active)') : '';\n printHeader(`📋 AI Instructions ❯ Version ${version}${activeLabel}`);\n\n printInstructionContent(inst);\n\n const choices = [\n { name: ` ${chalk.dim('← Back')}`, value: 'back' },\n ...(!inst.active\n ? [\n {\n name: ` ${chalk.cyan('⚡ Activate this version')}`,\n value: 'activate',\n },\n ]\n : []),\n { name: ` ${chalk.red('✕ Exit')}`, value: 'exit' },\n ];\n\n const { action } = await inquirer.prompt<{ action: string }>([\n {\n type: 'list',\n name: 'action',\n message: chalk.bold('What would you like to do?'),\n choices,\n },\n ]);\n\n if (action === 'activate') {\n const sp = ora(`Activating version ${version}…`).start();\n try {\n await wixRequest({ path: `${BASE}/activate/${version}`, method: 'POST' });\n sp.stop();\n console.log(chalk.green(`✔ Version ${version} is now active\\n`));\n } catch (err_) {\n sp.fail('Activation failed');\n console.error(chalk.red((err_ as Error).message));\n }\n return 'refetch';\n }\n\n return action as 'back' | 'exit';\n}\n\nasync function runInstructionsWizard(): Promise<void> {\n process.on('SIGINT', () => {\n console.log(chalk.dim('\\nBye.\\n'));\n process.exit(0);\n });\n\n const sp = ora('Fetching instructions…').start();\n let instructions: Instruction[] = [];\n try {\n const data = await wixRequest<{ instructions: Instruction[] }>({\n path: `${BASE}/query`,\n method: 'POST',\n body: { query: {} },\n });\n sp.stop();\n instructions = data.instructions ?? [];\n } catch (err_) {\n sp.fail('Failed to fetch instructions');\n console.error(chalk.red((err_ as Error).message));\n process.exit(1);\n }\n\n if (instructions.length === 0) {\n console.log(chalk.yellow('No instructions found.'));\n process.exit(0);\n }\n\n const running = true;\n while (running) {\n console.clear();\n printHeader(\n `📋 AI Instructions ${chalk.dim(`${instructions.length} versions`)}`,\n );\n printDivider('[↑↓] Navigate [Enter] Select [Ctrl+C] Quit');\n\n const choices = [\n ...instructions.map((inst) => {\n const activeTag = inst.active\n ? chalk.green(' ✓ active')\n : chalk.dim(' ');\n const label = ` v${inst.version}${activeTag} ${chalk.white(\n truncate(inst.content),\n )}`;\n return { name: label, value: inst.version };\n }),\n new inquirer.Separator('─'.repeat(BOX_W)),\n { name: ` ${chalk.red('✕ Exit')}`, value: '__exit__' },\n ];\n\n const { version } = await inquirer.prompt<{ version: string }>([\n {\n type: 'list',\n name: 'version',\n message: chalk.bold('Select a version'),\n choices,\n pageSize: 12,\n },\n ]);\n\n if (version === '__exit__') {\n break;\n }\n\n const result = await showInstructionDetail(version, instructions);\n if (result === 'exit') {\n break;\n }\n if (result === 'refetch') {\n try {\n const data = await wixRequest<{ instructions: Instruction[] }>({\n path: `${BASE}/query`,\n method: 'POST',\n body: { query: {} },\n });\n instructions = data.instructions ?? instructions;\n } catch {\n // keep existing data if re-fetch fails\n }\n }\n }\n\n console.clear();\n console.log(chalk.dim('Bye.\\n'));\n process.exit(0);\n}\n\n// ── Subcommands ───────────────────────────────────────────────────────────────\n\nconst getActiveCmd = new Command('get-active')\n .description('Get the currently active instruction')\n .action(async () => {\n const sp = spinner('Fetching active instruction...');\n try {\n const data = await wixRequest<{ instruction: Instruction }>({\n path: `${BASE}/active`,\n });\n sp.stop();\n const inst = data.instruction;\n console.log(chalk.bold(`Version ${inst.version}`));\n console.log();\n printInstructionContent(inst);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst listCmd = new Command('list')\n .description('List all instructions')\n .option('--active', 'Show only the currently active instruction')\n .option(\n '--format <format>',\n 'Output format: table (default) or json',\n 'table',\n )\n .action(async (opts: { active?: boolean; format?: string }) => {\n const sp = spinner('Fetching instructions...');\n try {\n const data = await wixRequest<{ instructions: Instruction[] }>({\n path: `${BASE}/query`,\n method: 'POST',\n body: { query: {} },\n });\n sp.stop();\n\n let items = data.instructions ?? [];\n if (opts.active) {\n items = items.filter((i) => i.active);\n }\n\n if (opts.format === 'json') {\n const view = items.map(\n ({ version, active, intents, semantics, actions, content }) => ({\n version,\n active: active ?? false,\n intents,\n semantics,\n actions,\n content,\n }),\n );\n console.log(JSON.stringify(view, null, 2));\n } else {\n const header = `${'Version'.padEnd(10)}${'Active'.padEnd(\n 10,\n )}Instruction`;\n console.log(chalk.bold(header));\n console.log('─'.repeat(60));\n for (const i of items) {\n const ver = `v${i.version}`.padEnd(10);\n const active = (i.active ? '✓' : '').padEnd(10);\n const preview = truncate(i.content, 40);\n console.log(`${chalk.cyan(ver)}${chalk.green(active)}${preview}`);\n }\n }\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst activateCmd = new Command('set-active')\n .description('Set an instruction as active by version number')\n .argument('<version>', 'Version number to activate')\n .action(async (version: string) => {\n const sp = spinner(`Activating instruction version ${version}...`);\n try {\n await wixRequest<{\n instruction: Instruction;\n previousInstruction?: Instruction;\n }>({\n path: `${BASE}/activate/${version}`,\n method: 'POST',\n });\n sp.stop();\n success(`Activated version ${version}`);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst getCmd = new Command('get')\n .description('Get an instruction by version number')\n .argument('<version>', 'Version number')\n .action(async (version: string) => {\n const sp = spinner(`Fetching instruction version ${version}...`);\n try {\n const data = await wixRequest<{ instruction: Instruction }>({\n path: `${BASE}/by-version/${version}`,\n });\n sp.stop();\n const inst = data.instruction;\n console.log(chalk.bold(`Version ${inst.version}`));\n console.log();\n printInstructionContent(inst);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst diffCmd = new Command('diff')\n .description('Show diff between two instruction versions across all sections')\n .argument('<v1>', 'First version number')\n .argument('<v2>', 'Second version number')\n .action(async (v1: string, v2: string) => {\n const sp = spinner(`Fetching versions ${v1} and ${v2}...`);\n try {\n const [d1, d2] = await Promise.all([\n wixRequest<{ instruction: Instruction }>({\n path: `${BASE}/by-version/${v1}`,\n }),\n wixRequest<{ instruction: Instruction }>({\n path: `${BASE}/by-version/${v2}`,\n }),\n ]);\n sp.stop();\n console.log(diffInstructions(d1.instruction, d2.instruction, v1, v2));\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst exportCmd = new Command('export')\n .description('Export an instruction version to a local file')\n .requiredOption('--version <v>', 'Version number to export')\n .requiredOption('--output <file>', 'Output file path (.json)')\n .action(async (opts: { version: string; output: string }) => {\n const sp = spinner(`Fetching instruction version ${opts.version}...`);\n try {\n const data = await wixRequest<{ instruction: Instruction }>({\n path: `${BASE}/by-version/${opts.version}`,\n });\n sp.stop();\n const inst = data.instruction;\n const outContent = JSON.stringify(\n {\n intents: inst.intents,\n semantics: inst.semantics,\n actions: inst.actions,\n content: inst.content,\n },\n null,\n 2,\n );\n const outPath = path.resolve(opts.output);\n fs.writeFileSync(outPath, outContent, 'utf8');\n success(`Exported version ${opts.version} to ${outPath}`);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\nconst rollbackCmd = new Command('rollback')\n .description('Re-activate the version that was active before the current one')\n .action(async () => {\n const sp = spinner('Fetching instructions...');\n try {\n const data = await wixRequest<{ instructions: Instruction[] }>({\n path: `${BASE}/query`,\n method: 'POST',\n body: { query: {} },\n });\n sp.stop();\n\n const instructions = data.instructions ?? [];\n const active = instructions.find((i) => i.active);\n if (!active) {\n error('No active instruction found — nothing to roll back from.');\n process.exit(1);\n }\n\n const previous = instructions\n .filter((i) => !i.active && Number(i.version) < Number(active!.version))\n .sort((a, b) => Number(b.version) - Number(a.version))[0];\n\n if (!previous) {\n error(`No previous version found before v${active!.version}.`);\n process.exit(1);\n }\n\n const sp2 = spinner(`Rolling back to version ${previous.version}...`);\n await wixRequest({\n path: `${BASE}/activate/${previous.version}`,\n method: 'POST',\n });\n sp2.stop();\n success(`Rolled back to v${previous.version} (was v${active.version})`);\n } catch (err_) {\n sp.stop();\n error((err_ as Error).message);\n process.exit(1);\n }\n });\n\n// ── Command export ────────────────────────────────────────────────────────────\n\nconst wizardCmd = new Command('wizard')\n .description(\n 'Open the interactive TUI to browse and activate instruction versions',\n )\n .action(async () => {\n try {\n await runInstructionsWizard();\n } catch (err_) {\n const msg = (err_ as Error).message ?? '';\n if (msg.includes('force closed') || msg.includes('User force')) {\n console.log(chalk.dim('\\nBye.'));\n process.exit(0);\n }\n console.error(chalk.red('Unexpected error: ' + msg));\n process.exit(1);\n }\n });\n\nexport const instructionsCommand = new Command('instructions')\n .description('Manage AI instructions')\n .action(function (this: Command) {\n this.outputHelp();\n })\n .addCommand(wizardCmd)\n .addCommand(getActiveCmd)\n .addCommand(listCmd)\n .addCommand(activateCmd)\n .addCommand(getCmd)\n .addCommand(diffCmd)\n .addCommand(exportCmd)\n .addCommand(rollbackCmd);\n"],"mappings":"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","ignoreList":[]}