mewkit 1.14.1 → 1.15.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 (264) hide show
  1. package/README.md +7 -0
  2. package/dist/commands/capabilities.d.ts +13 -0
  3. package/dist/commands/capabilities.d.ts.map +1 -0
  4. package/dist/commands/capabilities.js +230 -0
  5. package/dist/commands/capabilities.js.map +1 -0
  6. package/dist/commands/context.d.ts +10 -0
  7. package/dist/commands/context.d.ts.map +1 -0
  8. package/dist/commands/context.js +125 -0
  9. package/dist/commands/context.js.map +1 -0
  10. package/dist/commands/doctor.d.ts +27 -0
  11. package/dist/commands/doctor.d.ts.map +1 -1
  12. package/dist/commands/doctor.js +123 -0
  13. package/dist/commands/doctor.js.map +1 -1
  14. package/dist/commands/providers.d.ts +2 -0
  15. package/dist/commands/providers.d.ts.map +1 -1
  16. package/dist/commands/providers.js +77 -0
  17. package/dist/commands/providers.js.map +1 -1
  18. package/dist/commands/task-state.d.ts +13 -0
  19. package/dist/commands/task-state.d.ts.map +1 -0
  20. package/dist/commands/task-state.js +106 -0
  21. package/dist/commands/task-state.js.map +1 -0
  22. package/dist/commands/validate.d.ts +48 -1
  23. package/dist/commands/validate.d.ts.map +1 -1
  24. package/dist/commands/validate.js +97 -24
  25. package/dist/commands/validate.js.map +1 -1
  26. package/dist/core/availability.d.ts +40 -0
  27. package/dist/core/availability.d.ts.map +1 -0
  28. package/dist/core/availability.js +47 -0
  29. package/dist/core/availability.js.map +1 -0
  30. package/dist/core/bootstrap.d.ts +19 -0
  31. package/dist/core/bootstrap.d.ts.map +1 -0
  32. package/dist/core/bootstrap.js +42 -0
  33. package/dist/core/bootstrap.js.map +1 -0
  34. package/dist/core/build-capabilities.d.ts +9 -0
  35. package/dist/core/build-capabilities.d.ts.map +1 -0
  36. package/dist/core/build-capabilities.js +123 -0
  37. package/dist/core/build-capabilities.js.map +1 -0
  38. package/dist/core/build-inventory.d.ts +2 -0
  39. package/dist/core/build-inventory.d.ts.map +1 -1
  40. package/dist/core/build-inventory.js +1 -1
  41. package/dist/core/build-inventory.js.map +1 -1
  42. package/dist/core/capability-authored.d.ts +26 -0
  43. package/dist/core/capability-authored.d.ts.map +1 -0
  44. package/dist/core/capability-authored.js +117 -0
  45. package/dist/core/capability-authored.js.map +1 -0
  46. package/dist/core/capability-snapshot.d.ts +13 -0
  47. package/dist/core/capability-snapshot.d.ts.map +1 -0
  48. package/dist/core/capability-snapshot.js +53 -0
  49. package/dist/core/capability-snapshot.js.map +1 -0
  50. package/dist/core/capability.d.ts +519 -0
  51. package/dist/core/capability.d.ts.map +1 -0
  52. package/dist/core/capability.js +114 -0
  53. package/dist/core/capability.js.map +1 -0
  54. package/dist/core/compute-checksums.d.ts.map +1 -1
  55. package/dist/core/compute-checksums.js +8 -2
  56. package/dist/core/compute-checksums.js.map +1 -1
  57. package/dist/core/consolidation-ledger.d.ts +30 -0
  58. package/dist/core/consolidation-ledger.d.ts.map +1 -0
  59. package/dist/core/consolidation-ledger.js +145 -0
  60. package/dist/core/consolidation-ledger.js.map +1 -0
  61. package/dist/core/generate-capability-view.d.ts +21 -0
  62. package/dist/core/generate-capability-view.d.ts.map +1 -0
  63. package/dist/core/generate-capability-view.js +48 -0
  64. package/dist/core/generate-capability-view.js.map +1 -0
  65. package/dist/core/install-metadata.d.ts +47 -30
  66. package/dist/core/install-metadata.d.ts.map +1 -1
  67. package/dist/core/install-metadata.js +49 -9
  68. package/dist/core/install-metadata.js.map +1 -1
  69. package/dist/core/plugin-manifest.d.ts +16 -16
  70. package/dist/core/provider-adapter.d.ts +28 -0
  71. package/dist/core/provider-adapter.d.ts.map +1 -0
  72. package/dist/core/provider-adapter.js +31 -0
  73. package/dist/core/provider-adapter.js.map +1 -0
  74. package/dist/core/provider-invocation.d.ts +14 -0
  75. package/dist/core/provider-invocation.d.ts.map +1 -0
  76. package/dist/core/provider-invocation.js +56 -0
  77. package/dist/core/provider-invocation.js.map +1 -0
  78. package/dist/core/provider-lifecycle.d.ts +35 -0
  79. package/dist/core/provider-lifecycle.d.ts.map +1 -0
  80. package/dist/core/provider-lifecycle.js +101 -0
  81. package/dist/core/provider-lifecycle.js.map +1 -0
  82. package/dist/core/provider-projection.d.ts +29 -0
  83. package/dist/core/provider-projection.d.ts.map +1 -0
  84. package/dist/core/provider-projection.js +47 -0
  85. package/dist/core/provider-projection.js.map +1 -0
  86. package/dist/core/release-metadata.d.ts +9 -2
  87. package/dist/core/release-metadata.d.ts.map +1 -1
  88. package/dist/core/release-metadata.js +13 -0
  89. package/dist/core/release-metadata.js.map +1 -1
  90. package/dist/core/repo-context-adapter.d.ts +23 -0
  91. package/dist/core/repo-context-adapter.d.ts.map +1 -0
  92. package/dist/core/repo-context-adapter.js +44 -0
  93. package/dist/core/repo-context-adapter.js.map +1 -0
  94. package/dist/core/repo-context.d.ts +147 -0
  95. package/dist/core/repo-context.d.ts.map +1 -0
  96. package/dist/core/repo-context.js +204 -0
  97. package/dist/core/repo-context.js.map +1 -0
  98. package/dist/core/resolve-capabilities.d.ts +70 -0
  99. package/dist/core/resolve-capabilities.d.ts.map +1 -0
  100. package/dist/core/resolve-capabilities.js +124 -0
  101. package/dist/core/resolve-capabilities.js.map +1 -0
  102. package/dist/core/smart-update.d.ts.map +1 -1
  103. package/dist/core/smart-update.js +13 -12
  104. package/dist/core/smart-update.js.map +1 -1
  105. package/dist/core/task-record.d.ts +252 -0
  106. package/dist/core/task-record.d.ts.map +1 -0
  107. package/dist/core/task-record.js +252 -0
  108. package/dist/core/task-record.js.map +1 -0
  109. package/dist/core/validate-capabilities.d.ts +12 -0
  110. package/dist/core/validate-capabilities.d.ts.map +1 -0
  111. package/dist/core/validate-capabilities.js +138 -0
  112. package/dist/core/validate-capabilities.js.map +1 -0
  113. package/dist/index.js +66 -4
  114. package/dist/index.js.map +1 -1
  115. package/dist/migrate/capability-bootstrap-projection.d.ts +11 -0
  116. package/dist/migrate/capability-bootstrap-projection.d.ts.map +1 -0
  117. package/dist/migrate/capability-bootstrap-projection.js +48 -0
  118. package/dist/migrate/capability-bootstrap-projection.js.map +1 -0
  119. package/dist/migrate/migrate-orchestrator.d.ts.map +1 -1
  120. package/dist/migrate/migrate-orchestrator.js +22 -0
  121. package/dist/migrate/migrate-orchestrator.js.map +1 -1
  122. package/dist/migrate/reconcile/portable-registry.d.ts +18 -18
  123. package/dist/orchviz-web/index.js +3 -3
  124. package/package.json +1 -1
  125. package/dist/commands/evolve.d.ts +0 -11
  126. package/dist/commands/evolve.d.ts.map +0 -1
  127. package/dist/commands/evolve.js +0 -63
  128. package/dist/commands/evolve.js.map +0 -1
  129. package/dist/commands/health.d.ts +0 -14
  130. package/dist/commands/health.d.ts.map +0 -1
  131. package/dist/commands/health.js +0 -193
  132. package/dist/commands/health.js.map +0 -1
  133. package/dist/commands/policy.d.ts +0 -8
  134. package/dist/commands/policy.d.ts.map +0 -1
  135. package/dist/commands/policy.js +0 -65
  136. package/dist/commands/policy.js.map +0 -1
  137. package/dist/commands/portability.d.ts +0 -7
  138. package/dist/commands/portability.d.ts.map +0 -1
  139. package/dist/commands/portability.js +0 -50
  140. package/dist/commands/portability.js.map +0 -1
  141. package/dist/commands/reflect.d.ts +0 -14
  142. package/dist/commands/reflect.d.ts.map +0 -1
  143. package/dist/commands/reflect.js +0 -135
  144. package/dist/commands/reflect.js.map +0 -1
  145. package/dist/commands/simulate.d.ts +0 -14
  146. package/dist/commands/simulate.d.ts.map +0 -1
  147. package/dist/commands/simulate.js +0 -86
  148. package/dist/commands/simulate.js.map +0 -1
  149. package/dist/core/event-log.d.ts +0 -44
  150. package/dist/core/event-log.d.ts.map +0 -1
  151. package/dist/core/event-log.js +0 -169
  152. package/dist/core/event-log.js.map +0 -1
  153. package/dist/core/evolution/event-clusters.d.ts +0 -4
  154. package/dist/core/evolution/event-clusters.d.ts.map +0 -1
  155. package/dist/core/evolution/event-clusters.js +0 -82
  156. package/dist/core/evolution/event-clusters.js.map +0 -1
  157. package/dist/core/evolution/recommendation-renderer.d.ts +0 -3
  158. package/dist/core/evolution/recommendation-renderer.d.ts.map +0 -1
  159. package/dist/core/evolution/recommendation-renderer.js +0 -24
  160. package/dist/core/evolution/recommendation-renderer.js.map +0 -1
  161. package/dist/core/evolution/review-failure-clusters.d.ts +0 -10
  162. package/dist/core/evolution/review-failure-clusters.d.ts.map +0 -1
  163. package/dist/core/evolution/review-failure-clusters.js +0 -30
  164. package/dist/core/evolution/review-failure-clusters.js.map +0 -1
  165. package/dist/core/evolution/suggestions.d.ts +0 -24
  166. package/dist/core/evolution/suggestions.d.ts.map +0 -1
  167. package/dist/core/evolution/suggestions.js +0 -11
  168. package/dist/core/evolution/suggestions.js.map +0 -1
  169. package/dist/core/gate-policy.d.ts +0 -20
  170. package/dist/core/gate-policy.d.ts.map +0 -1
  171. package/dist/core/gate-policy.js +0 -64
  172. package/dist/core/gate-policy.js.map +0 -1
  173. package/dist/core/portability-matrix.d.ts +0 -17
  174. package/dist/core/portability-matrix.d.ts.map +0 -1
  175. package/dist/core/portability-matrix.js +0 -31
  176. package/dist/core/portability-matrix.js.map +0 -1
  177. package/dist/core/simulation-runner.d.ts +0 -93
  178. package/dist/core/simulation-runner.d.ts.map +0 -1
  179. package/dist/core/simulation-runner.js +0 -161
  180. package/dist/core/simulation-runner.js.map +0 -1
  181. package/dist/core/usage/usage-analyzer.d.ts +0 -18
  182. package/dist/core/usage/usage-analyzer.d.ts.map +0 -1
  183. package/dist/core/usage/usage-analyzer.js +0 -41
  184. package/dist/core/usage/usage-analyzer.js.map +0 -1
  185. package/dist/memory/archive.d.ts +0 -9
  186. package/dist/memory/archive.d.ts.map +0 -1
  187. package/dist/memory/archive.js +0 -42
  188. package/dist/memory/archive.js.map +0 -1
  189. package/dist/memory/compact.d.ts +0 -9
  190. package/dist/memory/compact.d.ts.map +0 -1
  191. package/dist/memory/compact.js +0 -33
  192. package/dist/memory/compact.js.map +0 -1
  193. package/dist/memory/conflicts.d.ts +0 -8
  194. package/dist/memory/conflicts.d.ts.map +0 -1
  195. package/dist/memory/conflicts.js +0 -28
  196. package/dist/memory/conflicts.js.map +0 -1
  197. package/dist/memory/promote.d.ts +0 -8
  198. package/dist/memory/promote.d.ts.map +0 -1
  199. package/dist/memory/promote.js +0 -10
  200. package/dist/memory/promote.js.map +0 -1
  201. package/dist/memory/store-utils.d.ts +0 -14
  202. package/dist/memory/store-utils.d.ts.map +0 -1
  203. package/dist/memory/store-utils.js +0 -44
  204. package/dist/memory/store-utils.js.map +0 -1
  205. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts +0 -2
  206. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts.map +0 -1
  207. package/dist/migrate/__tests__/frontmatter-parser.test.js +0 -73
  208. package/dist/migrate/__tests__/frontmatter-parser.test.js.map +0 -1
  209. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts +0 -2
  210. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts.map +0 -1
  211. package/dist/migrate/__tests__/md-strip-mewkit.test.js +0 -55
  212. package/dist/migrate/__tests__/md-strip-mewkit.test.js.map +0 -1
  213. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts +0 -2
  214. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts.map +0 -1
  215. package/dist/migrate/__tests__/migrate-scope-resolver.test.js +0 -53
  216. package/dist/migrate/__tests__/migrate-scope-resolver.test.js.map +0 -1
  217. package/dist/migrate/__tests__/process-lock.test.d.ts +0 -2
  218. package/dist/migrate/__tests__/process-lock.test.d.ts.map +0 -1
  219. package/dist/migrate/__tests__/process-lock.test.js +0 -63
  220. package/dist/migrate/__tests__/process-lock.test.js.map +0 -1
  221. package/dist/migrate/__tests__/provider-registry.test.d.ts +0 -2
  222. package/dist/migrate/__tests__/provider-registry.test.d.ts.map +0 -1
  223. package/dist/migrate/__tests__/provider-registry.test.js +0 -53
  224. package/dist/migrate/__tests__/provider-registry.test.js.map +0 -1
  225. package/dist/migrate/__tests__/reconciler.test.d.ts +0 -2
  226. package/dist/migrate/__tests__/reconciler.test.d.ts.map +0 -1
  227. package/dist/migrate/__tests__/reconciler.test.js +0 -180
  228. package/dist/migrate/__tests__/reconciler.test.js.map +0 -1
  229. package/dist/migrate/__tests__/skill-id-utils.test.d.ts +0 -2
  230. package/dist/migrate/__tests__/skill-id-utils.test.d.ts.map +0 -1
  231. package/dist/migrate/__tests__/skill-id-utils.test.js +0 -78
  232. package/dist/migrate/__tests__/skill-id-utils.test.js.map +0 -1
  233. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.d.ts +0 -15
  234. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.d.ts.map +0 -1
  235. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.js +0 -165
  236. package/dist/orchviz/plan/__tests__/apply-todo-toggle.test.js.map +0 -1
  237. package/dist/orchviz/plan/__tests__/atomic-write.test.d.ts +0 -11
  238. package/dist/orchviz/plan/__tests__/atomic-write.test.d.ts.map +0 -1
  239. package/dist/orchviz/plan/__tests__/atomic-write.test.js +0 -89
  240. package/dist/orchviz/plan/__tests__/atomic-write.test.js.map +0 -1
  241. package/dist/orchviz/plan/__tests__/end-to-end.test.d.ts +0 -10
  242. package/dist/orchviz/plan/__tests__/end-to-end.test.d.ts.map +0 -1
  243. package/dist/orchviz/plan/__tests__/end-to-end.test.js +0 -132
  244. package/dist/orchviz/plan/__tests__/end-to-end.test.js.map +0 -1
  245. package/dist/orchviz/plan/__tests__/etag.test.d.ts +0 -11
  246. package/dist/orchviz/plan/__tests__/etag.test.d.ts.map +0 -1
  247. package/dist/orchviz/plan/__tests__/etag.test.js +0 -92
  248. package/dist/orchviz/plan/__tests__/etag.test.js.map +0 -1
  249. package/dist/orchviz/plan/__tests__/list-plans.test.d.ts +0 -14
  250. package/dist/orchviz/plan/__tests__/list-plans.test.d.ts.map +0 -1
  251. package/dist/orchviz/plan/__tests__/list-plans.test.js +0 -154
  252. package/dist/orchviz/plan/__tests__/list-plans.test.js.map +0 -1
  253. package/dist/orchviz/server/__tests__/security-smoke.test.d.ts +0 -13
  254. package/dist/orchviz/server/__tests__/security-smoke.test.d.ts.map +0 -1
  255. package/dist/orchviz/server/__tests__/security-smoke.test.js +0 -207
  256. package/dist/orchviz/server/__tests__/security-smoke.test.js.map +0 -1
  257. package/dist/orchviz/server/__tests__/write-handlers.test.d.ts +0 -24
  258. package/dist/orchviz/server/__tests__/write-handlers.test.d.ts.map +0 -1
  259. package/dist/orchviz/server/__tests__/write-handlers.test.js +0 -347
  260. package/dist/orchviz/server/__tests__/write-handlers.test.js.map +0 -1
  261. package/dist/orchviz/test-server-boot.d.ts +0 -28
  262. package/dist/orchviz/test-server-boot.d.ts.map +0 -1
  263. package/dist/orchviz/test-server-boot.js +0 -64
  264. package/dist/orchviz/test-server-boot.js.map +0 -1
