infernoflow 0.35.9 → 0.36.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.
- package/dist/bin/infernoflow.mjs +1 -318
- package/package.json +1 -1
package/dist/bin/infernoflow.mjs
CHANGED
|
@@ -196,325 +196,8 @@ const HELP = `
|
|
|
196
196
|
${cyan("demo")} Interactive walkthrough ${gray("(5 minutes)")}
|
|
197
197
|
${cyan("doctor")} Diagnose your setup
|
|
198
198
|
|
|
199
|
-
${gray("Run")} ${cyan("infernoflow commands")} ${gray("to see all commands.")}
|
|
199
|
+
${gray("Run")} ${cyan("infernoflow commands")} ${gray("to see all 50+ commands.")}
|
|
200
200
|
${gray("Run")} ${cyan("infernoflow <command> --help")} ${gray("for command-specific options.")}
|
|
201
|
-
|
|
202
|
-
${bold("diff options:")}
|
|
203
|
-
--ref <tag|commit> Compare against a specific ref (default: last git tag)
|
|
204
|
-
--summary One-liner count only
|
|
205
|
-
--json Machine-readable output
|
|
206
|
-
|
|
207
|
-
${bold("changelog options:")}
|
|
208
|
-
update Draft ## Unreleased from commits (default sub-command)
|
|
209
|
-
show Print the current ## Unreleased block
|
|
210
|
-
list List commits since last tag
|
|
211
|
-
ai Generate human-readable changelog with AI (Anthropic or Ollama)
|
|
212
|
-
--ref <tag|commit> Use a specific ref instead of last tag
|
|
213
|
-
--version <x.y.z> Version label for the AI-generated entry
|
|
214
|
-
--dry-run Print what would be written without modifying file
|
|
215
|
-
--append Append to existing ## Unreleased instead of replacing
|
|
216
|
-
--json Machine-readable output
|
|
217
|
-
|
|
218
|
-
${bold("publish options:")}
|
|
219
|
-
--bump patch|minor|major Version bump type (default: patch)
|
|
220
|
-
--skip-build Skip the build step
|
|
221
|
-
--skip-tests Skip smoke tests
|
|
222
|
-
--skip-push Commit but don't git push
|
|
223
|
-
--tag Also create a git tag vX.Y.Z
|
|
224
|
-
--dry-run Print all steps without executing
|
|
225
|
-
--yes, -y Non-interactive (skip confirmation prompt)
|
|
226
|
-
|
|
227
|
-
${bold("setup options:")}
|
|
228
|
-
--yes, -y Skip prompts (non-interactive)
|
|
229
|
-
--force, -f Overwrite existing hook files
|
|
230
|
-
|
|
231
|
-
${bold("init options:")}
|
|
232
|
-
--cursor-hooks Also install Cursor hooks (draft → inferno/CONTEXT.draft.md)
|
|
233
|
-
--vscode-copilot-hooks Also install VS Code + Copilot hooks (.github/hooks — Preview)
|
|
234
|
-
--adopt Infer capabilities from an existing codebase
|
|
235
|
-
--lang <name> Override detected language (e.g. ts, js, py)
|
|
236
|
-
--framework <name> Override detected framework (e.g. react, angular, express)
|
|
237
|
-
--project-type <t> Override project type (frontend|backend|fullstack|cli|library)
|
|
238
|
-
--report-json Print inferred adoption report as JSON
|
|
239
|
-
--report-json-only Print JSON report only (no human-readable logs)
|
|
240
|
-
--report-human-only Print only human-readable adoption report (no JSON block)
|
|
241
|
-
--yes, -y Skip prompts and accept inferred/default values
|
|
242
|
-
--force, -f Overwrite existing inferno/ files
|
|
243
|
-
|
|
244
|
-
${bold("install-cursor-hooks options:")}
|
|
245
|
-
--force, -f Overwrite .cursor/hooks.json and hook scripts if they exist
|
|
246
|
-
|
|
247
|
-
${bold("install-vscode-copilot-hooks options:")}
|
|
248
|
-
--force, -f Overwrite .github/hooks/infernoflow-drafts.json and scripts if they exist
|
|
249
|
-
|
|
250
|
-
${bold("context options:")}
|
|
251
|
-
--intent "..." What you plan to build next
|
|
252
|
-
--working "..." What you are building right now
|
|
253
|
-
--decision "..." Record a decision or note
|
|
254
|
-
--show Print context without writing file
|
|
255
|
-
--copy, -c Copy context to clipboard instantly
|
|
256
|
-
--reset Clear all stored state
|
|
257
|
-
--watch Poll git diff every 30s and auto-update CONTEXT.md (living context)
|
|
258
|
-
--interval <secs> Watch poll interval in seconds (default: 30)
|
|
259
|
-
--auto-commit Watch mode: commit CONTEXT.md to git on every change
|
|
260
|
-
--auto-push Watch mode: commit + push CONTEXT.md on every change
|
|
261
|
-
|
|
262
|
-
${bold("generate-skills options:")}
|
|
263
|
-
--cursor Also install rules to .cursor/rules/infernoflow.md
|
|
264
|
-
--force, -f Overwrite existing generated skill files
|
|
265
|
-
|
|
266
|
-
${bold("implement options:")}
|
|
267
|
-
--mode <type> cursor | generic | both (default: both)
|
|
268
|
-
--copy, -c Copy generated prompt(s) to clipboard
|
|
269
|
-
|
|
270
|
-
${bold("run options:")}
|
|
271
|
-
--dry-run Execute full flow without writing files
|
|
272
|
-
--json Emit machine-readable events and result payload
|
|
273
|
-
--no-rollback Keep changes even if validation fails
|
|
274
|
-
--provider <type> auto | agent | local | prompt (default: auto)
|
|
275
|
-
--ide <name> auto | cursor | vscode | windsurf (default: auto)
|
|
276
|
-
|
|
277
|
-
${bold("Typical workflow:")}
|
|
278
|
-
${gray('1. infernoflow context --intent "what I want to build"')}
|
|
279
|
-
${gray("2. [paste inferno/CONTEXT.md into Claude / Cursor / Copilot]")}
|
|
280
|
-
${gray("3. [build the feature]")}
|
|
281
|
-
${gray('4. infernoflow suggest "what I built"')}
|
|
282
|
-
${gray("5. infernoflow check")}
|
|
283
|
-
|
|
284
|
-
${bold("suggest options:")}
|
|
285
|
-
--json Non-interactive: emit prompt as JSON, no readline prompts
|
|
286
|
-
--response <json|@file> Provide AI response directly (use with --json)
|
|
287
|
-
--apply Apply the response changes when using --json --response
|
|
288
|
-
|
|
289
|
-
${bold("version options:")}
|
|
290
|
-
--ref <tag|commit> Compare against a specific ref (default: last git tag)
|
|
291
|
-
--apply Write recommended version bump to package.json
|
|
292
|
-
--json Machine-readable output
|
|
293
|
-
|
|
294
|
-
${bold("pr-comment options:")}
|
|
295
|
-
--pr <number> PR number to comment on (auto-detected in GitHub Actions)
|
|
296
|
-
--repo <owner/repo> GitHub repository (auto-detected in GitHub Actions)
|
|
297
|
-
--token <ghp_...> GitHub token (auto-detected from GITHUB_TOKEN env var)
|
|
298
|
-
--ref <ref> Base ref to diff against (auto-detected from GITHUB_BASE_REF)
|
|
299
|
-
--dry-run Print the comment without posting it
|
|
300
|
-
--json Machine-readable output
|
|
301
|
-
|
|
302
|
-
${bold("cloud sub-commands:")}
|
|
303
|
-
init Generate a project token and configure cloud sync
|
|
304
|
-
push Upload local capability contract to cloud
|
|
305
|
-
pull Download latest contract from cloud (conflict detection)
|
|
306
|
-
status Compare local vs cloud (hashes, capability counts)
|
|
307
|
-
dashboard Print hosted dashboard URL and open in browser
|
|
308
|
-
|
|
309
|
-
${bold("cloud options:")}
|
|
310
|
-
--token <tok> Override token (or set INFERNOFLOW_TOKEN env var)
|
|
311
|
-
--endpoint <url> Override default endpoint (https://cloud.infernoflow.dev)
|
|
312
|
-
--force, -f Overwrite on init; overwrite local on conflicted pull
|
|
313
|
-
--dry-run Print what would happen without sending
|
|
314
|
-
--json Machine-readable output
|
|
315
|
-
|
|
316
|
-
${bold("share options:")}
|
|
317
|
-
--upload Upload to dpaste.com and print a public URL
|
|
318
|
-
--open Open the snapshot in your browser immediately
|
|
319
|
-
--copy Copy HTML to clipboard
|
|
320
|
-
--out <path> Custom output path (default: inferno/share.html)
|
|
321
|
-
--json Machine-readable: { ok, file, url }
|
|
322
|
-
|
|
323
|
-
${bold("watch options:")}
|
|
324
|
-
[dirs...] Directories to watch (default: src/, lib/, app/)
|
|
325
|
-
--interval <secs> Debounce interval in seconds (default: 3)
|
|
326
|
-
--dry-run Print what would run without executing
|
|
327
|
-
--silent No output (for git hook use)
|
|
328
|
-
|
|
329
|
-
${bold("notify options:")}
|
|
330
|
-
--slack <url> Slack incoming webhook URL
|
|
331
|
-
--discord <url> Discord webhook URL
|
|
332
|
-
--on-change Only notify if capabilities actually changed
|
|
333
|
-
--dry-run Print message without sending
|
|
334
|
-
--json Machine-readable result
|
|
335
|
-
|
|
336
|
-
${bold("report options:")}
|
|
337
|
-
--format html|md Output format (default: html)
|
|
338
|
-
--since <period> 7d, 30d, 90d, or YYYY-MM-DD (default: 30d)
|
|
339
|
-
--out <path> Output file path (default: inferno/report.html)
|
|
340
|
-
--open Open HTML report in browser after generating
|
|
341
|
-
--json Machine-readable summary
|
|
342
|
-
|
|
343
|
-
${bold("ci options:")}
|
|
344
|
-
--platform <name> github | gitlab | bitbucket | generic (auto-detected)
|
|
345
|
-
--fail-on <level> error | warning (default: error)
|
|
346
|
-
--json Machine-readable result + exit code
|
|
347
|
-
|
|
348
|
-
${bold("monorepo sub-commands:")}
|
|
349
|
-
init Run infernoflow init --adopt in every package
|
|
350
|
-
list List detected packages with their capability counts
|
|
351
|
-
status Show contract health across all packages
|
|
352
|
-
diff Show capability changes across packages (--package to filter)
|
|
353
|
-
sync Aggregate all contracts into inferno-monorepo.json
|
|
354
|
-
|
|
355
|
-
${bold("monorepo options:")}
|
|
356
|
-
--package <name> Filter to a specific package
|
|
357
|
-
--json Machine-readable output
|
|
358
|
-
|
|
359
|
-
${bold("link sub-commands:")}
|
|
360
|
-
(default) Link a capability to a ticket
|
|
361
|
-
list Show all capability→ticket links
|
|
362
|
-
status Show linked and unlinked capabilities
|
|
363
|
-
remove Remove a link by capability ID
|
|
364
|
-
|
|
365
|
-
${bold("link options:")}
|
|
366
|
-
--capability <id> Capability to link
|
|
367
|
-
--jira <TICKET> Jira ticket ID (e.g. PROJ-123)
|
|
368
|
-
--linear <ID> Linear issue ID
|
|
369
|
-
--github <NUM> GitHub issue number
|
|
370
|
-
--json Machine-readable output
|
|
371
|
-
|
|
372
|
-
${bold("audit options:")}
|
|
373
|
-
--format text|json|html Output format (default: text)
|
|
374
|
-
--out <path> Save to file (default: prints to stdout)
|
|
375
|
-
--fail-on high|medium Exit 1 if unreviewed caps at given severity exist
|
|
376
|
-
--json Machine-readable output
|
|
377
|
-
|
|
378
|
-
${bold("vibe options:")}
|
|
379
|
-
--dir <dirs> Comma-separated directories to watch (default: auto-detected)
|
|
380
|
-
--no-suggest Disable automatic contract sync on file save
|
|
381
|
-
--no-context Disable CONTEXT.md regeneration
|
|
382
|
-
--interval <secs> Debounce seconds between saves (default: 4)
|
|
383
|
-
--port <n> Also run a mini status dashboard on localhost:<n>
|
|
384
|
-
--silent Suppress all terminal output (pure background mode)
|
|
385
|
-
|
|
386
|
-
${bold("adopt options:")}
|
|
387
|
-
--dir <dirs> Source directories to scan (default: src,lib,app,api,routes,controllers)
|
|
388
|
-
--yes, -y Auto-approve all candidates (non-interactive)
|
|
389
|
-
--json Machine-readable output, implies --yes
|
|
390
|
-
|
|
391
|
-
${bold("init --template options:")}
|
|
392
|
-
--template rest-api REST API (Express/Fastify/Hono) starter
|
|
393
|
-
--template nextjs Next.js fullstack app starter
|
|
394
|
-
--template cli CLI tool (Node.js/Python) starter
|
|
395
|
-
--template graphql GraphQL API (Apollo/Pothos) starter
|
|
396
|
-
--template monorepo Monorepo workspace starter
|
|
397
|
-
|
|
398
|
-
${bold("scout options:")}
|
|
399
|
-
--dir <dirs> Comma-separated directories to scan (default: src,lib,app,api,routes)
|
|
400
|
-
--apply Write discovered capabilities to the contract file
|
|
401
|
-
--min-confidence <0-1> Minimum confidence threshold (default: 0.6)
|
|
402
|
-
--json Machine-readable output
|
|
403
|
-
|
|
404
|
-
${bold("export options:")}
|
|
405
|
-
--format openapi|backstage|csv|markdown|json Output format (required)
|
|
406
|
-
--out <path> Output file path (default: project root, auto-named)
|
|
407
|
-
--json Machine-readable summary
|
|
408
|
-
|
|
409
|
-
${bold("snapshot sub-commands:")}
|
|
410
|
-
save <name> Save current contract as a named snapshot
|
|
411
|
-
list List all snapshots
|
|
412
|
-
show <name> Print a snapshot's capabilities
|
|
413
|
-
diff <name1> [<name2>] Diff two snapshots (omit name2 to diff against current)
|
|
414
|
-
restore <name> Overwrite contract with snapshot contents
|
|
415
|
-
delete <name> Delete a snapshot
|
|
416
|
-
|
|
417
|
-
${bold("snapshot options:")}
|
|
418
|
-
--json Machine-readable output
|
|
419
|
-
|
|
420
|
-
${bold("health options:")}
|
|
421
|
-
--fail-below <score> Exit 1 if health score is below this threshold (CI gate)
|
|
422
|
-
--watch Re-run every 30s (live terminal view)
|
|
423
|
-
--interval <secs> Watch interval in seconds (default: 30)
|
|
424
|
-
--json Machine-readable score + breakdown
|
|
425
|
-
|
|
426
|
-
${bold("doctor options:")}
|
|
427
|
-
--fix Auto-fix common issues (installs hooks, runs init, etc.)
|
|
428
|
-
--json Machine-readable list of pass/warn/fail results
|
|
429
|
-
|
|
430
|
-
${bold("coverage options:")}
|
|
431
|
-
--dir <path> Extra directory to scan for test files (repeatable)
|
|
432
|
-
--threshold <0-1> Minimum fuzzy-match score to count a test (default: 0.25)
|
|
433
|
-
--fail-below <pct> Exit 1 if coverage percentage is below this value (CI gate)
|
|
434
|
-
--json Machine-readable coverage breakdown
|
|
435
|
-
|
|
436
|
-
${bold("scan options:")}
|
|
437
|
-
--dir <path> Extra directory to scan (repeatable)
|
|
438
|
-
--capability <id> Scan and enrich a single capability only
|
|
439
|
-
--suggest, -s Show untracked entry points as new capability candidates
|
|
440
|
-
--dry-run Print results without writing files
|
|
441
|
-
--json Machine-readable scan output (includes discovered routes)
|
|
442
|
-
|
|
443
|
-
${bold("graph options:")}
|
|
444
|
-
--cap <id> Show dependency view for a single capability
|
|
445
|
-
--check Exit 1 if breaking dependency changes detected (CI gate)
|
|
446
|
-
--json Machine-readable graph output
|
|
447
|
-
|
|
448
|
-
${bold("stability / freeze / thaw options:")}
|
|
449
|
-
infernoflow stability List all capabilities with their stability level
|
|
450
|
-
infernoflow freeze <id> Mark capability as frozen (AI won't touch it)
|
|
451
|
-
infernoflow freeze <id> --stable Mark as stable (careful, not forbidden)
|
|
452
|
-
infernoflow thaw <id> Reset to experimental (liquid — free to change)
|
|
453
|
-
--json Machine-readable stability list
|
|
454
|
-
|
|
455
|
-
${bold("review options:")}
|
|
456
|
-
--unstaged Review all working-tree changes (not just staged)
|
|
457
|
-
--last Review last commit (git diff HEAD~1)
|
|
458
|
-
--dry-run Print the AI prompt only — no API call made
|
|
459
|
-
--json Machine-readable output (affectedCaps, summary, provider)
|
|
460
|
-
|
|
461
|
-
${bold("why options:")}
|
|
462
|
-
infernoflow why <file> Show capability for a source file
|
|
463
|
-
infernoflow why <functionName> Show capability for a function name
|
|
464
|
-
--function <name> Filter to a specific function when multiple caps match
|
|
465
|
-
--json Machine-readable output
|
|
466
|
-
|
|
467
|
-
${bold("impact options:")}
|
|
468
|
-
infernoflow impact <cap-id> Show blast radius for a capability
|
|
469
|
-
--depth <n> Max transitive depth to traverse (default: 10)
|
|
470
|
-
--check Exit 1 if risk level is HIGH or CRITICAL (CI gate)
|
|
471
|
-
--json Machine-readable output
|
|
472
|
-
|
|
473
|
-
${bold("scaffold options:")}
|
|
474
|
-
infernoflow scaffold <cap-id> Generate a new capability skeleton
|
|
475
|
-
--dir <path> Output directory for the source file (default: auto-detected)
|
|
476
|
-
--lang ts|js|py|go Language override (default: auto-detected from project)
|
|
477
|
-
--description "..." Capability description to embed in the file
|
|
478
|
-
--dry-run Preview what would be generated without writing files
|
|
479
|
-
--json Machine-readable output including generated code
|
|
480
|
-
|
|
481
|
-
${bold("explain options:")}
|
|
482
|
-
infernoflow explain <cap-id> AI narrative: what it does, risk, what to test
|
|
483
|
-
--dry-run Print the AI prompt only — no API call made
|
|
484
|
-
--json Machine-readable output (narrative, stability, scenarios)
|
|
485
|
-
|
|
486
|
-
${bold("test options:")}
|
|
487
|
-
infernoflow test Run all caps that have registered scenarios
|
|
488
|
-
infernoflow test <cap-id> Run scenarios for a specific capability
|
|
489
|
-
infernoflow test --all Run every capability (including those without scenarios)
|
|
490
|
-
--generate Print generated ad-hoc test file without running
|
|
491
|
-
--bail Stop on first failure
|
|
492
|
-
--verbose, -v Show runner output for each scenario
|
|
493
|
-
--json Machine-readable output (passed/failed/skipped counts)
|
|
494
|
-
|
|
495
|
-
${bold("ai options:")}
|
|
496
|
-
infernoflow ai setup Interactive wizard — pick provider, enter API key, verify
|
|
497
|
-
infernoflow ai status Show all providers and which are configured
|
|
498
|
-
infernoflow ai test [provider] Send a test prompt and verify the connection
|
|
499
|
-
infernoflow ai clear <provider> Remove a provider's config from integrations.json
|
|
500
|
-
Supported providers: anthropic openai gemini openrouter ollama
|
|
501
|
-
|
|
502
|
-
${bold("demo options:")}
|
|
503
|
-
infernoflow demo Full interactive walkthrough (sample e-commerce project)
|
|
504
|
-
infernoflow demo --fast Skip pauses — good for CI or screen recording
|
|
505
|
-
infernoflow demo --no-cleanup Keep the temp demo project after the run
|
|
506
|
-
|
|
507
|
-
${bold("Machine output:")}
|
|
508
|
-
${gray("status --json")}
|
|
509
|
-
${gray("check --json")}
|
|
510
|
-
${gray("doc-gate --json")}
|
|
511
|
-
${gray("pr-impact --json")}
|
|
512
|
-
${gray("sync --auto --json")}
|
|
513
|
-
${gray('run "task" --json')}
|
|
514
|
-
${gray('suggest "what changed" --json')}
|
|
515
|
-
${gray('suggest "what changed" --json --response \'{"newCapabilities":[...]}\' --apply')}
|
|
516
|
-
${gray("version --json")}
|
|
517
|
-
${gray("version --apply")}
|
|
518
201
|
`;
|
|
519
202
|
|
|
520
203
|
// ── Silent behavior observation ───────────────────────────────────────────
|
package/package.json
CHANGED