@shrkcrft/inspector 0.1.0-alpha.1 → 0.1.0-alpha.11

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 (148) hide show
  1. package/README.md +1 -1
  2. package/dist/adoption-state.js +1 -1
  3. package/dist/agent-brief.d.ts.map +1 -1
  4. package/dist/agent-brief.js +59 -10
  5. package/dist/agent-task-prep.d.ts.map +1 -1
  6. package/dist/agent-task-prep.js +1 -3
  7. package/dist/ai-readiness.d.ts +84 -9
  8. package/dist/ai-readiness.d.ts.map +1 -1
  9. package/dist/ai-readiness.js +161 -30
  10. package/dist/apply-dispatch-trace.d.ts +1 -2
  11. package/dist/apply-dispatch-trace.d.ts.map +1 -1
  12. package/dist/apply-dispatch-trace.js +0 -9
  13. package/dist/area-explore.d.ts.map +1 -1
  14. package/dist/area-explore.js +1 -5
  15. package/dist/area-map.d.ts +0 -19
  16. package/dist/area-map.d.ts.map +1 -1
  17. package/dist/area-map.js +0 -27
  18. package/dist/ci-permissions-fix.d.ts +1 -1
  19. package/dist/ci-permissions-fix.d.ts.map +1 -1
  20. package/dist/ci-permissions-fix.js +1 -182
  21. package/dist/code-intelligence-doctor.d.ts +21 -0
  22. package/dist/code-intelligence-doctor.d.ts.map +1 -0
  23. package/dist/code-intelligence-doctor.js +965 -0
  24. package/dist/compliance-profiles.js +1 -1
  25. package/dist/construct-adoption-diff.d.ts.map +1 -1
  26. package/dist/construct-adoption-diff.js +2 -1
  27. package/dist/construct-adoption.d.ts.map +1 -1
  28. package/dist/construct-adoption.js +10 -11
  29. package/dist/construct-inference.d.ts.map +1 -1
  30. package/dist/construct-inference.js +2 -1
  31. package/dist/construct-registry.d.ts.map +1 -1
  32. package/dist/construct-registry.js +2 -10
  33. package/dist/contract-template-registry.d.ts.map +1 -1
  34. package/dist/contract-template-registry.js +2 -10
  35. package/dist/convention-registry.d.ts.map +1 -1
  36. package/dist/convention-registry.js +2 -10
  37. package/dist/decision-records.d.ts.map +1 -1
  38. package/dist/decision-records.js +2 -9
  39. package/dist/demo-script.d.ts +0 -1
  40. package/dist/demo-script.d.ts.map +1 -1
  41. package/dist/demo-script.js +0 -43
  42. package/dist/docs-check.js +1 -1
  43. package/dist/drift-baseline.d.ts.map +1 -1
  44. package/dist/drift-baseline.js +5 -2
  45. package/dist/feedback-ingestion.d.ts.map +1 -1
  46. package/dist/feedback-ingestion.js +2 -16
  47. package/dist/git-helpers.d.ts +0 -12
  48. package/dist/git-helpers.d.ts.map +1 -1
  49. package/dist/git-helpers.js +0 -63
  50. package/dist/helper-registry.d.ts +27 -54
  51. package/dist/helper-registry.d.ts.map +1 -1
  52. package/dist/helper-registry.js +16 -517
  53. package/dist/impact-analysis.d.ts.map +1 -1
  54. package/dist/impact-analysis.js +4 -5
  55. package/dist/impact-render.d.ts.map +1 -1
  56. package/dist/impact-render.js +0 -9
  57. package/dist/index.d.ts +2 -3
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +2 -3
  60. package/dist/ingest-drafts.js +8 -4
  61. package/dist/migration-profile-registry.d.ts.map +1 -1
  62. package/dist/migration-profile-registry.js +2 -10
  63. package/dist/monorepo-onboarding.js +2 -2
  64. package/dist/onboarding-drafts.d.ts +0 -14
  65. package/dist/onboarding-drafts.d.ts.map +1 -1
  66. package/dist/onboarding-drafts.js +5 -39
  67. package/dist/onboarding-report.d.ts.map +1 -1
  68. package/dist/onboarding-report.js +5 -1
  69. package/dist/onboarding.d.ts +1 -1
  70. package/dist/onboarding.d.ts.map +1 -1
  71. package/dist/onboarding.js +5 -64
  72. package/dist/ownership.js +2 -10
  73. package/dist/pack-contributions-inventory.d.ts +0 -1
  74. package/dist/pack-contributions-inventory.d.ts.map +1 -1
  75. package/dist/pack-contributions-inventory.js +0 -24
  76. package/dist/pack-helper-registry.d.ts.map +1 -1
  77. package/dist/pack-helper-registry.js +2 -10
  78. package/dist/pack-release-check.d.ts.map +1 -1
  79. package/dist/pack-release-check.js +4 -11
  80. package/dist/pack-signature-status.d.ts.map +1 -1
  81. package/dist/pack-signature-status.js +0 -1
  82. package/dist/pack-symbol-compat.d.ts +4 -17
  83. package/dist/pack-symbol-compat.d.ts.map +1 -1
  84. package/dist/pack-symbol-compat.js +7 -155
  85. package/dist/pack-test-runner.js +2 -10
  86. package/dist/plan-simulation.d.ts.map +1 -1
  87. package/dist/plan-simulation.js +3 -20
  88. package/dist/playbook-registry.d.ts.map +1 -1
  89. package/dist/playbook-registry.js +2 -10
  90. package/dist/policy-engine.d.ts.map +1 -1
  91. package/dist/policy-engine.js +3 -11
  92. package/dist/policy-test.js +3 -11
  93. package/dist/product-coherence.js +5 -5
  94. package/dist/profile-registry.d.ts +0 -1
  95. package/dist/profile-registry.d.ts.map +1 -1
  96. package/dist/profile-registry.js +4 -32
  97. package/dist/quality-baseline.d.ts.map +1 -1
  98. package/dist/quality-baseline.js +3 -1
  99. package/dist/ranker-explainability.d.ts.map +1 -1
  100. package/dist/ranker-explainability.js +3 -9
  101. package/dist/registration-hint-registry.d.ts.map +1 -1
  102. package/dist/registration-hint-registry.js +2 -10
  103. package/dist/release-readiness.js +5 -5
  104. package/dist/reposet.js +1 -1
  105. package/dist/repository-knowledge-model.d.ts +1 -1
  106. package/dist/repository-knowledge-model.d.ts.map +1 -1
  107. package/dist/review-packet-v2.d.ts.map +1 -1
  108. package/dist/review-packet-v2.js +3 -13
  109. package/dist/rule-scaffold.d.ts.map +1 -1
  110. package/dist/rule-scaffold.js +12 -4
  111. package/dist/scaffold-patterns.js +2 -10
  112. package/dist/search-tuning-registry.d.ts.map +1 -1
  113. package/dist/search-tuning-registry.js +2 -10
  114. package/dist/self-config-doctor-v2.d.ts +1 -1
  115. package/dist/self-config-doctor-v2.d.ts.map +1 -1
  116. package/dist/self-config-doctor-v2.js +6 -10
  117. package/dist/self-config-doctor.d.ts.map +1 -1
  118. package/dist/self-config-doctor.js +7 -13
  119. package/dist/sharkcraft-inspector.d.ts.map +1 -1
  120. package/dist/sharkcraft-inspector.js +9 -0
  121. package/dist/start-here.d.ts +1 -1
  122. package/dist/start-here.js +1 -1
  123. package/dist/synthesize-from-onboarding.d.ts +68 -0
  124. package/dist/synthesize-from-onboarding.d.ts.map +1 -0
  125. package/dist/synthesize-from-onboarding.js +508 -0
  126. package/dist/task-packet.d.ts +13 -0
  127. package/dist/task-packet.d.ts.map +1 -1
  128. package/dist/task-packet.js +46 -5
  129. package/dist/task-ranker.d.ts.map +1 -1
  130. package/dist/task-ranker.js +1 -31
  131. package/dist/task-routing-hint-registry.d.ts.map +1 -1
  132. package/dist/task-routing-hint-registry.js +2 -10
  133. package/dist/test-runner.d.ts.map +1 -1
  134. package/dist/test-runner.js +12 -17
  135. package/dist/universal-search.d.ts +0 -1
  136. package/dist/universal-search.d.ts.map +1 -1
  137. package/dist/universal-search.js +0 -12
  138. package/dist/upgrade-advisor.js +1 -1
  139. package/package.json +22 -21
  140. package/dist/onboarding-drafts-merge.d.ts +0 -71
  141. package/dist/onboarding-drafts-merge.d.ts.map +0 -1
  142. package/dist/onboarding-drafts-merge.js +0 -174
  143. package/dist/plugin-lifecycle-profile-registry.d.ts +0 -52
  144. package/dist/plugin-lifecycle-profile-registry.d.ts.map +0 -1
  145. package/dist/plugin-lifecycle-profile-registry.js +0 -202
  146. package/dist/plugin-lifecycle.d.ts +0 -132
  147. package/dist/plugin-lifecycle.d.ts.map +0 -1
  148. package/dist/plugin-lifecycle.js +0 -477