@@ -0,0 +1,519 @@
1
+ import { z } from "zod";
2
+ /** Capability kinds. Disk-enumerated: skill/agent/command/workflow/hook. Authored-only
3
+ * (no disk artifact, no frontmatter): tool/context-service/state-service. `rule` artifacts
4
+ * are inventory-only context and are deliberately NOT capabilities. */
5
+ export declare const CapabilityKindSchema: z.ZodEnum<["skill", "agent", "command", "workflow", "hook", "tool", "context-service", "state-service"]>;
6
+ export type CapabilityKind = z.infer<typeof CapabilityKindSchema>;
7
+ /** Where a field's value came from. `unknown` is surfaced, never invented. */
8
+ export declare const ProvenanceSchema: z.ZodEnum<["authored", "inferred", "adapter", "unknown"]>;
9
+ export type Provenance = z.infer<typeof ProvenanceSchema>;
10
+ /** Typed logical requirement. `id` is a logical identifier (e.g. an external_binary maps
11
+ * to a system-dependency ID), never an executable command. */
12
+ export declare const TypedRequirementSchema: z.ZodObject<{
13
+ type: z.ZodEnum<["host_tool", "mcp_or_app", "external_binary", "subagent_surface", "skill_script", "lifecycle_event", "file_or_config"]>;
14
+ id: z.ZodString;
15
+ provenance: z.ZodDefault<z.ZodEnum<["authored", "inferred", "adapter", "unknown"]>>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ id: string;
18
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
19
+ provenance: "unknown" | "authored" | "inferred" | "adapter";
20
+ }, {
21
+ id: string;
22
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
23
+ provenance?: "unknown" | "authored" | "inferred" | "adapter" | undefined;
24
+ }>;
25
+ export type TypedRequirement = z.infer<typeof TypedRequirementSchema>;
26
+ /** A logical invocation contract. `id` must be a known logical invocation ID; adapters
27
+ * map it to a constant provider operation. `none` = not directly invocable (e.g. a hook). */
28
+ export declare const InvocationSchema: z.ZodObject<{
29
+ kind: z.ZodEnum<["skill", "agent", "command", "workflow", "hook", "none"]>;
30
+ id: z.ZodString;
31
+ }, "strip", z.ZodTypeAny, {
32
+ id: string;
33
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
34
+ }, {
35
+ id: string;
36
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
37
+ }>;
38
+ export type Invocation = z.infer<typeof InvocationSchema>;
39
+ /** The four independent host-support levels, per provider. Populated from adapter
40
+ * evidence only; absence ⇒ unknown. `invocable` at rest is static adapter capability —
41
+ * the resolver reports runtime invocability as pending until Phase 3's host snapshot. */
42
+ export declare const SupportLevelsSchema: z.ZodObject<{
43
+ discoverable: z.ZodBoolean;
44
+ selectable: z.ZodBoolean;
45
+ invocable: z.ZodBoolean;
46
+ enforceable: z.ZodBoolean;
47
+ }, "strip", z.ZodTypeAny, {
48
+ discoverable: boolean;
49
+ selectable: boolean;
50
+ invocable: boolean;
51
+ enforceable: boolean;
52
+ }, {
53
+ discoverable: boolean;
54
+ selectable: boolean;
55
+ invocable: boolean;
56
+ enforceable: boolean;
57
+ }>;
58
+ export type SupportLevels = z.infer<typeof SupportLevelsSchema>;
59
+ /** Declares that a capability needs a bounded task-scoped repository-context envelope acquired
60
+ * BEFORE source-grounded work (Phase 5). This is an ORCHESTRATION precondition, not a host
61
+ * dependency: the envelope is acquired on demand (host-native read/search) and recorded, never
62
+ * probed for presence — so it is deliberately NOT a `TypedRequirement` (those feed availability
63
+ * adapters). `scope: "task-repo"` = evidence resolved per owning repo under the task boundary
64
+ * (multi-repo aware; see repo-context.ts). */
65
+ export declare const ContextRequirementSchema: z.ZodObject<{
66
+ scope: z.ZodDefault<z.ZodLiteral<"task-repo">>;
67
+ reason: z.ZodDefault<z.ZodString>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ scope: "task-repo";
70
+ reason: string;
71
+ }, {
72
+ scope?: "task-repo" | undefined;
73
+ reason?: string | undefined;
74
+ }>;
75
+ export type ContextRequirement = z.infer<typeof ContextRequirementSchema>;
76
+ /** How to verify the capability did its job. `unknown` is explicit, not a silent gap. */
77
+ export declare const VerificationSchema: z.ZodObject<{
78
+ kind: z.ZodEnum<["command", "file", "runtime", "none", "unknown"]>;
79
+ id: z.ZodOptional<z.ZodString>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
82
+ id?: string | undefined;
83
+ }, {
84
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
85
+ id?: string | undefined;
86
+ }>;
87
+ export type Verification = z.infer<typeof VerificationSchema>;
88
+ export declare const CapabilityEntrySchema: z.ZodObject<{
89
+ id: z.ZodString;
90
+ kind: z.ZodEnum<["skill", "agent", "command", "workflow", "hook", "tool", "context-service", "state-service"]>;
91
+ description: z.ZodDefault<z.ZodString>;
92
+ aliases: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
93
+ /** `.claude/`-relative source path, or null for authored kinds with no disk artifact. */
94
+ sourcePath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
95
+ /** Cross-reference to the matching InventoryEntry.id, or null for authored-only kinds. */
96
+ inventoryId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
97
+ /** Denormalized from inventory for self-contained output; agreement is validated. */
98
+ owner: z.ZodDefault<z.ZodString>;
99
+ installedState: z.ZodDefault<z.ZodEnum<["installed", "absent", "unknown"]>>;
100
+ /** Bounded selection terms — authored for flagship flows, else inferred from keywords. */
101
+ intents: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
102
+ whenToUse: z.ZodDefault<z.ZodNullable<z.ZodString>>;
103
+ invocation: z.ZodObject<{
104
+ kind: z.ZodEnum<["skill", "agent", "command", "workflow", "hook", "none"]>;
105
+ id: z.ZodString;
106
+ }, "strip", z.ZodTypeAny, {
107
+ id: string;
108
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
109
+ }, {
110
+ id: string;
111
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
112
+ }>;
113
+ requirements: z.ZodDefault<z.ZodArray<z.ZodObject<{
114
+ type: z.ZodEnum<["host_tool", "mcp_or_app", "external_binary", "subagent_surface", "skill_script", "lifecycle_event", "file_or_config"]>;
115
+ id: z.ZodString;
116
+ provenance: z.ZodDefault<z.ZodEnum<["authored", "inferred", "adapter", "unknown"]>>;
117
+ }, "strip", z.ZodTypeAny, {
118
+ id: string;
119
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
120
+ provenance: "unknown" | "authored" | "inferred" | "adapter";
121
+ }, {
122
+ id: string;
123
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
124
+ provenance?: "unknown" | "authored" | "inferred" | "adapter" | undefined;
125
+ }>, "many">>;
126
+ /** Set when this capability must acquire a task-scoped repo-context envelope before
127
+ * source-grounded work (Phase 5). Null = no repo grounding needed. Orchestration-only —
128
+ * never fed to availability adapters. */
129
+ contextRequirement: z.ZodDefault<z.ZodNullable<z.ZodObject<{
130
+ scope: z.ZodDefault<z.ZodLiteral<"task-repo">>;
131
+ reason: z.ZodDefault<z.ZodString>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ scope: "task-repo";
134
+ reason: string;
135
+ }, {
136
+ scope?: "task-repo" | undefined;
137
+ reason?: string | undefined;
138
+ }>>>;
139
+ /** Per-provider support levels; absent provider ⇒ unknown support for that provider. */
140
+ support: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
141
+ discoverable: z.ZodBoolean;
142
+ selectable: z.ZodBoolean;
143
+ invocable: z.ZodBoolean;
144
+ enforceable: z.ZodBoolean;
145
+ }, "strip", z.ZodTypeAny, {
146
+ discoverable: boolean;
147
+ selectable: boolean;
148
+ invocable: boolean;
149
+ enforceable: boolean;
150
+ }, {
151
+ discoverable: boolean;
152
+ selectable: boolean;
153
+ invocable: boolean;
154
+ enforceable: boolean;
155
+ }>>>;
156
+ verification: z.ZodDefault<z.ZodObject<{
157
+ kind: z.ZodEnum<["command", "file", "runtime", "none", "unknown"]>;
158
+ id: z.ZodOptional<z.ZodString>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
161
+ id?: string | undefined;
162
+ }, {
163
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
164
+ id?: string | undefined;
165
+ }>>;
166
+ dependencies: z.ZodDefault<z.ZodObject<{
167
+ upstream: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
168
+ downstream: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
169
+ }, "strip", z.ZodTypeAny, {
170
+ upstream: string[];
171
+ downstream: string[];
172
+ }, {
173
+ upstream?: string[] | undefined;
174
+ downstream?: string[] | undefined;
175
+ }>>;
176
+ /** field name → where that field's value came from. */
177
+ provenance: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["authored", "inferred", "adapter", "unknown"]>>>;
178
+ }, "strip", z.ZodTypeAny, {
179
+ id: string;
180
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "tool" | "context-service" | "state-service";
181
+ description: string;
182
+ aliases: string[];
183
+ sourcePath: string | null;
184
+ inventoryId: string | null;
185
+ owner: string;
186
+ installedState: "installed" | "absent" | "unknown";
187
+ intents: string[];
188
+ whenToUse: string | null;
189
+ invocation: {
190
+ id: string;
191
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
192
+ };
193
+ provenance: Record<string, "unknown" | "authored" | "inferred" | "adapter">;
194
+ requirements: {
195
+ id: string;
196
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
197
+ provenance: "unknown" | "authored" | "inferred" | "adapter";
198
+ }[];
199
+ contextRequirement: {
200
+ scope: "task-repo";
201
+ reason: string;
202
+ } | null;
203
+ support: Record<string, {
204
+ discoverable: boolean;
205
+ selectable: boolean;
206
+ invocable: boolean;
207
+ enforceable: boolean;
208
+ }>;
209
+ verification: {
210
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
211
+ id?: string | undefined;
212
+ };
213
+ dependencies: {
214
+ upstream: string[];
215
+ downstream: string[];
216
+ };
217
+ }, {
218
+ id: string;
219
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "tool" | "context-service" | "state-service";
220
+ invocation: {
221
+ id: string;
222
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
223
+ };
224
+ description?: string | undefined;
225
+ aliases?: string[] | undefined;
226
+ sourcePath?: string | null | undefined;
227
+ inventoryId?: string | null | undefined;
228
+ owner?: string | undefined;
229
+ installedState?: "installed" | "absent" | "unknown" | undefined;
230
+ intents?: string[] | undefined;
231
+ whenToUse?: string | null | undefined;
232
+ provenance?: Record<string, "unknown" | "authored" | "inferred" | "adapter"> | undefined;
233
+ requirements?: {
234
+ id: string;
235
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
236
+ provenance?: "unknown" | "authored" | "inferred" | "adapter" | undefined;
237
+ }[] | undefined;
238
+ contextRequirement?: {
239
+ scope?: "task-repo" | undefined;
240
+ reason?: string | undefined;
241
+ } | null | undefined;
242
+ support?: Record<string, {
243
+ discoverable: boolean;
244
+ selectable: boolean;
245
+ invocable: boolean;
246
+ enforceable: boolean;
247
+ }> | undefined;
248
+ verification?: {
249
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
250
+ id?: string | undefined;
251
+ } | undefined;
252
+ dependencies?: {
253
+ upstream?: string[] | undefined;
254
+ downstream?: string[] | undefined;
255
+ } | undefined;
256
+ }>;
257
+ export type CapabilityEntry = z.infer<typeof CapabilityEntrySchema>;
258
+ export declare const CapabilityManifestSchema: z.ZodObject<{
259
+ schemaVersion: z.ZodLiteral<"1.0">;
260
+ entries: z.ZodArray<z.ZodObject<{
261
+ id: z.ZodString;
262
+ kind: z.ZodEnum<["skill", "agent", "command", "workflow", "hook", "tool", "context-service", "state-service"]>;
263
+ description: z.ZodDefault<z.ZodString>;
264
+ aliases: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
265
+ /** `.claude/`-relative source path, or null for authored kinds with no disk artifact. */
266
+ sourcePath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
267
+ /** Cross-reference to the matching InventoryEntry.id, or null for authored-only kinds. */
268
+ inventoryId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
269
+ /** Denormalized from inventory for self-contained output; agreement is validated. */
270
+ owner: z.ZodDefault<z.ZodString>;
271
+ installedState: z.ZodDefault<z.ZodEnum<["installed", "absent", "unknown"]>>;
272
+ /** Bounded selection terms — authored for flagship flows, else inferred from keywords. */
273
+ intents: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
274
+ whenToUse: z.ZodDefault<z.ZodNullable<z.ZodString>>;
275
+ invocation: z.ZodObject<{
276
+ kind: z.ZodEnum<["skill", "agent", "command", "workflow", "hook", "none"]>;
277
+ id: z.ZodString;
278
+ }, "strip", z.ZodTypeAny, {
279
+ id: string;
280
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
281
+ }, {
282
+ id: string;
283
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
284
+ }>;
285
+ requirements: z.ZodDefault<z.ZodArray<z.ZodObject<{
286
+ type: z.ZodEnum<["host_tool", "mcp_or_app", "external_binary", "subagent_surface", "skill_script", "lifecycle_event", "file_or_config"]>;
287
+ id: z.ZodString;
288
+ provenance: z.ZodDefault<z.ZodEnum<["authored", "inferred", "adapter", "unknown"]>>;
289
+ }, "strip", z.ZodTypeAny, {
290
+ id: string;
291
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
292
+ provenance: "unknown" | "authored" | "inferred" | "adapter";
293
+ }, {
294
+ id: string;
295
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
296
+ provenance?: "unknown" | "authored" | "inferred" | "adapter" | undefined;
297
+ }>, "many">>;
298
+ /** Set when this capability must acquire a task-scoped repo-context envelope before
299
+ * source-grounded work (Phase 5). Null = no repo grounding needed. Orchestration-only —
300
+ * never fed to availability adapters. */
301
+ contextRequirement: z.ZodDefault<z.ZodNullable<z.ZodObject<{
302
+ scope: z.ZodDefault<z.ZodLiteral<"task-repo">>;
303
+ reason: z.ZodDefault<z.ZodString>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ scope: "task-repo";
306
+ reason: string;
307
+ }, {
308
+ scope?: "task-repo" | undefined;
309
+ reason?: string | undefined;
310
+ }>>>;
311
+ /** Per-provider support levels; absent provider ⇒ unknown support for that provider. */
312
+ support: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
313
+ discoverable: z.ZodBoolean;
314
+ selectable: z.ZodBoolean;
315
+ invocable: z.ZodBoolean;
316
+ enforceable: z.ZodBoolean;
317
+ }, "strip", z.ZodTypeAny, {
318
+ discoverable: boolean;
319
+ selectable: boolean;
320
+ invocable: boolean;
321
+ enforceable: boolean;
322
+ }, {
323
+ discoverable: boolean;
324
+ selectable: boolean;
325
+ invocable: boolean;
326
+ enforceable: boolean;
327
+ }>>>;
328
+ verification: z.ZodDefault<z.ZodObject<{
329
+ kind: z.ZodEnum<["command", "file", "runtime", "none", "unknown"]>;
330
+ id: z.ZodOptional<z.ZodString>;
331
+ }, "strip", z.ZodTypeAny, {
332
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
333
+ id?: string | undefined;
334
+ }, {
335
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
336
+ id?: string | undefined;
337
+ }>>;
338
+ dependencies: z.ZodDefault<z.ZodObject<{
339
+ upstream: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
340
+ downstream: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
341
+ }, "strip", z.ZodTypeAny, {
342
+ upstream: string[];
343
+ downstream: string[];
344
+ }, {
345
+ upstream?: string[] | undefined;
346
+ downstream?: string[] | undefined;
347
+ }>>;
348
+ /** field name → where that field's value came from. */
349
+ provenance: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["authored", "inferred", "adapter", "unknown"]>>>;
350
+ }, "strip", z.ZodTypeAny, {
351
+ id: string;
352
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "tool" | "context-service" | "state-service";
353
+ description: string;
354
+ aliases: string[];
355
+ sourcePath: string | null;
356
+ inventoryId: string | null;
357
+ owner: string;
358
+ installedState: "installed" | "absent" | "unknown";
359
+ intents: string[];
360
+ whenToUse: string | null;
361
+ invocation: {
362
+ id: string;
363
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
364
+ };
365
+ provenance: Record<string, "unknown" | "authored" | "inferred" | "adapter">;
366
+ requirements: {
367
+ id: string;
368
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
369
+ provenance: "unknown" | "authored" | "inferred" | "adapter";
370
+ }[];
371
+ contextRequirement: {
372
+ scope: "task-repo";
373
+ reason: string;
374
+ } | null;
375
+ support: Record<string, {
376
+ discoverable: boolean;
377
+ selectable: boolean;
378
+ invocable: boolean;
379
+ enforceable: boolean;
380
+ }>;
381
+ verification: {
382
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
383
+ id?: string | undefined;
384
+ };
385
+ dependencies: {
386
+ upstream: string[];
387
+ downstream: string[];
388
+ };
389
+ }, {
390
+ id: string;
391
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "tool" | "context-service" | "state-service";
392
+ invocation: {
393
+ id: string;
394
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
395
+ };
396
+ description?: string | undefined;
397
+ aliases?: string[] | undefined;
398
+ sourcePath?: string | null | undefined;
399
+ inventoryId?: string | null | undefined;
400
+ owner?: string | undefined;
401
+ installedState?: "installed" | "absent" | "unknown" | undefined;
402
+ intents?: string[] | undefined;
403
+ whenToUse?: string | null | undefined;
404
+ provenance?: Record<string, "unknown" | "authored" | "inferred" | "adapter"> | undefined;
405
+ requirements?: {
406
+ id: string;
407
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
408
+ provenance?: "unknown" | "authored" | "inferred" | "adapter" | undefined;
409
+ }[] | undefined;
410
+ contextRequirement?: {
411
+ scope?: "task-repo" | undefined;
412
+ reason?: string | undefined;
413
+ } | null | undefined;
414
+ support?: Record<string, {
415
+ discoverable: boolean;
416
+ selectable: boolean;
417
+ invocable: boolean;
418
+ enforceable: boolean;
419
+ }> | undefined;
420
+ verification?: {
421
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
422
+ id?: string | undefined;
423
+ } | undefined;
424
+ dependencies?: {
425
+ upstream?: string[] | undefined;
426
+ downstream?: string[] | undefined;
427
+ } | undefined;
428
+ }>, "many">;
429
+ }, "strip", z.ZodTypeAny, {
430
+ entries: {
431
+ id: string;
432
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "tool" | "context-service" | "state-service";
433
+ description: string;
434
+ aliases: string[];
435
+ sourcePath: string | null;
436
+ inventoryId: string | null;
437
+ owner: string;
438
+ installedState: "installed" | "absent" | "unknown";
439
+ intents: string[];
440
+ whenToUse: string | null;
441
+ invocation: {
442
+ id: string;
443
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
444
+ };
445
+ provenance: Record<string, "unknown" | "authored" | "inferred" | "adapter">;
446
+ requirements: {
447
+ id: string;
448
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
449
+ provenance: "unknown" | "authored" | "inferred" | "adapter";
450
+ }[];
451
+ contextRequirement: {
452
+ scope: "task-repo";
453
+ reason: string;
454
+ } | null;
455
+ support: Record<string, {
456
+ discoverable: boolean;
457
+ selectable: boolean;
458
+ invocable: boolean;
459
+ enforceable: boolean;
460
+ }>;
461
+ verification: {
462
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
463
+ id?: string | undefined;
464
+ };
465
+ dependencies: {
466
+ upstream: string[];
467
+ downstream: string[];
468
+ };
469
+ }[];
470
+ schemaVersion: "1.0";
471
+ }, {
472
+ entries: {
473
+ id: string;
474
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "tool" | "context-service" | "state-service";
475
+ invocation: {
476
+ id: string;
477
+ kind: "skill" | "agent" | "command" | "workflow" | "hook" | "none";
478
+ };
479
+ description?: string | undefined;
480
+ aliases?: string[] | undefined;
481
+ sourcePath?: string | null | undefined;
482
+ inventoryId?: string | null | undefined;
483
+ owner?: string | undefined;
484
+ installedState?: "installed" | "absent" | "unknown" | undefined;
485
+ intents?: string[] | undefined;
486
+ whenToUse?: string | null | undefined;
487
+ provenance?: Record<string, "unknown" | "authored" | "inferred" | "adapter"> | undefined;
488
+ requirements?: {
489
+ id: string;
490
+ type: "host_tool" | "mcp_or_app" | "external_binary" | "subagent_surface" | "skill_script" | "lifecycle_event" | "file_or_config";
491
+ provenance?: "unknown" | "authored" | "inferred" | "adapter" | undefined;
492
+ }[] | undefined;
493
+ contextRequirement?: {
494
+ scope?: "task-repo" | undefined;
495
+ reason?: string | undefined;
496
+ } | null | undefined;
497
+ support?: Record<string, {
498
+ discoverable: boolean;
499
+ selectable: boolean;
500
+ invocable: boolean;
501
+ enforceable: boolean;
502
+ }> | undefined;
503
+ verification?: {
504
+ kind: "command" | "unknown" | "none" | "file" | "runtime";
505
+ id?: string | undefined;
506
+ } | undefined;
507
+ dependencies?: {
508
+ upstream?: string[] | undefined;
509
+ downstream?: string[] | undefined;
510
+ } | undefined;
511
+ }[];
512
+ schemaVersion: "1.0";
513
+ }>;
514
+ export type CapabilityManifest = z.infer<typeof CapabilityManifestSchema>;
515
+ /** Known logical invocation IDs. Frontmatter may reference only these; adapter code maps
516
+ * each to a constant provider operation. A capability naming an ID outside this set is a
517
+ * validation error — hostile frontmatter cannot smuggle an executable string through. */
518
+ export declare const KNOWN_INVOCATION_IDS: ReadonlySet<string>;
519
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/core/capability.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;uEAEuE;AACvE,eAAO,MAAM,oBAAoB,0GAS/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,2DAAyD,CAAC;AACvF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;8DAC8D;AAC9D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAYjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;6FAC6F;AAC7F,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;yFAEyF;AACzF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAK9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;8CAK8C;AAC9C,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,yFAAyF;AACzF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB;;;;;IAKjC,yFAAyF;;IAEzF,0FAA0F;;IAE1F,qFAAqF;;;IAGrF,0FAA0F;;;;;;;;;;;;;;;;;;;;;;;;;;IAK1F;;6CAEyC;;;;;;;;;;;IAEzC,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMxF,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEtD,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,wBAAwB;;;;;;;QA3BpC,yFAAyF;;QAEzF,0FAA0F;;QAE1F,qFAAqF;;;QAGrF,0FAA0F;;;;;;;;;;;;;;;;;;;;;;;;;;QAK1F;;iDAEyC;;;;;;;;;;;QAEzC,wFAAwF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAMxF,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQtD,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;yFAEyF;AACzF,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAOnD,CAAC"}
@@ -0,0 +1,114 @@
1
+ // Model-agnostic capability contract: one semantic entry per installed artifact (plus
2
+ // authored external tools / repo-context-state services), mapping an artifact to safe
3
+ // selection, logical invocation requirements, and verification. This is the resolution
4
+ // view; `InventoryEntry` (build-inventory.ts) stays the installation/governance view and
5
+ // the two reference each other by ID. Security invariant: frontmatter may name LOGICAL
6
+ // requirement/invocation IDs only — never a command string or a provider-native tool
7
+ // name. Trusted adapter code maps logical IDs to constant provider operations.
8
+ import { z } from "zod";
9
+ /** Capability kinds. Disk-enumerated: skill/agent/command/workflow/hook. Authored-only
10
+ * (no disk artifact, no frontmatter): tool/context-service/state-service. `rule` artifacts
11
+ * are inventory-only context and are deliberately NOT capabilities. */
12
+ export const CapabilityKindSchema = z.enum([
13
+ "skill",
14
+ "agent",
15
+ "command",
16
+ "workflow",
17
+ "hook",
18
+ "tool",
19
+ "context-service",
20
+ "state-service",
21
+ ]);
22
+ /** Where a field's value came from. `unknown` is surfaced, never invented. */
23
+ export const ProvenanceSchema = z.enum(["authored", "inferred", "adapter", "unknown"]);
24
+ /** Typed logical requirement. `id` is a logical identifier (e.g. an external_binary maps
25
+ * to a system-dependency ID), never an executable command. */
26
+ export const TypedRequirementSchema = z.object({
27
+ type: z.enum([
28
+ "host_tool",
29
+ "mcp_or_app",
30
+ "external_binary",
31
+ "subagent_surface",
32
+ "skill_script",
33
+ "lifecycle_event",
34
+ "file_or_config",
35
+ ]),
36
+ id: z.string(),
37
+ provenance: ProvenanceSchema.default("inferred"),
38
+ });
39
+ /** A logical invocation contract. `id` must be a known logical invocation ID; adapters
40
+ * map it to a constant provider operation. `none` = not directly invocable (e.g. a hook). */
41
+ export const InvocationSchema = z.object({
42
+ kind: z.enum(["skill", "agent", "command", "workflow", "hook", "none"]),
43
+ id: z.string(),
44
+ });
45
+ /** The four independent host-support levels, per provider. Populated from adapter
46
+ * evidence only; absence ⇒ unknown. `invocable` at rest is static adapter capability —
47
+ * the resolver reports runtime invocability as pending until Phase 3's host snapshot. */
48
+ export const SupportLevelsSchema = z.object({
49
+ discoverable: z.boolean(),
50
+ selectable: z.boolean(),
51
+ invocable: z.boolean(),
52
+ enforceable: z.boolean(),
53
+ });
54
+ /** Declares that a capability needs a bounded task-scoped repository-context envelope acquired
55
+ * BEFORE source-grounded work (Phase 5). This is an ORCHESTRATION precondition, not a host
56
+ * dependency: the envelope is acquired on demand (host-native read/search) and recorded, never
57
+ * probed for presence — so it is deliberately NOT a `TypedRequirement` (those feed availability
58
+ * adapters). `scope: "task-repo"` = evidence resolved per owning repo under the task boundary
59
+ * (multi-repo aware; see repo-context.ts). */
60
+ export const ContextRequirementSchema = z.object({
61
+ scope: z.literal("task-repo").default("task-repo"),
62
+ reason: z.string().default(""),
63
+ });
64
+ /** How to verify the capability did its job. `unknown` is explicit, not a silent gap. */
65
+ export const VerificationSchema = z.object({
66
+ kind: z.enum(["command", "file", "runtime", "none", "unknown"]),
67
+ id: z.string().optional(),
68
+ });
69
+ export const CapabilityEntrySchema = z.object({
70
+ id: z.string(),
71
+ kind: CapabilityKindSchema,
72
+ description: z.string().default(""),
73
+ aliases: z.array(z.string()).default([]),
74
+ /** `.claude/`-relative source path, or null for authored kinds with no disk artifact. */
75
+ sourcePath: z.string().nullable().default(null),
76
+ /** Cross-reference to the matching InventoryEntry.id, or null for authored-only kinds. */
77
+ inventoryId: z.string().nullable().default(null),
78
+ /** Denormalized from inventory for self-contained output; agreement is validated. */
79
+ owner: z.string().default(""),
80
+ installedState: z.enum(["installed", "absent", "unknown"]).default("unknown"),
81
+ /** Bounded selection terms — authored for flagship flows, else inferred from keywords. */
82
+ intents: z.array(z.string()).default([]),
83
+ whenToUse: z.string().nullable().default(null),
84
+ invocation: InvocationSchema,
85
+ requirements: z.array(TypedRequirementSchema).default([]),
86
+ /** Set when this capability must acquire a task-scoped repo-context envelope before
87
+ * source-grounded work (Phase 5). Null = no repo grounding needed. Orchestration-only —
88
+ * never fed to availability adapters. */
89
+ contextRequirement: ContextRequirementSchema.nullable().default(null),
90
+ /** Per-provider support levels; absent provider ⇒ unknown support for that provider. */
91
+ support: z.record(z.string(), SupportLevelsSchema).default({}),
92
+ verification: VerificationSchema.default({ kind: "unknown" }),
93
+ dependencies: z
94
+ .object({ upstream: z.array(z.string()).default([]), downstream: z.array(z.string()).default([]) })
95
+ .default({ upstream: [], downstream: [] }),
96
+ /** field name → where that field's value came from. */
97
+ provenance: z.record(z.string(), ProvenanceSchema).default({}),
98
+ });
99
+ export const CapabilityManifestSchema = z.object({
100
+ schemaVersion: z.literal("1.0"),
101
+ entries: z.array(CapabilityEntrySchema),
102
+ });
103
+ /** Known logical invocation IDs. Frontmatter may reference only these; adapter code maps
104
+ * each to a constant provider operation. A capability naming an ID outside this set is a
105
+ * validation error — hostile frontmatter cannot smuggle an executable string through. */
106
+ export const KNOWN_INVOCATION_IDS = new Set([
107
+ "invoke-skill",
108
+ "invoke-agent",
109
+ "invoke-command",
110
+ "invoke-workflow",
111
+ "lifecycle-hook",
112
+ "none",
113
+ ]);
114
+ //# sourceMappingURL=capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/core/capability.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compute-checksums.d.ts","sourceRoot":"","sources":["../../src/core/compute-checksums.ts"],"names":[],"mappings":"AAIA,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC;AAsBD,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAe7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBnE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CA0BzD;AAED,6BAA6B;AAC7B,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAGzE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQ/D"}
1
+ {"version":3,"file":"compute-checksums.d.ts","sourceRoot":"","sources":["../../src/core/compute-checksums.ts"],"names":[],"mappings":"AAIA,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC;AAsBD,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAe7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA8BnE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CA0BzD;AAED,6BAA6B;AAC7B,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAGzE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQ/D"}