synarcx 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +90 -0
  3. package/bin/synarcx.js +3 -0
  4. package/dist/cli/index.d.ts +2 -0
  5. package/dist/cli/index.js +474 -0
  6. package/dist/commands/change.d.ts +35 -0
  7. package/dist/commands/change.js +278 -0
  8. package/dist/commands/completion.d.ts +72 -0
  9. package/dist/commands/completion.js +264 -0
  10. package/dist/commands/config.d.ts +36 -0
  11. package/dist/commands/config.js +552 -0
  12. package/dist/commands/feedback.d.ts +9 -0
  13. package/dist/commands/feedback.js +170 -0
  14. package/dist/commands/schema.d.ts +6 -0
  15. package/dist/commands/schema.js +870 -0
  16. package/dist/commands/show.d.ts +14 -0
  17. package/dist/commands/show.js +132 -0
  18. package/dist/commands/spec.d.ts +15 -0
  19. package/dist/commands/spec.js +226 -0
  20. package/dist/commands/validate.d.ts +24 -0
  21. package/dist/commands/validate.js +295 -0
  22. package/dist/commands/workflow/index.d.ts +17 -0
  23. package/dist/commands/workflow/index.js +12 -0
  24. package/dist/commands/workflow/instructions.d.ts +29 -0
  25. package/dist/commands/workflow/instructions.js +327 -0
  26. package/dist/commands/workflow/new-change.d.ts +11 -0
  27. package/dist/commands/workflow/new-change.js +45 -0
  28. package/dist/commands/workflow/schemas.d.ts +10 -0
  29. package/dist/commands/workflow/schemas.js +34 -0
  30. package/dist/commands/workflow/shared.d.ts +57 -0
  31. package/dist/commands/workflow/shared.js +117 -0
  32. package/dist/commands/workflow/status.d.ts +14 -0
  33. package/dist/commands/workflow/status.js +75 -0
  34. package/dist/commands/workflow/templates.d.ts +16 -0
  35. package/dist/commands/workflow/templates.js +69 -0
  36. package/dist/commands/workspace/open.d.ts +29 -0
  37. package/dist/commands/workspace/open.js +84 -0
  38. package/dist/commands/workspace/operations.d.ts +18 -0
  39. package/dist/commands/workspace/operations.js +461 -0
  40. package/dist/commands/workspace/selection.d.ts +5 -0
  41. package/dist/commands/workspace/selection.js +90 -0
  42. package/dist/commands/workspace/types.d.ts +83 -0
  43. package/dist/commands/workspace/types.js +36 -0
  44. package/dist/commands/workspace.d.ts +3 -0
  45. package/dist/commands/workspace.js +635 -0
  46. package/dist/core/archive.d.ts +11 -0
  47. package/dist/core/archive.js +319 -0
  48. package/dist/core/artifact-graph/graph.d.ts +56 -0
  49. package/dist/core/artifact-graph/graph.js +141 -0
  50. package/dist/core/artifact-graph/index.d.ts +8 -0
  51. package/dist/core/artifact-graph/index.js +14 -0
  52. package/dist/core/artifact-graph/instruction-loader.d.ts +143 -0
  53. package/dist/core/artifact-graph/instruction-loader.js +217 -0
  54. package/dist/core/artifact-graph/outputs.d.ts +14 -0
  55. package/dist/core/artifact-graph/outputs.js +39 -0
  56. package/dist/core/artifact-graph/resolver.d.ts +81 -0
  57. package/dist/core/artifact-graph/resolver.js +258 -0
  58. package/dist/core/artifact-graph/schema.d.ts +13 -0
  59. package/dist/core/artifact-graph/schema.js +108 -0
  60. package/dist/core/artifact-graph/state.d.ts +12 -0
  61. package/dist/core/artifact-graph/state.js +31 -0
  62. package/dist/core/artifact-graph/types.d.ts +45 -0
  63. package/dist/core/artifact-graph/types.js +43 -0
  64. package/dist/core/available-tools.d.ts +17 -0
  65. package/dist/core/available-tools.js +43 -0
  66. package/dist/core/command-generation/adapters/amazon-q.d.ts +13 -0
  67. package/dist/core/command-generation/adapters/amazon-q.js +26 -0
  68. package/dist/core/command-generation/adapters/antigravity.d.ts +13 -0
  69. package/dist/core/command-generation/adapters/antigravity.js +26 -0
  70. package/dist/core/command-generation/adapters/auggie.d.ts +13 -0
  71. package/dist/core/command-generation/adapters/auggie.js +27 -0
  72. package/dist/core/command-generation/adapters/bob.d.ts +14 -0
  73. package/dist/core/command-generation/adapters/bob.js +45 -0
  74. package/dist/core/command-generation/adapters/claude.d.ts +13 -0
  75. package/dist/core/command-generation/adapters/claude.js +50 -0
  76. package/dist/core/command-generation/adapters/cline.d.ts +14 -0
  77. package/dist/core/command-generation/adapters/cline.js +27 -0
  78. package/dist/core/command-generation/adapters/codebuddy.d.ts +13 -0
  79. package/dist/core/command-generation/adapters/codebuddy.js +28 -0
  80. package/dist/core/command-generation/adapters/codex.d.ts +16 -0
  81. package/dist/core/command-generation/adapters/codex.js +39 -0
  82. package/dist/core/command-generation/adapters/continue.d.ts +13 -0
  83. package/dist/core/command-generation/adapters/continue.js +28 -0
  84. package/dist/core/command-generation/adapters/costrict.d.ts +13 -0
  85. package/dist/core/command-generation/adapters/costrict.js +27 -0
  86. package/dist/core/command-generation/adapters/crush.d.ts +13 -0
  87. package/dist/core/command-generation/adapters/crush.js +30 -0
  88. package/dist/core/command-generation/adapters/cursor.d.ts +14 -0
  89. package/dist/core/command-generation/adapters/cursor.js +44 -0
  90. package/dist/core/command-generation/adapters/factory.d.ts +13 -0
  91. package/dist/core/command-generation/adapters/factory.js +27 -0
  92. package/dist/core/command-generation/adapters/gemini.d.ts +13 -0
  93. package/dist/core/command-generation/adapters/gemini.js +26 -0
  94. package/dist/core/command-generation/adapters/github-copilot.d.ts +13 -0
  95. package/dist/core/command-generation/adapters/github-copilot.js +26 -0
  96. package/dist/core/command-generation/adapters/iflow.d.ts +13 -0
  97. package/dist/core/command-generation/adapters/iflow.js +29 -0
  98. package/dist/core/command-generation/adapters/index.d.ts +32 -0
  99. package/dist/core/command-generation/adapters/index.js +32 -0
  100. package/dist/core/command-generation/adapters/junie.d.ts +13 -0
  101. package/dist/core/command-generation/adapters/junie.js +26 -0
  102. package/dist/core/command-generation/adapters/kilocode.d.ts +14 -0
  103. package/dist/core/command-generation/adapters/kilocode.js +23 -0
  104. package/dist/core/command-generation/adapters/kiro.d.ts +13 -0
  105. package/dist/core/command-generation/adapters/kiro.js +26 -0
  106. package/dist/core/command-generation/adapters/lingma.d.ts +13 -0
  107. package/dist/core/command-generation/adapters/lingma.js +30 -0
  108. package/dist/core/command-generation/adapters/opencode.d.ts +13 -0
  109. package/dist/core/command-generation/adapters/opencode.js +27 -0
  110. package/dist/core/command-generation/adapters/pi.d.ts +18 -0
  111. package/dist/core/command-generation/adapters/pi.js +55 -0
  112. package/dist/core/command-generation/adapters/qoder.d.ts +13 -0
  113. package/dist/core/command-generation/adapters/qoder.js +30 -0
  114. package/dist/core/command-generation/adapters/qwen.d.ts +13 -0
  115. package/dist/core/command-generation/adapters/qwen.js +26 -0
  116. package/dist/core/command-generation/adapters/roocode.d.ts +14 -0
  117. package/dist/core/command-generation/adapters/roocode.js +27 -0
  118. package/dist/core/command-generation/adapters/windsurf.d.ts +14 -0
  119. package/dist/core/command-generation/adapters/windsurf.js +51 -0
  120. package/dist/core/command-generation/generator.d.ts +21 -0
  121. package/dist/core/command-generation/generator.js +27 -0
  122. package/dist/core/command-generation/index.d.ts +22 -0
  123. package/dist/core/command-generation/index.js +24 -0
  124. package/dist/core/command-generation/registry.d.ts +36 -0
  125. package/dist/core/command-generation/registry.js +98 -0
  126. package/dist/core/command-generation/types.d.ts +56 -0
  127. package/dist/core/command-generation/types.js +8 -0
  128. package/dist/core/completions/command-registry.d.ts +7 -0
  129. package/dist/core/completions/command-registry.js +596 -0
  130. package/dist/core/completions/completion-provider.d.ts +71 -0
  131. package/dist/core/completions/completion-provider.js +129 -0
  132. package/dist/core/completions/factory.d.ts +64 -0
  133. package/dist/core/completions/factory.js +75 -0
  134. package/dist/core/completions/generators/bash-generator.d.ts +35 -0
  135. package/dist/core/completions/generators/bash-generator.js +230 -0
  136. package/dist/core/completions/generators/fish-generator.d.ts +32 -0
  137. package/dist/core/completions/generators/fish-generator.js +160 -0
  138. package/dist/core/completions/generators/powershell-generator.d.ts +36 -0
  139. package/dist/core/completions/generators/powershell-generator.js +266 -0
  140. package/dist/core/completions/generators/zsh-generator.d.ts +47 -0
  141. package/dist/core/completions/generators/zsh-generator.js +274 -0
  142. package/dist/core/completions/installers/bash-installer.d.ts +87 -0
  143. package/dist/core/completions/installers/bash-installer.js +318 -0
  144. package/dist/core/completions/installers/fish-installer.d.ts +43 -0
  145. package/dist/core/completions/installers/fish-installer.js +143 -0
  146. package/dist/core/completions/installers/powershell-installer.d.ts +102 -0
  147. package/dist/core/completions/installers/powershell-installer.js +387 -0
  148. package/dist/core/completions/installers/zsh-installer.d.ts +117 -0
  149. package/dist/core/completions/installers/zsh-installer.js +421 -0
  150. package/dist/core/completions/templates/bash-templates.d.ts +6 -0
  151. package/dist/core/completions/templates/bash-templates.js +30 -0
  152. package/dist/core/completions/templates/fish-templates.d.ts +7 -0
  153. package/dist/core/completions/templates/fish-templates.js +45 -0
  154. package/dist/core/completions/templates/powershell-templates.d.ts +6 -0
  155. package/dist/core/completions/templates/powershell-templates.js +34 -0
  156. package/dist/core/completions/templates/zsh-templates.d.ts +6 -0
  157. package/dist/core/completions/templates/zsh-templates.js +45 -0
  158. package/dist/core/completions/types.d.ts +101 -0
  159. package/dist/core/completions/types.js +2 -0
  160. package/dist/core/config-prompts.d.ts +9 -0
  161. package/dist/core/config-prompts.js +34 -0
  162. package/dist/core/config-schema.d.ts +86 -0
  163. package/dist/core/config-schema.js +213 -0
  164. package/dist/core/config.d.ts +19 -0
  165. package/dist/core/config.js +38 -0
  166. package/dist/core/converters/json-converter.d.ts +6 -0
  167. package/dist/core/converters/json-converter.js +51 -0
  168. package/dist/core/global-config.d.ts +49 -0
  169. package/dist/core/global-config.js +124 -0
  170. package/dist/core/index.d.ts +3 -0
  171. package/dist/core/index.js +4 -0
  172. package/dist/core/init.d.ts +37 -0
  173. package/dist/core/init.js +585 -0
  174. package/dist/core/legacy-cleanup.d.ts +169 -0
  175. package/dist/core/legacy-cleanup.js +578 -0
  176. package/dist/core/list.d.ts +9 -0
  177. package/dist/core/list.js +172 -0
  178. package/dist/core/migration.d.ts +23 -0
  179. package/dist/core/migration.js +108 -0
  180. package/dist/core/parsers/change-parser.d.ts +13 -0
  181. package/dist/core/parsers/change-parser.js +197 -0
  182. package/dist/core/parsers/markdown-parser.d.ts +26 -0
  183. package/dist/core/parsers/markdown-parser.js +227 -0
  184. package/dist/core/parsers/requirement-blocks.d.ts +37 -0
  185. package/dist/core/parsers/requirement-blocks.js +201 -0
  186. package/dist/core/parsers/spec-structure.d.ts +9 -0
  187. package/dist/core/parsers/spec-structure.js +88 -0
  188. package/dist/core/profile-sync-drift.d.ts +38 -0
  189. package/dist/core/profile-sync-drift.js +197 -0
  190. package/dist/core/profiles.d.ts +26 -0
  191. package/dist/core/profiles.js +37 -0
  192. package/dist/core/project-config.d.ts +64 -0
  193. package/dist/core/project-config.js +224 -0
  194. package/dist/core/schemas/base.schema.d.ts +13 -0
  195. package/dist/core/schemas/base.schema.js +13 -0
  196. package/dist/core/schemas/change.schema.d.ts +73 -0
  197. package/dist/core/schemas/change.schema.js +31 -0
  198. package/dist/core/schemas/index.d.ts +4 -0
  199. package/dist/core/schemas/index.js +4 -0
  200. package/dist/core/schemas/spec.schema.d.ts +18 -0
  201. package/dist/core/schemas/spec.schema.js +15 -0
  202. package/dist/core/shared/index.d.ts +8 -0
  203. package/dist/core/shared/index.js +8 -0
  204. package/dist/core/shared/skill-generation.d.ts +49 -0
  205. package/dist/core/shared/skill-generation.js +90 -0
  206. package/dist/core/shared/tool-detection.d.ts +71 -0
  207. package/dist/core/shared/tool-detection.js +152 -0
  208. package/dist/core/specs-apply.d.ts +73 -0
  209. package/dist/core/specs-apply.js +393 -0
  210. package/dist/core/styles/palette.d.ts +7 -0
  211. package/dist/core/styles/palette.js +8 -0
  212. package/dist/core/templates/index.d.ts +8 -0
  213. package/dist/core/templates/index.js +9 -0
  214. package/dist/core/templates/skill-templates.d.ts +15 -0
  215. package/dist/core/templates/skill-templates.js +14 -0
  216. package/dist/core/templates/types.d.ts +19 -0
  217. package/dist/core/templates/types.js +5 -0
  218. package/dist/core/templates/workflows/analyze.d.ts +4 -0
  219. package/dist/core/templates/workflows/analyze.js +101 -0
  220. package/dist/core/templates/workflows/apply-change.d.ts +10 -0
  221. package/dist/core/templates/workflows/apply-change.js +308 -0
  222. package/dist/core/templates/workflows/archive-change.d.ts +10 -0
  223. package/dist/core/templates/workflows/archive-change.js +271 -0
  224. package/dist/core/templates/workflows/clarify.d.ts +4 -0
  225. package/dist/core/templates/workflows/clarify.js +108 -0
  226. package/dist/core/templates/workflows/debug.d.ts +4 -0
  227. package/dist/core/templates/workflows/debug.js +117 -0
  228. package/dist/core/templates/workflows/explore.d.ts +10 -0
  229. package/dist/core/templates/workflows/explore.js +479 -0
  230. package/dist/core/templates/workflows/propose.d.ts +10 -0
  231. package/dist/core/templates/workflows/propose.js +216 -0
  232. package/dist/core/templates/workflows/sync.d.ts +4 -0
  233. package/dist/core/templates/workflows/sync.js +108 -0
  234. package/dist/core/update.d.ts +82 -0
  235. package/dist/core/update.js +555 -0
  236. package/dist/core/validation/constants.d.ts +34 -0
  237. package/dist/core/validation/constants.js +40 -0
  238. package/dist/core/validation/types.d.ts +18 -0
  239. package/dist/core/validation/types.js +2 -0
  240. package/dist/core/validation/validator.d.ts +33 -0
  241. package/dist/core/validation/validator.js +418 -0
  242. package/dist/core/view.d.ts +8 -0
  243. package/dist/core/view.js +169 -0
  244. package/dist/core/workspace/foundation.d.ts +79 -0
  245. package/dist/core/workspace/foundation.js +367 -0
  246. package/dist/core/workspace/index.d.ts +5 -0
  247. package/dist/core/workspace/index.js +5 -0
  248. package/dist/core/workspace/link-input.d.ts +9 -0
  249. package/dist/core/workspace/link-input.js +32 -0
  250. package/dist/core/workspace/open-surface.d.ts +24 -0
  251. package/dist/core/workspace/open-surface.js +137 -0
  252. package/dist/core/workspace/openers.d.ts +21 -0
  253. package/dist/core/workspace/openers.js +119 -0
  254. package/dist/index.d.ts +3 -0
  255. package/dist/index.js +3 -0
  256. package/dist/prompts/searchable-multi-select.d.ts +28 -0
  257. package/dist/prompts/searchable-multi-select.js +159 -0
  258. package/dist/ui/ascii-patterns.d.ts +25 -0
  259. package/dist/ui/ascii-patterns.js +140 -0
  260. package/dist/ui/welcome-screen.d.ts +10 -0
  261. package/dist/ui/welcome-screen.js +144 -0
  262. package/dist/utils/change-metadata.d.ts +51 -0
  263. package/dist/utils/change-metadata.js +147 -0
  264. package/dist/utils/change-utils.d.ts +62 -0
  265. package/dist/utils/change-utils.js +122 -0
  266. package/dist/utils/command-references.d.ts +18 -0
  267. package/dist/utils/command-references.js +20 -0
  268. package/dist/utils/file-system.d.ts +41 -0
  269. package/dist/utils/file-system.js +301 -0
  270. package/dist/utils/index.d.ts +6 -0
  271. package/dist/utils/index.js +9 -0
  272. package/dist/utils/interactive.d.ts +18 -0
  273. package/dist/utils/interactive.js +21 -0
  274. package/dist/utils/item-discovery.d.ts +4 -0
  275. package/dist/utils/item-discovery.js +73 -0
  276. package/dist/utils/match.d.ts +3 -0
  277. package/dist/utils/match.js +22 -0
  278. package/dist/utils/shell-detection.d.ts +20 -0
  279. package/dist/utils/shell-detection.js +41 -0
  280. package/dist/utils/task-progress.d.ts +8 -0
  281. package/dist/utils/task-progress.js +36 -0
  282. package/package.json +76 -0
  283. package/schemas/synarcx/schema.yaml +153 -0
  284. package/schemas/synarcx/templates/design.md +19 -0
  285. package/schemas/synarcx/templates/proposal.md +23 -0
  286. package/schemas/synarcx/templates/spec.md +8 -0
  287. package/schemas/synarcx/templates/tasks.md +9 -0
  288. package/scripts/postinstall.js +83 -0