@@ -1 +1 @@
1
- {"version":3,"file":"task-packet.d.ts","sourceRoot":"","sources":["../src/task-packet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-packet.d.ts","sourceRoot":"","sources":["../src/task-packet.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,22 @@ import { buildContext } from '@shrkcrft/context';
2
2
  import { aggregateActionHints, } from '@shrkcrft/knowledge';
3
3
  import { rankAll } from "./task-ranker.js";
4
4
  import { buildProjectOverview, renderOverviewText } from "./project-overview.js";
5
+ /**
6
+ * Per-field caps applied to the packet when `compact: true`.
7
+ * Keeps the JSON small while still covering the highest-signal hits.
8
+ */
9
+ const COMPACT_CAPS = {
10
+ rules: 5,
11
+ paths: 5,
12
+ templates: 3,
13
+ commands: 5,
14
+ mcpTools: 5,
15
+ forbiddenActions: 5,
16
+ verificationCommands: 5,
17
+ safetyNotes: 5,
18
+ relatedTemplates: 5,
19
+ relatedPathConventions: 5,
20
+ };
5
21
  function findPipelinesByTags(pipelines, ...tags) {
6
22
  return pipelines.filter((p) => p.tags?.some((t) => tags.includes(t.toLowerCase())));
7
23
  }
@@ -46,6 +62,7 @@ function pickPipelines(pipelines, task) {
46
62
  */
47
63
  export function buildTaskPacket(inspection, task, options = {}) {
48
64
  const maxTokens = options.maxTokens ?? 3500;
65
+ const compact = options.compact !== false;
49
66
  const overview = buildProjectOverview(inspection.workspace, inspection.config?.projectName);
50
67
  const overviewText = renderOverviewText(overview);
51
68
  const contextResult = buildContext(inspection.knowledgeEntries, {
@@ -55,17 +72,41 @@ export function buildTaskPacket(inspection, task, options = {}) {
55
72
  projectOverview: overviewText,
56
73
  });
57
74
  // ── Deterministic ranker — replaces the old substring search ─────────
58
- const ranking = rankAll(inspection, task, 10);
59
- const relevantRules = ranking.rules.map((r) => r.item);
60
- const relevantPaths = ranking.paths.map((r) => r.item);
61
- const relevantTemplates = ranking.templates.map((r) => r.item);
75
+ // Compact mode requests top-5; full mode requests top-10 (the original).
76
+ const rankN = compact ? 8 : 10;
77
+ const ranking = rankAll(inspection, task, rankN);
78
+ const relevantRules = compact
79
+ ? ranking.rules.slice(0, COMPACT_CAPS.rules).map((r) => r.item)
80
+ : ranking.rules.map((r) => r.item);
81
+ const relevantPaths = compact
82
+ ? ranking.paths.slice(0, COMPACT_CAPS.paths).map((r) => r.item)
83
+ : ranking.paths.map((r) => r.item);
84
+ const relevantTemplates = compact
85
+ ? ranking.templates.slice(0, COMPACT_CAPS.templates).map((r) => r.item)
86
+ : ranking.templates.map((r) => r.item);
62
87
  // Aggregate hints from the *ranked* knowledge so unrelated entries don't
63
88
  // leak into the action-hints surface.
64
89
  const hintCorpus = [
65
90
  ...ranking.rules.slice(0, 8).map((r) => r.item),
66
91
  ...inspection.knowledgeEntries.filter((e) => e.priority === 'critical' || e.priority === 'high'),
67
92
  ];
68
- const actionHints = aggregateActionHints(hintCorpus);
93
+ const actionHintsRaw = aggregateActionHints(hintCorpus);
94
+ // Cap each per-field aggregate when compact. Aggregator already
95
+ // priority-sorts entries, so the top-N kept here is the highest-signal
96
+ // slice of each field. `requiresHumanReview` / `writePolicy` /
97
+ // `preferredFlow` / `contributingEntries` are unchanged.
98
+ const actionHints = compact
99
+ ? {
100
+ ...actionHintsRaw,
101
+ commands: actionHintsRaw.commands.slice(0, COMPACT_CAPS.commands),
102
+ mcpTools: actionHintsRaw.mcpTools.slice(0, COMPACT_CAPS.mcpTools),
103
+ forbiddenActions: actionHintsRaw.forbiddenActions.slice(0, COMPACT_CAPS.forbiddenActions),
104
+ verificationCommands: actionHintsRaw.verificationCommands.slice(0, COMPACT_CAPS.verificationCommands),
105
+ safetyNotes: actionHintsRaw.safetyNotes.slice(0, COMPACT_CAPS.safetyNotes),
106
+ relatedTemplates: actionHintsRaw.relatedTemplates.slice(0, COMPACT_CAPS.relatedTemplates),
107
+ relatedPathConventions: actionHintsRaw.relatedPathConventions.slice(0, COMPACT_CAPS.relatedPathConventions),
108
+ }
109
+ : actionHintsRaw;
69
110
  // Pipelines: prefer ranker output, then verb fallback for context-only.
70
111
  const rankedPipelines = ranking.pipelines.slice(0, 3).map((p) => ({
71
112
  pipelineId: p.item.id,
@@ -1 +1 @@
1
- {"version":3,"file":"task-ranker.d.ts","sourceRoot":"","sources":["../src/task-ranker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAElE;;;;;;;;GAQG;AAEH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAiQD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,eAAe,CAAC,EAAE,CAqBhC;AAGD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,mBAAmB,EAAE,EACzC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAiBpC;AAGD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,eAAe,CAAC,EAAE,CAEhC;AAGD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,mBAAmB,EAAE,EACzC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAkCpC;AAGD,wBAAgB,WAAW,CACzB,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAClC,WAAW,CAAC,OAAO,CAAC,EAAE,CAgCxB;AAGD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;IACtC,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC9C,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC9C,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC;AAED,wBAAgB,OAAO,CACrB,UAAU,EAAE;IACV,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,SAAS,OAAO,EAAE,CAAA;KAAE,CAAC;IACnD,SAAS,EAAE;QAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC3C,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,SAAS,eAAe,EAAE,CAAA;KAAE,CAAC;IACxD,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,SAAS,eAAe,EAAE,CAAA;KAAE,CAAC;CACzD,EACD,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAW,GACjB,cAAc,CAiEhB;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,EAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC7B,KAAK,GAAE,MAAU,GAChB,MAAM,CAKR;AAED,uFAAuF;AACvF,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"task-ranker.d.ts","sourceRoot":"","sources":["../src/task-ranker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAElE;;;;;;;;GAQG;AAEH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAmOD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,eAAe,CAAC,EAAE,CAqBhC;AAGD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,mBAAmB,EAAE,EACzC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAiBpC;AAGD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,eAAe,CAAC,EAAE,CAEhC;AAGD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,mBAAmB,EAAE,EACzC,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAkCpC;AAGD,wBAAgB,WAAW,CACzB,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAClC,WAAW,CAAC,OAAO,CAAC,EAAE,CAgCxB;AAGD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;IACtC,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC9C,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;IAC9C,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;CACjC;AAED,wBAAgB,OAAO,CACrB,UAAU,EAAE;IACV,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,SAAS,OAAO,EAAE,CAAA;KAAE,CAAC;IACnD,SAAS,EAAE;QAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC3C,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,SAAS,eAAe,EAAE,CAAA;KAAE,CAAC;IACxD,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,SAAS,eAAe,EAAE,CAAA;KAAE,CAAC;CACzD,EACD,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAW,GACjB,cAAc,CAiEhB;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,EAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC7B,KAAK,GAAE,MAAU,GAChB,MAAM,CAKR;AAED,uFAAuF;AACvF,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -29,33 +29,8 @@ const VERB_HINTS = [
29
29
  // ── Domain hints (what *kind of thing* is being worked on) ──────────────
30
30
  // These boost rules/templates/pipelines whose own `appliesWhen` or `tags`
31
31
  // declare the same domain — much higher signal than verb hints alone for
32
- // "create a user profile *plugin*" vs "add pagination *capability*".
32
+ // "create a *service*" vs "add a *utility*".
33
33
  const DOMAIN_HINTS = [
34
- {
35
- token: 'plugin',
36
- appliesWhen: ['create-plugin', 'generate-plugin', 'plugin-dev', 'register-plugin'],
37
- tags: ['plugin'],
38
- },
39
- {
40
- token: 'defaults',
41
- appliesWhen: ['register-defaults', 'create-defaults', 'plugin-defaults'],
42
- tags: ['defaults'],
43
- },
44
- {
45
- token: 'capability',
46
- appliesWhen: ['create-capability', 'generate-capability'],
47
- tags: ['capability'],
48
- },
49
- {
50
- token: 'policy',
51
- appliesWhen: ['create-policy', 'generate-policy'],
52
- tags: ['policy'],
53
- },
54
- {
55
- token: 'adapter',
56
- appliesWhen: ['create-adapter', 'generate-adapter'],
57
- tags: ['adapter'],
58
- },
59
34
  {
60
35
  token: 'service',
61
36
  appliesWhen: ['generate-service'],
@@ -81,11 +56,6 @@ const DOMAIN_HINTS = [
81
56
  appliesWhen: ['generate-route'],
82
57
  tags: ['http', 'routes', 'api'],
83
58
  },
84
- {
85
- token: 'kernel',
86
- appliesWhen: ['create-kernel-service'],
87
- tags: ['kernel'],
88
- },
89
59
  ];
90
60
  function tokenize(s) {
91
61
  return s
@@ -1 +1 @@
1
- {"version":3,"file":"task-routing-hint-registry.d.ts","sourceRoot":"","sources":["../src/task-routing-hint-registry.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,iCAAiC,6CAA6C,CAAC;AAE5F,oBAAY,qBAAqB;IAC/B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AA4BD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAA;CAAE,CAAC,CAoFxG;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAG3C;AAED,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAGjD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC,CA0C7C"}
1
+ {"version":3,"file":"task-routing-hint-registry.d.ts","sourceRoot":"","sources":["../src/task-routing-hint-registry.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,iCAAiC,6CAA6C,CAAC;AAE5F,oBAAY,qBAAqB;IAC/B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AA4BD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAA;CAAE,CAAC,CAoFxG;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAG3C;AAED,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAGjD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC,CA0C7C"}
@@ -1,11 +1,3 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
1
  /**
10
2
  * Task routing hint registry. Pack- and local-contributed task
11
3
  * routing hints bias the recommender output toward project-specific
@@ -15,8 +7,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
15
7
  */
16
8
  import { existsSync } from 'node:fs';
17
9
  import * as nodePath from 'node:path';
18
- import { pathToFileURL } from 'node:url';
19
10
  import { validateTaskRoutingHint, } from '@shrkcrft/plugin-api';
11
+ import { importModuleViaLoader } from '@shrkcrft/core';
20
12
  export const TASK_ROUTING_HINT_REGISTRY_SCHEMA = 'sharkcraft.task-routing-hint-registry/v1';
21
13
  export var TaskRoutingHintSource;
22
14
  (function (TaskRoutingHintSource) {
@@ -25,7 +17,7 @@ export var TaskRoutingHintSource;
25
17
  TaskRoutingHintSource["Fixture"] = "fixture";
26
18
  })(TaskRoutingHintSource || (TaskRoutingHintSource = {}));
27
19
  async function importDefault(file) {
28
- const mod = (await import(__rewriteRelativeImportExtension(pathToFileURL(file).href)));
20
+ const mod = (await importModuleViaLoader(file));
29
21
  if (Array.isArray(mod.default))
30
22
  return mod.default;
31
23
  if (mod.default && typeof mod.default === 'object')
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAI/B;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,eAAe,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC9E,mDAAmD;IACnD,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,+BAA+B;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,IAAI,EACA,UAAU,GACV,MAAM,GACN,UAAU,GACV,kBAAkB,GAClB,sBAAsB,GACtB,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,WAAW,GACX,SAAS,GACT,WAAW,GACX,kBAAkB,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,2BAA2B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,wCAAwC;IACxC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,SAAS,+BAA+B,EAAE,CAAC;CAC1D;AAYD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAkBzB;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAgB/B;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,YAAY,GACjB,kBAAkB,CA2EpB;AAsBD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,qBAAqB,EACjC,IAAI,EAAE,kBAAkB,EACxB,UAAU,CAAC,EAAE,wBAAwB,GACpC,wBAAwB,CA0Q1B;AAuDD;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,qBAAqB,GAChC,OAAO,CAAC,wBAAwB,CAAC,CASnC"}
1
+ {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,16 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
1
  import { existsSync } from 'node:fs';
10
2
  import * as nodePath from 'node:path';
11
- import { pathToFileURL } from 'node:url';
12
3
  import { buildContext } from '@shrkcrft/context';
13
4
  import { buildTaskPacket } from "./task-packet.js";
14
5
  import { rankKnowledgeEntries } from "./task-ranker.js";
15
6
  import { buildProjectOverview, renderOverviewText } from "./project-overview.js";
16
7
  import { HELPERS } from "./helper-registry.js";
8
+ import { importModuleViaLoader } from '@shrkcrft/core';
17
9
  async function importDefaultArray(absPath) {
18
10
  if (!existsSync(absPath))
19
11
  return [];
20
12
  try {
21
- const mod = (await import(__rewriteRelativeImportExtension(pathToFileURL(absPath).href)));
13
+ const mod = (await importModuleViaLoader(absPath));
22
14
  return Array.isArray(mod.default) ? mod.default : [];
23
15
  }
24
16
  catch {
@@ -152,14 +144,17 @@ function buildMissingIncludeSuggestions(id, existsInRegistry, task) {
152
144
  }
153
145
  return [
154
146
  `Entry "${id}" exists but did not make the context for task "${task}".`,
155
- `Try adding domain-aligned appliesWhen values (create-plugin / generate-service / register-defaults / …).`,
156
- `Add task-relevant tags (plugin / capability / adapter / …).`,
147
+ `Try adding domain-aligned appliesWhen values (generate-service / generate-utility / create-pipeline / …).`,
148
+ `Add task-relevant tags (service / utility / route / …).`,
157
149
  `Reference the entry from a preset's includes.knowledgeIds / ruleIds so it ranks higher.`,
158
150
  `Or raise its priority / shorten the title to include task-relevant tokens.`,
159
151
  ];
160
152
  }
161
153
  export function runAgentContractTest(inspection, test, registries) {
162
- const packet = buildTaskPacket(inspection, test.task, { maxTokens: 3500 });
154
+ // Self-tests assert specific rules/templates appear for a task — they
155
+ // test semantics, not packet size. Opt out of the compact cap so the
156
+ // assertions see the full ranking.
157
+ const packet = buildTaskPacket(inspection, test.task, { maxTokens: 3500, compact: false });
163
158
  const actualPipelines = packet.recommendedPipelines.map((p) => p.pipelineId);
164
159
  const missingTemplates = (test.expectedTemplates ?? []).filter((id) => !packet.relevantTemplates.some((t) => t.id === id));
165
160
  const missingRules = (test.expectedRules ?? []).filter((id) => !packet.relevantRules.some((r) => r.id === id));
@@ -227,7 +222,7 @@ export function runAgentContractTest(inspection, test, registries) {
227
222
  suggestions: exists
228
223
  ? [
229
224
  `Template "${id}" exists but the ranker did not place it in the top results.`,
230
- 'Add task-aligned tags/appliesWhen to the template (e.g. tags:["plugin"], appliesWhen:["create-plugin"]).',
225
+ 'Add task-aligned tags/appliesWhen to the template (e.g. tags:["service"], appliesWhen:["generate-service"]).',
231
226
  'Reference the template from a preset that matches the task profile (includes.templateIds).',
232
227
  'Reference it from a pipeline step (`step.references`).',
233
228
  ]
@@ -245,8 +240,8 @@ export function runAgentContractTest(inspection, test, registries) {
245
240
  suggestions: exists
246
241
  ? [
247
242
  `Rule "${id}" exists but the ranker did not surface it for "${test.task}".`,
248
- 'Align its appliesWhen with the domain (e.g. create-plugin / register-defaults / generate-service).',
249
- 'Add domain tags (plugin / capability / adapter / defaults).',
243
+ 'Align its appliesWhen with the domain (e.g. generate-service / generate-utility / create-pipeline).',
244
+ 'Add domain tags (service / utility / route / pipeline).',
250
245
  'Reference it from actionHints.relatedTemplates on a rule that *is* ranking, or include it in a preset.',
251
246
  ]
252
247
  : [
@@ -477,7 +472,7 @@ async function importDefaultIdsArray(absPath) {
477
472
  if (!existsSync(absPath))
478
473
  return [];
479
474
  try {
480
- const mod = (await import(__rewriteRelativeImportExtension(pathToFileURL(absPath).href)));
475
+ const mod = (await importModuleViaLoader(absPath));
481
476
  return Array.isArray(mod.default) ? mod.default : [];
482
477
  }
483
478
  catch {
@@ -17,7 +17,6 @@ export declare enum SearchResultKind {
17
17
  ScaffoldPattern = "scaffold-pattern",
18
18
  ContractTemplate = "contract-template",
19
19
  MigrationProfile = "migration-profile",
20
- PluginLifecycleProfile = "plugin-lifecycle-profile",
21
20
  FeedbackRule = "feedback-rule",
22
21
  TaskRoutingHint = "task-routing-hint",
23
22
  Docs = "docs",
@@ -1 +1 @@
1
- {"version":3,"file":"universal-search.d.ts","sourceRoot":"","sources":["../src/universal-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universal-search.d.ts","sourceRoot":"","sources":["../src/universal-search.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAgC,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGhG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,OAAO,aAAa;IACpB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,eAAe,qBAAqB;IACpC,gBAAgB,sBAAsB;IACtC,gBAAgB,sBAAsB;IACtC,YAAY,kBAAkB;IAC9B,eAAe,sBAAsB;IACrC,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,aAAa,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,OAAO,uBAAuB,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AA+CD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA4NjC;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAmDhF;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CA8BpF"}
@@ -17,7 +17,6 @@ import { buildPackContributionsInventory } from "./pack-contributions-inventory.
17
17
  import { listConventions } from "./convention-registry.js";
18
18
  import { listPackHelpers } from "./pack-helper-registry.js";
19
19
  import { explainTaskRouting } from "./task-routing-hint-registry.js";
20
- import { listPluginLifecycleProfiles } from "./plugin-lifecycle-profile-registry.js";
21
20
  import { uncertaintyReportFromSummary } from "./uncertainty-report.js";
22
21
  import { buildUncertaintySummary } from "./uncertainty.js";
23
22
  import { buildTaskPacket } from "./task-packet.js";
@@ -39,7 +38,6 @@ export var SearchResultKind;
39
38
  SearchResultKind["ScaffoldPattern"] = "scaffold-pattern";
40
39
  SearchResultKind["ContractTemplate"] = "contract-template";
41
40
  SearchResultKind["MigrationProfile"] = "migration-profile";
42
- SearchResultKind["PluginLifecycleProfile"] = "plugin-lifecycle-profile";
43
41
  SearchResultKind["FeedbackRule"] = "feedback-rule";
44
42
  SearchResultKind["TaskRoutingHint"] = "task-routing-hint";
45
43
  SearchResultKind["Docs"] = "docs";
@@ -89,7 +87,6 @@ export async function buildUniversalSearch(inspection, query, options = {}) {
89
87
  const conventions = await listConventions(inspection);
90
88
  const helpers = await listPackHelpers(inspection);
91
89
  const routing = await explainTaskRouting(inspection, q);
92
- const lifecycle = await listPluginLifecycleProfiles(inspection);
93
90
  const knowledgeEntries = inspection.knowledgeEntries;
94
91
  const allHits = [];
95
92
  // Knowledge
@@ -113,13 +110,6 @@ export async function buildUniversalSearch(inspection, query, options = {}) {
113
110
  allHits.push(makeHit(SearchResultKind.Helper, h.helper.id, h.helper.title, h.source === 'pack' ? 'pack' : 'local', h.packageName, s, `shrk helper plan ${h.helper.id}`));
114
111
  }
115
112
  }
116
- // Plugin lifecycle profiles
117
- for (const p of lifecycle) {
118
- const s = score(`${p.profile.id} ${p.profile.title} ${(p.profile.tags ?? []).join(' ')}`, q);
119
- if (s.score > 0) {
120
- allHits.push(makeHit(SearchResultKind.PluginLifecycleProfile, p.profile.id, p.profile.title, p.source === 'pack' ? 'pack' : 'local', p.packageName, s, `shrk plugin lifecycle profile ${p.profile.id}`));
121
- }
122
- }
123
113
  // Pack contributions (catch-all for kinds we didn't iterate above)
124
114
  for (const e of inv.entries) {
125
115
  if (allHits.find((h) => h.id === e.id && String(h.kind) === e.kind))
@@ -140,7 +130,6 @@ export async function buildUniversalSearch(inspection, query, options = {}) {
140
130
  decision: SearchResultKind.Decision,
141
131
  'contract-template': SearchResultKind.ContractTemplate,
142
132
  'migration-profile': SearchResultKind.MigrationProfile,
143
- 'plugin-lifecycle-profile': SearchResultKind.PluginLifecycleProfile,
144
133
  'feedback-rule': SearchResultKind.FeedbackRule,
145
134
  'task-routing-hint': SearchResultKind.TaskRoutingHint,
146
135
  helper: SearchResultKind.Helper,
@@ -184,7 +173,6 @@ export async function buildUniversalSearch(inspection, query, options = {}) {
184
173
  SearchResultKind.Policy,
185
174
  SearchResultKind.ContractTemplate,
186
175
  SearchResultKind.MigrationProfile,
187
- SearchResultKind.PluginLifecycleProfile,
188
176
  SearchResultKind.ScaffoldPattern,
189
177
  SearchResultKind.FeedbackRule,
190
178
  SearchResultKind.TaskRoutingHint,
@@ -60,7 +60,7 @@ function walkSchemas(dir, max) {
60
60
  export function buildUpgradeAdvice(inspection, options = {}) {
61
61
  const findings = [];
62
62
  const detected = walkSchemas(nodePath.join(inspection.projectRoot, '.sharkcraft'), 600);
63
- const fromVersion = options.from ?? '0.1.0-alpha.1';
63
+ const fromVersion = options.from ?? '0.1.0-alpha.2';
64
64
  const toVersion = options.to ?? 'current';
65
65
  // Heuristics: surface known evolving schemas.
66
66
  if (detected['sharkcraft.repository-map/v1']) {
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "@shrkcrft/inspector",
3
- "version": "0.1.0-alpha.1",
3
+ "version": "0.1.0-alpha.11",
4
4
  "description": "SharkCraft inspector: project overview, doctor checks, AI-agent instructions.",
5
5
  "license": "MIT",
6
6
  "author": "SharkCraft contributors",
7
7
  "type": "module",
8
8
  "main": "./dist/index.js",
9
- "types": "./dist/index.d.ts",
9
+ "types": "./dist/index.d.d.ts",
10
10
  "exports": {
11
11
  ".": {
12
12
  "types": "./dist/index.d.ts",
13
+ "bun": "./src/index.ts",
13
14
  "import": "./dist/index.js",
14
15
  "default": "./dist/index.js"
15
16
  }
@@ -21,12 +22,12 @@
21
22
  ],
22
23
  "repository": {
23
24
  "type": "git",
24
- "url": "git+https://github.com/sharkcraft/sharkcraft.git",
25
+ "url": "git+https://github.com/shrkcrft/sharkcraft.git",
25
26
  "directory": "packages/inspector"
26
27
  },
27
- "homepage": "https://github.com/sharkcraft/sharkcraft",
28
+ "homepage": "https://github.com/shrkcrft/sharkcraft",
28
29
  "bugs": {
29
- "url": "https://github.com/sharkcraft/sharkcraft/issues"
30
+ "url": "https://github.com/shrkcrft/sharkcraft/issues"
30
31
  },
31
32
  "keywords": [
32
33
  "sharkcraft",
@@ -41,22 +42,22 @@
41
42
  "typecheck": "tsc --noEmit -p tsconfig.json"
42
43
  },
43
44
  "dependencies": {
44
- "@shrkcrft/core": "^0.1.0-alpha.1",
45
- "@shrkcrft/config": "^0.1.0-alpha.1",
46
- "@shrkcrft/workspace": "^0.1.0-alpha.1",
47
- "@shrkcrft/knowledge": "^0.1.0-alpha.1",
48
- "@shrkcrft/rules": "^0.1.0-alpha.1",
49
- "@shrkcrft/paths": "^0.1.0-alpha.1",
50
- "@shrkcrft/templates": "^0.1.0-alpha.1",
51
- "@shrkcrft/context": "^0.1.0-alpha.1",
52
- "@shrkcrft/pipelines": "^0.1.0-alpha.1",
53
- "@shrkcrft/packs": "^0.1.0-alpha.1",
54
- "@shrkcrft/presets": "^0.1.0-alpha.1",
55
- "@shrkcrft/boundaries": "^0.1.0-alpha.1",
56
- "@shrkcrft/generator": "^0.1.0-alpha.1",
57
- "@shrkcrft/importer": "^0.1.0-alpha.1",
58
- "@shrkcrft/plugin-api": "^0.1.0-alpha.1",
59
- "@shrkcrft/dashboard-api": "^0.1.0-alpha.1",
45
+ "@shrkcrft/core": "^0.1.0-alpha.11",
46
+ "@shrkcrft/config": "^0.1.0-alpha.11",
47
+ "@shrkcrft/workspace": "^0.1.0-alpha.11",
48
+ "@shrkcrft/knowledge": "^0.1.0-alpha.11",
49
+ "@shrkcrft/rules": "^0.1.0-alpha.11",
50
+ "@shrkcrft/paths": "^0.1.0-alpha.11",
51
+ "@shrkcrft/templates": "^0.1.0-alpha.11",
52
+ "@shrkcrft/context": "^0.1.0-alpha.11",
53
+ "@shrkcrft/pipelines": "^0.1.0-alpha.11",
54
+ "@shrkcrft/packs": "^0.1.0-alpha.11",
55
+ "@shrkcrft/presets": "^0.1.0-alpha.11",
56
+ "@shrkcrft/boundaries": "^0.1.0-alpha.11",
57
+ "@shrkcrft/generator": "^0.1.0-alpha.11",
58
+ "@shrkcrft/importer": "^0.1.0-alpha.11",
59
+ "@shrkcrft/plugin-api": "^0.1.0-alpha.11",
60
+ "@shrkcrft/dashboard-api": "^0.1.0-alpha.11",
60
61
  "typescript": "^5.6.0"
61
62
  },
62
63
  "publishConfig": {
@@ -1,71 +0,0 @@
1
- /**
2
- * Three-way merge for onboarding drafts.
3
- *
4
- * When `shrk onboard --write-drafts` re-runs against a project that has
5
- * hand-edited drafts, the safe behaviour is to merge the new proposal
6
- * against the user's current file and the snapshot we wrote last time:
7
- *
8
- * - base : `.sharkcraft/onboarding-drafts-snapshots/<file>` (what we
9
- * wrote last). When absent, the merge degrades to a strict
10
- * "matches proposal → no-op, otherwise conflict" rule.
11
- * - ours : the current `sharkcraft/onboarding/<file>` content.
12
- * - theirs : the freshly rendered proposal we are about to write.
13
- *
14
- * The merge always returns an intended `body`. The caller decides whether
15
- * to write it (e.g. `abortOnConflict` keeps the file unchanged).
16
- */
17
- export declare enum DraftMergeStatus {
18
- /** File did not exist; the proposal was written verbatim. */
19
- Created = "created",
20
- /** Current file already matches the proposal — nothing to do. */
21
- Unchanged = "unchanged",
22
- /** Current file matches the snapshot; the proposal was applied. */
23
- CleanUpdate = "clean-update",
24
- /** Proposal matches the snapshot; the user's edits were kept. */
25
- UserKept = "user-kept",
26
- /** Disjoint single-region edits on both sides; auto-merged. */
27
- AutoMerged = "auto-merged",
28
- /** Both sides changed the same region — conflict markers emitted. */
29
- Conflict = "conflict",
30
- /** Both sides changed but `abortOnConflict` was set — file untouched. */
31
- Aborted = "aborted"
32
- }
33
- export interface IDraftMergeOptions {
34
- /** When true, return status=Aborted and leave the file unchanged on conflict. */
35
- abortOnConflict?: boolean;
36
- /** Header line in the `<<<<<<< ours` marker. Default 'ours'. */
37
- oursLabel?: string;
38
- /** Header line in the `>>>>>>> theirs` marker. Default 'incoming proposal'. */
39
- theirsLabel?: string;
40
- }
41
- export interface IDraftMergeResult {
42
- status: DraftMergeStatus;
43
- /** What should be written. For Aborted, this is the unchanged `ours`. */
44
- body: string;
45
- /** Number of conflict regions in `body` (0 unless status=Conflict). */
46
- conflictRegions: number;
47
- }
48
- /**
49
- * Resolve the snapshot path for a given draft file.
50
- *
51
- * @param projectRoot Absolute repo root.
52
- * @param draftPath Absolute path of the draft file.
53
- */
54
- export declare function snapshotPathFor(projectRoot: string, draftPath: string): string;
55
- export declare function readSnapshot(snapshotPath: string): string | null;
56
- export declare function writeSnapshot(snapshotPath: string, body: string): void;
57
- /**
58
- * Three-way merge a single draft file.
59
- *
60
- * Truth table:
61
- * - !exists(ours) → Created (body = theirs)
62
- * - ours === theirs → Unchanged
63
- * - base === null:
64
- * - ours === theirs → Unchanged
65
- * - otherwise → Conflict (or Aborted)
66
- * - ours === base → CleanUpdate (body = theirs)
67
- * - theirs === base → UserKept (body = ours)
68
- * - otherwise → diff3Lines → AutoMerged | Conflict | Aborted
69
- */
70
- export declare function threeWayMergeDraft(base: string | null, ours: string | null, theirs: string, options?: IDraftMergeOptions): IDraftMergeResult;
71
- //# sourceMappingURL=onboarding-drafts-merge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onboarding-drafts-merge.d.ts","sourceRoot":"","sources":["../src/onboarding-drafts-merge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,oBAAY,gBAAgB;IAC1B,6DAA6D;IAC7D,OAAO,YAAY;IACnB,iEAAiE;IACjE,SAAS,cAAc;IACvB,mEAAmE;IACnE,WAAW,iBAAiB;IAC5B,iEAAiE;IACjE,QAAQ,cAAc;IACtB,+DAA+D;IAC/D,UAAU,gBAAgB;IAC1B,qEAAqE;IACrE,QAAQ,aAAa;IACrB,yEAAyE;IACzE,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,gBAAgB,CAAC;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOhE;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAiBnB"}