@oss-autopilot/core 3.2.0 → 3.3.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 (55) hide show
  1. package/dist/cli-registry.js +33 -3
  2. package/dist/cli.bundle.cjs +96 -93
  3. package/dist/commands/check-integration.js +8 -8
  4. package/dist/commands/comments.js +3 -0
  5. package/dist/commands/config.js +14 -7
  6. package/dist/commands/daily-render.js +10 -5
  7. package/dist/commands/daily.js +6 -1
  8. package/dist/commands/dashboard-lifecycle.js +1 -1
  9. package/dist/commands/dashboard-process.js +4 -4
  10. package/dist/commands/dashboard-server.js +7 -6
  11. package/dist/commands/dashboard.js +2 -2
  12. package/dist/commands/detect-formatters.js +3 -3
  13. package/dist/commands/doctor.js +5 -5
  14. package/dist/commands/guidelines.js +15 -3
  15. package/dist/commands/list-move-tier.js +5 -5
  16. package/dist/commands/local-repos.js +9 -9
  17. package/dist/commands/parse-list.js +10 -10
  18. package/dist/commands/scout-bridge.js +2 -2
  19. package/dist/commands/setup.js +24 -13
  20. package/dist/commands/skip-add.js +6 -3
  21. package/dist/commands/skip-file-parser.js +3 -3
  22. package/dist/commands/startup.js +11 -8
  23. package/dist/commands/state-cmd.js +1 -1
  24. package/dist/commands/status.js +7 -0
  25. package/dist/commands/validation.js +3 -3
  26. package/dist/commands/vet-list.js +12 -8
  27. package/dist/commands/vet.js +1 -2
  28. package/dist/core/__fixtures__/prompt-injection-payloads.d.ts +22 -0
  29. package/dist/core/__fixtures__/prompt-injection-payloads.js +109 -0
  30. package/dist/core/anti-llm-policy.js +5 -5
  31. package/dist/core/auth.js +5 -5
  32. package/dist/core/daily-logic.js +8 -4
  33. package/dist/core/dates.js +3 -3
  34. package/dist/core/errors.d.ts +29 -0
  35. package/dist/core/errors.js +63 -0
  36. package/dist/core/formatter-detection.js +9 -9
  37. package/dist/core/gist-state-store.d.ts +18 -2
  38. package/dist/core/gist-state-store.js +73 -13
  39. package/dist/core/guidelines-store.js +2 -2
  40. package/dist/core/http-cache.js +6 -6
  41. package/dist/core/index.d.ts +1 -0
  42. package/dist/core/index.js +1 -0
  43. package/dist/core/issue-conversation.js +3 -1
  44. package/dist/core/paths.js +4 -4
  45. package/dist/core/pr-monitor.js +1 -2
  46. package/dist/core/pr-template.js +1 -1
  47. package/dist/core/state-persistence.js +7 -7
  48. package/dist/core/state.d.ts +27 -0
  49. package/dist/core/state.js +66 -13
  50. package/dist/core/untrusted-content.d.ts +48 -0
  51. package/dist/core/untrusted-content.js +106 -0
  52. package/dist/core/urls.js +2 -2
  53. package/dist/formatters/json.d.ts +53 -3
  54. package/dist/formatters/json.js +49 -14
  55. package/package.json +1 -1
@@ -69,6 +69,36 @@ function printRepos(repos) {
69
69
  }
70
70
  }
71
71
  export const commands = [
72
+ // ── Manifest (#1190) ───────────────────────────────────────────────────
73
+ // Lets the plugin's session-start hook verify CLI/plugin contract drift —
74
+ // it diffs the registered commands against `.claude-plugin/expected-cli-contract.json`
75
+ // and warns when the markdown layer references commands the CLI no longer
76
+ // exposes. Local-only: no GitHub access needed.
77
+ {
78
+ name: 'manifest',
79
+ localOnly: true,
80
+ register(program) {
81
+ program
82
+ .command('manifest')
83
+ .description('Print the CLI contract (registered commands + version) for plugin/MCP introspection (#1190)')
84
+ .option('--json', 'Output as JSON')
85
+ .action(async (options) => {
86
+ const { ManifestOutputSchema } = await import('./formatters/json.js');
87
+ await executeAction(options, async () => {
88
+ const { getCLIVersion } = await import('./core/index.js');
89
+ return {
90
+ schemaVersion: 1,
91
+ cliVersion: getCLIVersion(),
92
+ commands: commands
93
+ .map((c) => ({ name: c.name, localOnly: !!c.localOnly }))
94
+ .sort((a, b) => a.name.localeCompare(b.name)),
95
+ };
96
+ }, (data) => {
97
+ console.log(`oss-autopilot v${data.cliVersion} (${data.commands.length} commands)`);
98
+ }, ManifestOutputSchema);
99
+ });
100
+ },
101
+ },
72
102
  // ── Daily ──────────────────────────────────────────────────────────────
73
103
  {
74
104
  name: 'daily',
@@ -473,7 +503,7 @@ export const commands = [
473
503
  for await (const chunk of process.stdin) {
474
504
  chunks.push(chunk);
475
505
  }
476
- message = Buffer.concat(chunks).toString('utf-8').trim();
506
+ message = Buffer.concat(chunks).toString('utf8').trim();
477
507
  }
478
508
  else {
479
509
  message = messageParts.join(' ');
@@ -663,7 +693,7 @@ export const commands = [
663
693
  .action(async (options) => {
664
694
  try {
665
695
  const port = parseInt(options.port, 10);
666
- if (isNaN(port) || port < 1 || port > 65535) {
696
+ if (isNaN(port) || port < 1 || port > 65_535) {
667
697
  console.error(`Invalid port number: "${options.port}". Must be an integer between 1 and 65535.`);
668
698
  process.exit(1);
669
699
  }
@@ -688,7 +718,7 @@ export const commands = [
688
718
  .action(async (filePath, options) => {
689
719
  const { ParseIssueListOutputSchema } = await import('./formatters/json.js');
690
720
  await executeAction(options, async () => (await import('./commands/parse-list.js')).runParseList({ filePath }), async (data) => {
691
- const path = await import('path');
721
+ const path = await import('node:path');
692
722
  const resolvedPath = path.resolve(filePath);
693
723
  console.log(`\n\ud83d\udccb Issue List: ${resolvedPath}\n`);
694
724
  console.log(`Available: ${data.availableCount} | Completed: ${data.completedCount}\n`);