@@ -0,0 +1,596 @@
1
+ /**
2
+ * Common flags used across multiple commands
3
+ */
4
+ const COMMON_FLAGS = {
5
+ json: {
6
+ name: 'json',
7
+ description: 'Output as JSON',
8
+ },
9
+ jsonValidation: {
10
+ name: 'json',
11
+ description: 'Output validation results as JSON',
12
+ },
13
+ strict: {
14
+ name: 'strict',
15
+ description: 'Enable strict validation mode',
16
+ },
17
+ noInteractive: {
18
+ name: 'no-interactive',
19
+ description: 'Disable interactive prompts',
20
+ },
21
+ type: {
22
+ name: 'type',
23
+ description: 'Specify item type when ambiguous',
24
+ takesValue: true,
25
+ values: ['change', 'spec'],
26
+ },
27
+ };
28
+ /**
29
+ * Registry of all synarcx CLI commands with their flags and metadata.
30
+ * This registry is used to generate shell completion scripts.
31
+ */
32
+ export const COMMAND_REGISTRY = [
33
+ {
34
+ name: 'init',
35
+ description: 'Initialize synarcx in your project',
36
+ acceptsPositional: true,
37
+ positionalType: 'path',
38
+ flags: [
39
+ {
40
+ name: 'tools',
41
+ description: 'Configure AI tools non-interactively (e.g., "all", "none", or comma-separated tool IDs)',
42
+ takesValue: true,
43
+ },
44
+ ],
45
+ },
46
+ {
47
+ name: 'update',
48
+ description: 'Update synarcx instruction files',
49
+ acceptsPositional: true,
50
+ positionalType: 'path',
51
+ flags: [],
52
+ },
53
+ {
54
+ name: 'list',
55
+ description: 'List items (changes by default, or specs with --specs)',
56
+ flags: [
57
+ {
58
+ name: 'specs',
59
+ description: 'List specs instead of changes',
60
+ },
61
+ {
62
+ name: 'changes',
63
+ description: 'List changes explicitly (default)',
64
+ },
65
+ ],
66
+ },
67
+ {
68
+ name: 'view',
69
+ description: 'Display an interactive dashboard of specs and changes',
70
+ flags: [],
71
+ },
72
+ {
73
+ name: 'validate',
74
+ description: 'Validate changes and specs',
75
+ acceptsPositional: true,
76
+ positionalType: 'change-or-spec-id',
77
+ flags: [
78
+ {
79
+ name: 'all',
80
+ description: 'Validate all changes and specs',
81
+ },
82
+ {
83
+ name: 'changes',
84
+ description: 'Validate all changes',
85
+ },
86
+ {
87
+ name: 'specs',
88
+ description: 'Validate all specs',
89
+ },
90
+ COMMON_FLAGS.type,
91
+ COMMON_FLAGS.strict,
92
+ COMMON_FLAGS.jsonValidation,
93
+ {
94
+ name: 'concurrency',
95
+ description: 'Max concurrent validations (defaults to env SYNARCX_CONCURRENCY or 6)',
96
+ takesValue: true,
97
+ },
98
+ COMMON_FLAGS.noInteractive,
99
+ ],
100
+ },
101
+ {
102
+ name: 'show',
103
+ description: 'Show a change or spec',
104
+ acceptsPositional: true,
105
+ positionalType: 'change-or-spec-id',
106
+ flags: [
107
+ COMMON_FLAGS.json,
108
+ COMMON_FLAGS.type,
109
+ COMMON_FLAGS.noInteractive,
110
+ {
111
+ name: 'deltas-only',
112
+ description: 'Show only deltas (JSON only, change-specific)',
113
+ },
114
+ {
115
+ name: 'requirements-only',
116
+ description: 'Alias for --deltas-only (deprecated, change-specific)',
117
+ },
118
+ {
119
+ name: 'requirements',
120
+ description: 'Show only requirements, exclude scenarios (JSON only, spec-specific)',
121
+ },
122
+ {
123
+ name: 'no-scenarios',
124
+ description: 'Exclude scenario content (JSON only, spec-specific)',
125
+ },
126
+ {
127
+ name: 'requirement',
128
+ short: 'r',
129
+ description: 'Show specific requirement by ID (JSON only, spec-specific)',
130
+ takesValue: true,
131
+ },
132
+ ],
133
+ },
134
+ {
135
+ name: 'archive',
136
+ description: 'Archive a completed change and update main specs',
137
+ acceptsPositional: true,
138
+ positionalType: 'change-id',
139
+ flags: [
140
+ {
141
+ name: 'yes',
142
+ short: 'y',
143
+ description: 'Skip confirmation prompts',
144
+ },
145
+ {
146
+ name: 'skip-specs',
147
+ description: 'Skip spec update operations',
148
+ },
149
+ {
150
+ name: 'no-validate',
151
+ description: 'Skip validation (not recommended)',
152
+ },
153
+ ],
154
+ },
155
+ {
156
+ name: 'workspace',
157
+ description: 'Set up and inspect coordination workspaces',
158
+ flags: [],
159
+ subcommands: [
160
+ {
161
+ name: 'setup',
162
+ description: 'Set up a workspace and link existing repos or folders',
163
+ flags: [
164
+ {
165
+ name: 'name',
166
+ description: 'Workspace name',
167
+ takesValue: true,
168
+ },
169
+ {
170
+ name: 'link',
171
+ description: 'Repo or folder link. Use <path> or <name>=<path>',
172
+ takesValue: true,
173
+ },
174
+ {
175
+ name: 'opener',
176
+ description: 'Preferred opener: codex, claude, github-copilot, or editor',
177
+ takesValue: true,
178
+ values: ['codex', 'claude', 'github-copilot', 'editor'],
179
+ },
180
+ COMMON_FLAGS.json,
181
+ COMMON_FLAGS.noInteractive,
182
+ ],
183
+ },
184
+ {
185
+ name: 'list',
186
+ description: 'List known synarcx workspaces',
187
+ flags: [
188
+ COMMON_FLAGS.json,
189
+ ],
190
+ },
191
+ {
192
+ name: 'ls',
193
+ description: 'List known synarcx workspaces',
194
+ flags: [
195
+ COMMON_FLAGS.json,
196
+ ],
197
+ },
198
+ {
199
+ name: 'link',
200
+ description: 'Link an existing repo or folder to a workspace',
201
+ acceptsPositional: true,
202
+ positionals: [
203
+ {
204
+ name: 'name-or-path',
205
+ type: 'path',
206
+ optional: true,
207
+ },
208
+ {
209
+ name: 'path',
210
+ type: 'path',
211
+ },
212
+ ],
213
+ flags: [
214
+ {
215
+ name: 'workspace',
216
+ description: 'Workspace name from the local workspace registry',
217
+ takesValue: true,
218
+ },
219
+ COMMON_FLAGS.json,
220
+ COMMON_FLAGS.noInteractive,
221
+ ],
222
+ },
223
+ {
224
+ name: 'relink',
225
+ description: 'Update the local path for an existing workspace link',
226
+ acceptsPositional: true,
227
+ positionals: [
228
+ {
229
+ name: 'name',
230
+ },
231
+ {
232
+ name: 'path',
233
+ type: 'path',
234
+ },
235
+ ],
236
+ flags: [
237
+ {
238
+ name: 'workspace',
239
+ description: 'Workspace name from the local workspace registry',
240
+ takesValue: true,
241
+ },
242
+ COMMON_FLAGS.json,
243
+ COMMON_FLAGS.noInteractive,
244
+ ],
245
+ },
246
+ {
247
+ name: 'doctor',
248
+ description: 'Check what a workspace can resolve on this machine',
249
+ flags: [
250
+ {
251
+ name: 'workspace',
252
+ description: 'Workspace name from the local workspace registry',
253
+ takesValue: true,
254
+ },
255
+ COMMON_FLAGS.json,
256
+ COMMON_FLAGS.noInteractive,
257
+ ],
258
+ },
259
+ {
260
+ name: 'open',
261
+ description: 'Open a workspace in an agent or VS Code editor',
262
+ acceptsPositional: true,
263
+ positionals: [
264
+ {
265
+ name: 'name',
266
+ optional: true,
267
+ },
268
+ ],
269
+ flags: [
270
+ {
271
+ name: 'workspace',
272
+ description: 'Workspace name from the local workspace registry',
273
+ takesValue: true,
274
+ },
275
+ {
276
+ name: 'agent',
277
+ description: 'Use an agent for this session: codex, claude, or github-copilot',
278
+ takesValue: true,
279
+ values: ['codex', 'claude', 'github-copilot'],
280
+ },
281
+ {
282
+ name: 'editor',
283
+ description: 'Open the workspace in VS Code editor mode',
284
+ },
285
+ COMMON_FLAGS.noInteractive,
286
+ ],
287
+ },
288
+ ],
289
+ },
290
+ {
291
+ name: 'feedback',
292
+ description: 'Submit feedback',
293
+ acceptsPositional: true,
294
+ flags: [
295
+ {
296
+ name: 'body',
297
+ description: 'Detailed description for the feedback',
298
+ takesValue: true,
299
+ },
300
+ ],
301
+ },
302
+ {
303
+ name: 'change',
304
+ description: 'Manage synarcx change proposals (deprecated)',
305
+ flags: [],
306
+ subcommands: [
307
+ {
308
+ name: 'show',
309
+ description: 'Show a change proposal',
310
+ acceptsPositional: true,
311
+ positionalType: 'change-id',
312
+ flags: [
313
+ COMMON_FLAGS.json,
314
+ {
315
+ name: 'deltas-only',
316
+ description: 'Show only deltas (JSON only)',
317
+ },
318
+ {
319
+ name: 'requirements-only',
320
+ description: 'Alias for --deltas-only (deprecated)',
321
+ },
322
+ COMMON_FLAGS.noInteractive,
323
+ ],
324
+ },
325
+ {
326
+ name: 'list',
327
+ description: 'List all active changes (deprecated)',
328
+ flags: [
329
+ COMMON_FLAGS.json,
330
+ {
331
+ name: 'long',
332
+ description: 'Show id and title with counts',
333
+ },
334
+ ],
335
+ },
336
+ {
337
+ name: 'validate',
338
+ description: 'Validate a change proposal',
339
+ acceptsPositional: true,
340
+ positionalType: 'change-id',
341
+ flags: [
342
+ COMMON_FLAGS.strict,
343
+ COMMON_FLAGS.jsonValidation,
344
+ COMMON_FLAGS.noInteractive,
345
+ ],
346
+ },
347
+ ],
348
+ },
349
+ {
350
+ name: 'spec',
351
+ description: 'Manage synarcx specifications',
352
+ flags: [],
353
+ subcommands: [
354
+ {
355
+ name: 'show',
356
+ description: 'Show a specification',
357
+ acceptsPositional: true,
358
+ positionalType: 'spec-id',
359
+ flags: [
360
+ COMMON_FLAGS.json,
361
+ {
362
+ name: 'requirements',
363
+ description: 'Show only requirements, exclude scenarios (JSON only)',
364
+ },
365
+ {
366
+ name: 'no-scenarios',
367
+ description: 'Exclude scenario content (JSON only)',
368
+ },
369
+ {
370
+ name: 'requirement',
371
+ short: 'r',
372
+ description: 'Show specific requirement by ID (JSON only)',
373
+ takesValue: true,
374
+ },
375
+ COMMON_FLAGS.noInteractive,
376
+ ],
377
+ },
378
+ {
379
+ name: 'list',
380
+ description: 'List all specifications',
381
+ flags: [
382
+ COMMON_FLAGS.json,
383
+ {
384
+ name: 'long',
385
+ description: 'Show id and title with counts',
386
+ },
387
+ ],
388
+ },
389
+ {
390
+ name: 'validate',
391
+ description: 'Validate a specification',
392
+ acceptsPositional: true,
393
+ positionalType: 'spec-id',
394
+ flags: [
395
+ COMMON_FLAGS.strict,
396
+ COMMON_FLAGS.jsonValidation,
397
+ COMMON_FLAGS.noInteractive,
398
+ ],
399
+ },
400
+ ],
401
+ },
402
+ {
403
+ name: 'completion',
404
+ description: 'Manage shell completions for synarcx CLI',
405
+ flags: [],
406
+ subcommands: [
407
+ {
408
+ name: 'generate',
409
+ description: 'Generate completion script for a shell (outputs to stdout)',
410
+ acceptsPositional: true,
411
+ positionalType: 'shell',
412
+ flags: [],
413
+ },
414
+ {
415
+ name: 'install',
416
+ description: 'Install completion script for a shell',
417
+ acceptsPositional: true,
418
+ positionalType: 'shell',
419
+ flags: [
420
+ {
421
+ name: 'verbose',
422
+ description: 'Show detailed installation output',
423
+ },
424
+ ],
425
+ },
426
+ {
427
+ name: 'uninstall',
428
+ description: 'Uninstall completion script for a shell',
429
+ acceptsPositional: true,
430
+ positionalType: 'shell',
431
+ flags: [
432
+ {
433
+ name: 'yes',
434
+ short: 'y',
435
+ description: 'Skip confirmation prompts',
436
+ },
437
+ ],
438
+ },
439
+ ],
440
+ },
441
+ {
442
+ name: 'config',
443
+ description: 'View and modify global synarcx configuration',
444
+ flags: [
445
+ {
446
+ name: 'scope',
447
+ description: 'Config scope (only "global" supported currently)',
448
+ takesValue: true,
449
+ values: ['global'],
450
+ },
451
+ ],
452
+ subcommands: [
453
+ {
454
+ name: 'path',
455
+ description: 'Show config file location',
456
+ flags: [],
457
+ },
458
+ {
459
+ name: 'list',
460
+ description: 'Show all current settings',
461
+ flags: [
462
+ COMMON_FLAGS.json,
463
+ ],
464
+ },
465
+ {
466
+ name: 'get',
467
+ description: 'Get a specific value (raw, scriptable)',
468
+ acceptsPositional: true,
469
+ flags: [],
470
+ },
471
+ {
472
+ name: 'set',
473
+ description: 'Set a value (auto-coerce types)',
474
+ acceptsPositional: true,
475
+ flags: [
476
+ {
477
+ name: 'string',
478
+ description: 'Force value to be stored as string',
479
+ },
480
+ {
481
+ name: 'allow-unknown',
482
+ description: 'Allow setting unknown keys',
483
+ },
484
+ ],
485
+ },
486
+ {
487
+ name: 'unset',
488
+ description: 'Remove a key (revert to default)',
489
+ acceptsPositional: true,
490
+ flags: [],
491
+ },
492
+ {
493
+ name: 'reset',
494
+ description: 'Reset configuration to defaults',
495
+ flags: [
496
+ {
497
+ name: 'all',
498
+ description: 'Reset all configuration (required)',
499
+ },
500
+ {
501
+ name: 'yes',
502
+ short: 'y',
503
+ description: 'Skip confirmation prompts',
504
+ },
505
+ ],
506
+ },
507
+ {
508
+ name: 'edit',
509
+ description: 'Open config in $EDITOR',
510
+ flags: [],
511
+ },
512
+ {
513
+ name: 'profile',
514
+ description: 'Configure workflow profile (interactive picker or preset shortcut)',
515
+ flags: [],
516
+ },
517
+ ],
518
+ },
519
+ {
520
+ name: 'schema',
521
+ description: 'Manage workflow schemas',
522
+ flags: [],
523
+ subcommands: [
524
+ {
525
+ name: 'which',
526
+ description: 'Show where a schema resolves from',
527
+ acceptsPositional: true,
528
+ positionalType: 'schema-name',
529
+ flags: [
530
+ COMMON_FLAGS.json,
531
+ {
532
+ name: 'all',
533
+ description: 'List all schemas with their resolution sources',
534
+ },
535
+ ],
536
+ },
537
+ {
538
+ name: 'validate',
539
+ description: 'Validate a schema structure and templates',
540
+ acceptsPositional: true,
541
+ positionalType: 'schema-name',
542
+ flags: [
543
+ COMMON_FLAGS.json,
544
+ {
545
+ name: 'verbose',
546
+ description: 'Show detailed validation steps',
547
+ },
548
+ ],
549
+ },
550
+ {
551
+ name: 'fork',
552
+ description: 'Copy an existing schema to project for customization',
553
+ acceptsPositional: true,
554
+ positionalType: 'schema-name',
555
+ flags: [
556
+ COMMON_FLAGS.json,
557
+ {
558
+ name: 'force',
559
+ description: 'Overwrite existing destination',
560
+ },
561
+ ],
562
+ },
563
+ {
564
+ name: 'init',
565
+ description: 'Create a new project-local schema',
566
+ acceptsPositional: true,
567
+ flags: [
568
+ COMMON_FLAGS.json,
569
+ {
570
+ name: 'description',
571
+ description: 'Schema description',
572
+ takesValue: true,
573
+ },
574
+ {
575
+ name: 'artifacts',
576
+ description: 'Comma-separated artifact IDs',
577
+ takesValue: true,
578
+ },
579
+ {
580
+ name: 'default',
581
+ description: 'Set as project default schema',
582
+ },
583
+ {
584
+ name: 'no-default',
585
+ description: 'Do not prompt to set as default',
586
+ },
587
+ {
588
+ name: 'force',
589
+ description: 'Overwrite existing schema',
590
+ },
591
+ ],
592
+ },
593
+ ],
594
+ },
595
+ ];
596
+ //# sourceMappingURL=command-registry.js.map
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Provides dynamic completion suggestions for synarcx items (changes and specs).
3
+ * Implements a 2-second cache to avoid excessive file system operations during
4
+ * tab completion.
5
+ */
6
+ export declare class CompletionProvider {
7
+ private readonly cacheTTLMs;
8
+ private readonly projectRoot;
9
+ private readonly cacheTTL;
10
+ private changeCache;
11
+ private specCache;
12
+ private schemaCache;
13
+ /**
14
+ * Creates a new completion provider
15
+ *
16
+ * @param cacheTTLMs - Cache time-to-live in milliseconds (default: 2000ms)
17
+ * @param projectRoot - Project root directory (default: process.cwd())
18
+ */
19
+ constructor(cacheTTLMs?: number, projectRoot?: string);
20
+ /**
21
+ * Get all active change IDs for completion
22
+ *
23
+ * @returns Array of change IDs
24
+ */
25
+ getChangeIds(): Promise<string[]>;
26
+ /**
27
+ * Get all spec IDs for completion
28
+ *
29
+ * @returns Array of spec IDs
30
+ */
31
+ getSpecIds(): Promise<string[]>;
32
+ /**
33
+ * Get all schema names for completion
34
+ *
35
+ * @returns Array of schema names
36
+ */
37
+ getSchemaNames(): Promise<string[]>;
38
+ /**
39
+ * Get both change and spec IDs for completion
40
+ *
41
+ * @returns Object with changeIds and specIds arrays
42
+ */
43
+ getAllIds(): Promise<{
44
+ changeIds: string[];
45
+ specIds: string[];
46
+ }>;
47
+ /**
48
+ * Clear all cached data
49
+ */
50
+ clearCache(): void;
51
+ /**
52
+ * Get cache statistics for debugging
53
+ *
54
+ * @returns Cache status information
55
+ */
56
+ getCacheStats(): {
57
+ changeCache: {
58
+ valid: boolean;
59
+ age?: number;
60
+ };
61
+ specCache: {
62
+ valid: boolean;
63
+ age?: number;
64
+ };
65
+ schemaCache: {
66
+ valid: boolean;
67
+ age?: number;
68
+ };
69
+ };
70
+ }
71
+ //# sourceMappingURL=completion-provider.d.ts.map