@nklisch/pi-enhanced 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1904) hide show
  1. package/README.md +58 -0
  2. package/node_modules/@ff-labs/pi-fff/README.md +153 -0
  3. package/node_modules/@ff-labs/pi-fff/package.json +55 -0
  4. package/node_modules/@ff-labs/pi-fff/src/aux-finders.ts +167 -0
  5. package/node_modules/@ff-labs/pi-fff/src/index.ts +1131 -0
  6. package/node_modules/@ff-labs/pi-fff/src/query.ts +94 -0
  7. package/node_modules/@ff-labs/pi-fff/src/sdk.ts +29 -0
  8. package/node_modules/@juicesharp/rpiv-ask-user-question/LICENSE +21 -0
  9. package/node_modules/@juicesharp/rpiv-ask-user-question/README.md +91 -0
  10. package/node_modules/@juicesharp/rpiv-ask-user-question/ask-user-question.ts +296 -0
  11. package/node_modules/@juicesharp/rpiv-ask-user-question/config.ts +75 -0
  12. package/node_modules/@juicesharp/rpiv-ask-user-question/docs/configuration.md +112 -0
  13. package/node_modules/@juicesharp/rpiv-ask-user-question/docs/hosts.md +87 -0
  14. package/node_modules/@juicesharp/rpiv-ask-user-question/docs/keyboard.md +87 -0
  15. package/node_modules/@juicesharp/rpiv-ask-user-question/docs/localization.md +83 -0
  16. package/node_modules/@juicesharp/rpiv-ask-user-question/docs/tool-schema.md +121 -0
  17. package/node_modules/@juicesharp/rpiv-ask-user-question/events.ts +55 -0
  18. package/node_modules/@juicesharp/rpiv-ask-user-question/index.ts +54 -0
  19. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/de.json +27 -0
  20. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/en.json +27 -0
  21. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/es.json +27 -0
  22. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/fr.json +27 -0
  23. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/pt-BR.json +27 -0
  24. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/pt.json +27 -0
  25. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/ru.json +27 -0
  26. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/uk.json +27 -0
  27. package/node_modules/@juicesharp/rpiv-ask-user-question/locales/zh.json +29 -0
  28. package/node_modules/@juicesharp/rpiv-ask-user-question/package.json +98 -0
  29. package/node_modules/@juicesharp/rpiv-ask-user-question/reconcile.ts +47 -0
  30. package/node_modules/@juicesharp/rpiv-ask-user-question/rpc-fallback.ts +166 -0
  31. package/node_modules/@juicesharp/rpiv-ask-user-question/state/build-questionnaire.ts +300 -0
  32. package/node_modules/@juicesharp/rpiv-ask-user-question/state/i18n-bridge.ts +51 -0
  33. package/node_modules/@juicesharp/rpiv-ask-user-question/state/key-router.ts +275 -0
  34. package/node_modules/@juicesharp/rpiv-ask-user-question/state/questionnaire-session.ts +232 -0
  35. package/node_modules/@juicesharp/rpiv-ask-user-question/state/row-intent.ts +143 -0
  36. package/node_modules/@juicesharp/rpiv-ask-user-question/state/selectors/contract.ts +24 -0
  37. package/node_modules/@juicesharp/rpiv-ask-user-question/state/selectors/derivations.ts +40 -0
  38. package/node_modules/@juicesharp/rpiv-ask-user-question/state/selectors/focus.ts +17 -0
  39. package/node_modules/@juicesharp/rpiv-ask-user-question/state/selectors/projections.ts +99 -0
  40. package/node_modules/@juicesharp/rpiv-ask-user-question/state/state-reducer.ts +290 -0
  41. package/node_modules/@juicesharp/rpiv-ask-user-question/state/state.ts +53 -0
  42. package/node_modules/@juicesharp/rpiv-ask-user-question/tool/format-answer.ts +29 -0
  43. package/node_modules/@juicesharp/rpiv-ask-user-question/tool/response-envelope.ts +47 -0
  44. package/node_modules/@juicesharp/rpiv-ask-user-question/tool/types.ts +145 -0
  45. package/node_modules/@juicesharp/rpiv-ask-user-question/tool/validate-questionnaire.ts +56 -0
  46. package/node_modules/@juicesharp/rpiv-ask-user-question/view/component-binding.ts +45 -0
  47. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/inline-input.ts +96 -0
  48. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/multi-select-view.ts +191 -0
  49. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/option-list-view.ts +68 -0
  50. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/preview/markdown-content-cache.ts +77 -0
  51. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/preview/preview-block-renderer.ts +109 -0
  52. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/preview/preview-box-renderer.ts +86 -0
  53. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/preview/preview-layout-decider.ts +200 -0
  54. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/preview/preview-pane.ts +226 -0
  55. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/submit-picker.ts +65 -0
  56. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/tab-bar.ts +57 -0
  57. package/node_modules/@juicesharp/rpiv-ask-user-question/view/components/wrapping-select.ts +291 -0
  58. package/node_modules/@juicesharp/rpiv-ask-user-question/view/dialog-builder.ts +222 -0
  59. package/node_modules/@juicesharp/rpiv-ask-user-question/view/props-adapter.ts +123 -0
  60. package/node_modules/@juicesharp/rpiv-ask-user-question/view/stateful-view.ts +24 -0
  61. package/node_modules/@juicesharp/rpiv-ask-user-question/view/tab-components.ts +16 -0
  62. package/node_modules/@juicesharp/rpiv-ask-user-question/view/tab-content-strategy.ts +250 -0
  63. package/node_modules/@juicesharp/rpiv-todo/LICENSE +21 -0
  64. package/node_modules/@juicesharp/rpiv-todo/README.md +122 -0
  65. package/node_modules/@juicesharp/rpiv-todo/config.ts +101 -0
  66. package/node_modules/@juicesharp/rpiv-todo/docs/configuration.md +108 -0
  67. package/node_modules/@juicesharp/rpiv-todo/docs/overlay.md +127 -0
  68. package/node_modules/@juicesharp/rpiv-todo/docs/tool-schema.md +151 -0
  69. package/node_modules/@juicesharp/rpiv-todo/index.ts +186 -0
  70. package/node_modules/@juicesharp/rpiv-todo/locales/de.json +19 -0
  71. package/node_modules/@juicesharp/rpiv-todo/locales/en.json +17 -0
  72. package/node_modules/@juicesharp/rpiv-todo/locales/es.json +19 -0
  73. package/node_modules/@juicesharp/rpiv-todo/locales/fr.json +19 -0
  74. package/node_modules/@juicesharp/rpiv-todo/locales/pt-BR.json +19 -0
  75. package/node_modules/@juicesharp/rpiv-todo/locales/pt.json +19 -0
  76. package/node_modules/@juicesharp/rpiv-todo/locales/ru.json +19 -0
  77. package/node_modules/@juicesharp/rpiv-todo/locales/uk.json +19 -0
  78. package/node_modules/@juicesharp/rpiv-todo/locales/zh.json +19 -0
  79. package/node_modules/@juicesharp/rpiv-todo/package.json +73 -0
  80. package/node_modules/@juicesharp/rpiv-todo/state/i18n-bridge.ts +64 -0
  81. package/node_modules/@juicesharp/rpiv-todo/state/invariants.ts +20 -0
  82. package/node_modules/@juicesharp/rpiv-todo/state/replay.ts +38 -0
  83. package/node_modules/@juicesharp/rpiv-todo/state/selectors.ts +107 -0
  84. package/node_modules/@juicesharp/rpiv-todo/state/state-reducer.ts +227 -0
  85. package/node_modules/@juicesharp/rpiv-todo/state/state.ts +18 -0
  86. package/node_modules/@juicesharp/rpiv-todo/state/store.ts +126 -0
  87. package/node_modules/@juicesharp/rpiv-todo/state/task-graph.ts +57 -0
  88. package/node_modules/@juicesharp/rpiv-todo/todo-overlay.ts +230 -0
  89. package/node_modules/@juicesharp/rpiv-todo/todo.ts +144 -0
  90. package/node_modules/@juicesharp/rpiv-todo/tool/response-envelope.ts +97 -0
  91. package/node_modules/@juicesharp/rpiv-todo/tool/types.ts +128 -0
  92. package/node_modules/@juicesharp/rpiv-todo/view/format.ts +163 -0
  93. package/node_modules/@narumitw/pi-usage/LICENSE +21 -0
  94. package/node_modules/@narumitw/pi-usage/README.md +151 -0
  95. package/node_modules/@narumitw/pi-usage/package.json +46 -0
  96. package/node_modules/@narumitw/pi-usage/src/core.ts +217 -0
  97. package/node_modules/@narumitw/pi-usage/src/format.ts +249 -0
  98. package/node_modules/@narumitw/pi-usage/src/index.ts +35 -0
  99. package/node_modules/@narumitw/pi-usage/src/providers/codex.ts +150 -0
  100. package/node_modules/@narumitw/pi-usage/src/providers/openrouter.ts +73 -0
  101. package/node_modules/@narumitw/pi-usage/src/query.ts +313 -0
  102. package/node_modules/@narumitw/pi-usage/src/types.ts +90 -0
  103. package/node_modules/@narumitw/pi-usage/src/usage.ts +676 -0
  104. package/node_modules/@nklisch/pi-background-tasks/README.md +20 -0
  105. package/node_modules/@nklisch/pi-background-tasks/extensions/background-tasks.test.ts +784 -0
  106. package/node_modules/@nklisch/pi-background-tasks/extensions/background-tasks.ts +1143 -0
  107. package/node_modules/@nklisch/pi-background-tasks/package.json +40 -0
  108. package/node_modules/@nklisch/pi-background-tasks/skills/background-tasks/SKILL.md +138 -0
  109. package/node_modules/@nklisch/pi-clearance/LICENSE +21 -0
  110. package/node_modules/@nklisch/pi-clearance/README.md +45 -0
  111. package/node_modules/@nklisch/pi-clearance/docs/ARCHITECTURE.md +47 -0
  112. package/node_modules/@nklisch/pi-clearance/docs/CONFIGURATION.md +94 -0
  113. package/node_modules/@nklisch/pi-clearance/docs/DEVELOPER_GUIDE.md +284 -0
  114. package/node_modules/@nklisch/pi-clearance/docs/PACK_AUTHORING.md +484 -0
  115. package/node_modules/@nklisch/pi-clearance/docs/PRINCIPLES.md +154 -0
  116. package/node_modules/@nklisch/pi-clearance/docs/REFERENCE_PATTERNS.md +335 -0
  117. package/node_modules/@nklisch/pi-clearance/docs/REVIEWER_PROMPTS.md +37 -0
  118. package/node_modules/@nklisch/pi-clearance/docs/RULE_PACKS.md +198 -0
  119. package/node_modules/@nklisch/pi-clearance/docs/SPEC.md +45 -0
  120. package/node_modules/@nklisch/pi-clearance/docs/TUNE.md +32 -0
  121. package/node_modules/@nklisch/pi-clearance/docs/USER_GUIDE.md +70 -0
  122. package/node_modules/@nklisch/pi-clearance/docs/VISION.md +23 -0
  123. package/node_modules/@nklisch/pi-clearance/native/clearance-core.linux-x64-gnu.node +0 -0
  124. package/node_modules/@nklisch/pi-clearance/native/index.d.ts +66 -0
  125. package/node_modules/@nklisch/pi-clearance/package.json +95 -0
  126. package/node_modules/@nklisch/pi-clearance/src/audit/entry.ts +206 -0
  127. package/node_modules/@nklisch/pi-clearance/src/audit/log.ts +4 -0
  128. package/node_modules/@nklisch/pi-clearance/src/audit/logger.ts +39 -0
  129. package/node_modules/@nklisch/pi-clearance/src/audit/redact.ts +260 -0
  130. package/node_modules/@nklisch/pi-clearance/src/audit/sink.ts +129 -0
  131. package/node_modules/@nklisch/pi-clearance/src/config/config-command-plans.ts +918 -0
  132. package/node_modules/@nklisch/pi-clearance/src/config/config-command-writer.ts +582 -0
  133. package/node_modules/@nklisch/pi-clearance/src/config/loader.ts +904 -0
  134. package/node_modules/@nklisch/pi-clearance/src/config/pack-enablement-writer.ts +467 -0
  135. package/node_modules/@nklisch/pi-clearance/src/config/path-scope.ts +199 -0
  136. package/node_modules/@nklisch/pi-clearance/src/config/paths.ts +62 -0
  137. package/node_modules/@nklisch/pi-clearance/src/config/schema.ts +411 -0
  138. package/node_modules/@nklisch/pi-clearance/src/contracts/AdversarialCase.ts +15 -0
  139. package/node_modules/@nklisch/pi-clearance/src/contracts/AdversarialCaseCategory.ts +13 -0
  140. package/node_modules/@nklisch/pi-clearance/src/contracts/AdversarialCaseExpectation.ts +7 -0
  141. package/node_modules/@nklisch/pi-clearance/src/contracts/AdversarialCaseResult.ts +18 -0
  142. package/node_modules/@nklisch/pi-clearance/src/contracts/AdversarialCaseResultOutcome.ts +8 -0
  143. package/node_modules/@nklisch/pi-clearance/src/contracts/AdversarialCaseSource.ts +7 -0
  144. package/node_modules/@nklisch/pi-clearance/src/contracts/AdversarialValidationReport.ts +20 -0
  145. package/node_modules/@nklisch/pi-clearance/src/contracts/AdversarialValidationStatus.ts +4 -0
  146. package/node_modules/@nklisch/pi-clearance/src/contracts/BashBlock.ts +12 -0
  147. package/node_modules/@nklisch/pi-clearance/src/contracts/BashCommandShape.ts +16 -0
  148. package/node_modules/@nklisch/pi-clearance/src/contracts/BashConditionalArm.ts +12 -0
  149. package/node_modules/@nklisch/pi-clearance/src/contracts/BashControlConstruct.ts +12 -0
  150. package/node_modules/@nklisch/pi-clearance/src/contracts/BashFlag.ts +11 -0
  151. package/node_modules/@nklisch/pi-clearance/src/contracts/BashForLoopKeywordSpans.ts +10 -0
  152. package/node_modules/@nklisch/pi-clearance/src/contracts/BashIteratorEntry.ts +13 -0
  153. package/node_modules/@nklisch/pi-clearance/src/contracts/BashIteratorEntryKind.ts +4 -0
  154. package/node_modules/@nklisch/pi-clearance/src/contracts/BashListOperator.ts +4 -0
  155. package/node_modules/@nklisch/pi-clearance/src/contracts/BashLoopVariableReference.ts +11 -0
  156. package/node_modules/@nklisch/pi-clearance/src/contracts/BashPathFact.ts +33 -0
  157. package/node_modules/@nklisch/pi-clearance/src/contracts/BashPathFactContext.ts +10 -0
  158. package/node_modules/@nklisch/pi-clearance/src/contracts/BashPathFactProvenance.ts +14 -0
  159. package/node_modules/@nklisch/pi-clearance/src/contracts/BashPathFactProvenanceEntry.ts +16 -0
  160. package/node_modules/@nklisch/pi-clearance/src/contracts/BashPathFacts.ts +14 -0
  161. package/node_modules/@nklisch/pi-clearance/src/contracts/BashPipeline.ts +10 -0
  162. package/node_modules/@nklisch/pi-clearance/src/contracts/BashStage.ts +45 -0
  163. package/node_modules/@nklisch/pi-clearance/src/contracts/BashStageProgram.ts +16 -0
  164. package/node_modules/@nklisch/pi-clearance/src/contracts/BlockOperator.ts +4 -0
  165. package/node_modules/@nklisch/pi-clearance/src/contracts/CapturedOutcome.ts +12 -0
  166. package/node_modules/@nklisch/pi-clearance/src/contracts/CommandFamilyKey.ts +16 -0
  167. package/node_modules/@nklisch/pi-clearance/src/contracts/CommandFamilySummary.ts +20 -0
  168. package/node_modules/@nklisch/pi-clearance/src/contracts/CompileError.ts +9 -0
  169. package/node_modules/@nklisch/pi-clearance/src/contracts/CompositionOperator.ts +4 -0
  170. package/node_modules/@nklisch/pi-clearance/src/contracts/CompoundBodyReason.ts +7 -0
  171. package/node_modules/@nklisch/pi-clearance/src/contracts/CompoundFeatureReason.ts +10 -0
  172. package/node_modules/@nklisch/pi-clearance/src/contracts/CompoundForm.ts +4 -0
  173. package/node_modules/@nklisch/pi-clearance/src/contracts/CompoundIteratorReason.ts +11 -0
  174. package/node_modules/@nklisch/pi-clearance/src/contracts/CorpusEntry.ts +23 -0
  175. package/node_modules/@nklisch/pi-clearance/src/contracts/CorpusExpectedLabel.ts +4 -0
  176. package/node_modules/@nklisch/pi-clearance/src/contracts/CorpusFidelity.ts +4 -0
  177. package/node_modules/@nklisch/pi-clearance/src/contracts/CorpusQueryModel.ts +12 -0
  178. package/node_modules/@nklisch/pi-clearance/src/contracts/CorpusQuerySummary.ts +16 -0
  179. package/node_modules/@nklisch/pi-clearance/src/contracts/CorpusQuerySummarySnapshot.ts +11 -0
  180. package/node_modules/@nklisch/pi-clearance/src/contracts/CorpusRecord.ts +21 -0
  181. package/node_modules/@nklisch/pi-clearance/src/contracts/CorpusSource.ts +4 -0
  182. package/node_modules/@nklisch/pi-clearance/src/contracts/CountByLabel.ts +8 -0
  183. package/node_modules/@nklisch/pi-clearance/src/contracts/Decision.ts +10 -0
  184. package/node_modules/@nklisch/pi-clearance/src/contracts/DecisionEffect.ts +4 -0
  185. package/node_modules/@nklisch/pi-clearance/src/contracts/DecisionProvenance.ts +9 -0
  186. package/node_modules/@nklisch/pi-clearance/src/contracts/DecisionSource.ts +11 -0
  187. package/node_modules/@nklisch/pi-clearance/src/contracts/DiagnosticSeverity.ts +4 -0
  188. package/node_modules/@nklisch/pi-clearance/src/contracts/EffectivePolicy.ts +9 -0
  189. package/node_modules/@nklisch/pi-clearance/src/contracts/EmbeddedShellProjection.ts +13 -0
  190. package/node_modules/@nklisch/pi-clearance/src/contracts/EnvironmentAssignment.ts +9 -0
  191. package/node_modules/@nklisch/pi-clearance/src/contracts/IteratorSourceKind.ts +8 -0
  192. package/node_modules/@nklisch/pi-clearance/src/contracts/LoopQuoteKind.ts +4 -0
  193. package/node_modules/@nklisch/pi-clearance/src/contracts/LoopVariableUnknownReason.ts +7 -0
  194. package/node_modules/@nklisch/pi-clearance/src/contracts/MatcherExpr.ts +103 -0
  195. package/node_modules/@nklisch/pi-clearance/src/contracts/MutationShapeKind.ts +4 -0
  196. package/node_modules/@nklisch/pi-clearance/src/contracts/MutationTrustBoundaryClassification.ts +8 -0
  197. package/node_modules/@nklisch/pi-clearance/src/contracts/MutationTrustBoundaryKind.ts +13 -0
  198. package/node_modules/@nklisch/pi-clearance/src/contracts/PackCompileResult.ts +9 -0
  199. package/node_modules/@nklisch/pi-clearance/src/contracts/PackWarningLevel.ts +4 -0
  200. package/node_modules/@nklisch/pi-clearance/src/contracts/ParsedEvidence.ts +13 -0
  201. package/node_modules/@nklisch/pi-clearance/src/contracts/ParsedShapeSummary.ts +16 -0
  202. package/node_modules/@nklisch/pi-clearance/src/contracts/PathAccess.ts +10 -0
  203. package/node_modules/@nklisch/pi-clearance/src/contracts/PathFactProjectScope.ts +13 -0
  204. package/node_modules/@nklisch/pi-clearance/src/contracts/PathFactsRequirement.ts +7 -0
  205. package/node_modules/@nklisch/pi-clearance/src/contracts/PathFactsResolvedConfig.ts +9 -0
  206. package/node_modules/@nklisch/pi-clearance/src/contracts/PathNormalization.ts +4 -0
  207. package/node_modules/@nklisch/pi-clearance/src/contracts/PathScope.ts +15 -0
  208. package/node_modules/@nklisch/pi-clearance/src/contracts/PathScopeMatcherExpr.ts +17 -0
  209. package/node_modules/@nklisch/pi-clearance/src/contracts/PathScopeMatcherMode.ts +4 -0
  210. package/node_modules/@nklisch/pi-clearance/src/contracts/PathUnknownReason.ts +12 -0
  211. package/node_modules/@nklisch/pi-clearance/src/contracts/PathUsageKind.ts +9 -0
  212. package/node_modules/@nklisch/pi-clearance/src/contracts/PiBuiltinToolOperation.ts +16 -0
  213. package/node_modules/@nklisch/pi-clearance/src/contracts/PiBuiltinToolPathInput.ts +8 -0
  214. package/node_modules/@nklisch/pi-clearance/src/contracts/PiBuiltinToolShape.ts +22 -0
  215. package/node_modules/@nklisch/pi-clearance/src/contracts/PiBuiltinToolSpec.ts +10 -0
  216. package/node_modules/@nklisch/pi-clearance/src/contracts/PiFileMutationToolName.ts +4 -0
  217. package/node_modules/@nklisch/pi-clearance/src/contracts/PiToolMutationFacts.ts +19 -0
  218. package/node_modules/@nklisch/pi-clearance/src/contracts/PolicyPack.ts +11 -0
  219. package/node_modules/@nklisch/pi-clearance/src/contracts/PolicyPackDocLink.ts +4 -0
  220. package/node_modules/@nklisch/pi-clearance/src/contracts/PolicyPackExample.ts +9 -0
  221. package/node_modules/@nklisch/pi-clearance/src/contracts/PolicyPackMetadata.ts +14 -0
  222. package/node_modules/@nklisch/pi-clearance/src/contracts/PolicyPackWarning.ts +5 -0
  223. package/node_modules/@nklisch/pi-clearance/src/contracts/PolicyRule.ts +13 -0
  224. package/node_modules/@nklisch/pi-clearance/src/contracts/ProposalNotRunReason.ts +10 -0
  225. package/node_modules/@nklisch/pi-clearance/src/contracts/ProposalNotRunSeverity.ts +4 -0
  226. package/node_modules/@nklisch/pi-clearance/src/contracts/QuoteKind.ts +4 -0
  227. package/node_modules/@nklisch/pi-clearance/src/contracts/Redirect.ts +13 -0
  228. package/node_modules/@nklisch/pi-clearance/src/contracts/RedirectStream.ts +4 -0
  229. package/node_modules/@nklisch/pi-clearance/src/contracts/RedirectTargetKind.ts +4 -0
  230. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayCorpus.ts +14 -0
  231. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayDelta.ts +28 -0
  232. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayDeltaBlockedSummary.ts +11 -0
  233. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayDeltaChangedRecord.ts +19 -0
  234. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayDeltaFamily.ts +24 -0
  235. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayDeltaImprovement.ts +10 -0
  236. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayDeltaRegression.ts +10 -0
  237. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayDeltaStatus.ts +4 -0
  238. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayDeltaTransitionCount.ts +8 -0
  239. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayPathFacts.ts +6 -0
  240. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayReviewerMode.ts +8 -0
  241. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayReviewerOutcome.ts +9 -0
  242. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayStatus.ts +4 -0
  243. package/node_modules/@nklisch/pi-clearance/src/contracts/ReplayedDecision.ts +12 -0
  244. package/node_modules/@nklisch/pi-clearance/src/contracts/ShapeDiagnostic.ts +11 -0
  245. package/node_modules/@nklisch/pi-clearance/src/contracts/SourceFidelity.ts +13 -0
  246. package/node_modules/@nklisch/pi-clearance/src/contracts/SourceSpan.ts +4 -0
  247. package/node_modules/@nklisch/pi-clearance/src/contracts/Substitution.ts +10 -0
  248. package/node_modules/@nklisch/pi-clearance/src/contracts/SubstitutionKind.ts +4 -0
  249. package/node_modules/@nklisch/pi-clearance/src/contracts/ToolCallIdentity.ts +12 -0
  250. package/node_modules/@nklisch/pi-clearance/src/contracts/ToolPathAccess.ts +4 -0
  251. package/node_modules/@nklisch/pi-clearance/src/contracts/ToolPathFact.ts +25 -0
  252. package/node_modules/@nklisch/pi-clearance/src/contracts/ToolPathFactContext.ts +10 -0
  253. package/node_modules/@nklisch/pi-clearance/src/contracts/ToolPathFacts.ts +13 -0
  254. package/node_modules/@nklisch/pi-clearance/src/contracts/ToolPathUsage.ts +4 -0
  255. package/node_modules/@nklisch/pi-clearance/src/contracts/ToolShape.ts +10 -0
  256. package/node_modules/@nklisch/pi-clearance/src/contracts/UnknownPathBehavior.ts +4 -0
  257. package/node_modules/@nklisch/pi-clearance/src/contracts/UnknownToolShape.ts +10 -0
  258. package/node_modules/@nklisch/pi-clearance/src/contracts/index.ts +121 -0
  259. package/node_modules/@nklisch/pi-clearance/src/index.ts +192 -0
  260. package/node_modules/@nklisch/pi-clearance/src/native/loader.ts +582 -0
  261. package/node_modules/@nklisch/pi-clearance/src/packs/activation.ts +65 -0
  262. package/node_modules/@nklisch/pi-clearance/src/packs/baseline.ts +53 -0
  263. package/node_modules/@nklisch/pi-clearance/src/packs/bash.compound.read.ts +30 -0
  264. package/node_modules/@nklisch/pi-clearance/src/packs/bash.dev.verify.ts +879 -0
  265. package/node_modules/@nklisch/pi-clearance/src/packs/bash.inspect.core.ts +193 -0
  266. package/node_modules/@nklisch/pi-clearance/src/packs/bash.network.read.ts +243 -0
  267. package/node_modules/@nklisch/pi-clearance/src/packs/bash.packages.common.ts +351 -0
  268. package/node_modules/@nklisch/pi-clearance/src/packs/bash.project.constructive.ts +60 -0
  269. package/node_modules/@nklisch/pi-clearance/src/packs/bash.review.compound.ts +82 -0
  270. package/node_modules/@nklisch/pi-clearance/src/packs/bash.review.risky.ts +367 -0
  271. package/node_modules/@nklisch/pi-clearance/src/packs/bash.search.read.ts +206 -0
  272. package/node_modules/@nklisch/pi-clearance/src/packs/bash.shell.builtins.ts +138 -0
  273. package/node_modules/@nklisch/pi-clearance/src/packs/bash.structure.safe.ts +118 -0
  274. package/node_modules/@nklisch/pi-clearance/src/packs/bash.system.read.ts +187 -0
  275. package/node_modules/@nklisch/pi-clearance/src/packs/bash.vcs.read.ts +476 -0
  276. package/node_modules/@nklisch/pi-clearance/src/packs/bash.vcs.write.ts +116 -0
  277. package/node_modules/@nklisch/pi-clearance/src/packs/composition-families.ts +101 -0
  278. package/node_modules/@nklisch/pi-clearance/src/packs/condition-guards.ts +56 -0
  279. package/node_modules/@nklisch/pi-clearance/src/packs/define.ts +14 -0
  280. package/node_modules/@nklisch/pi-clearance/src/packs/enablement-command.ts +186 -0
  281. package/node_modules/@nklisch/pi-clearance/src/packs/enablement.ts +814 -0
  282. package/node_modules/@nklisch/pi-clearance/src/packs/floor.ts +142 -0
  283. package/node_modules/@nklisch/pi-clearance/src/packs/package-contract.ts +514 -0
  284. package/node_modules/@nklisch/pi-clearance/src/packs/package-registration.ts +299 -0
  285. package/node_modules/@nklisch/pi-clearance/src/packs/pi.extension.inspect.ts +416 -0
  286. package/node_modules/@nklisch/pi-clearance/src/packs/pi.file.mutate.ts +55 -0
  287. package/node_modules/@nklisch/pi-clearance/src/packs/pi.home.safe.ts +78 -0
  288. package/node_modules/@nklisch/pi-clearance/src/packs/pi.inspect.read.ts +41 -0
  289. package/node_modules/@nklisch/pi-clearance/src/packs/redirect-safety.ts +22 -0
  290. package/node_modules/@nklisch/pi-clearance/src/packs/registry.ts +1062 -0
  291. package/node_modules/@nklisch/pi-clearance/src/packs/validation.ts +1022 -0
  292. package/node_modules/@nklisch/pi-clearance/src/parse/native-effects.ts +49 -0
  293. package/node_modules/@nklisch/pi-clearance/src/parse/native-mutation.ts +20 -0
  294. package/node_modules/@nklisch/pi-clearance/src/parse/native-parser.ts +7 -0
  295. package/node_modules/@nklisch/pi-clearance/src/parse/native-path-facts.ts +190 -0
  296. package/node_modules/@nklisch/pi-clearance/src/parse/native-tool.ts +57 -0
  297. package/node_modules/@nklisch/pi-clearance/src/parse/registry.ts +107 -0
  298. package/node_modules/@nklisch/pi-clearance/src/parse/shape-utils.ts +136 -0
  299. package/node_modules/@nklisch/pi-clearance/src/parse/shape.ts +155 -0
  300. package/node_modules/@nklisch/pi-clearance/src/parse/tool-specs.ts +101 -0
  301. package/node_modules/@nklisch/pi-clearance/src/policy/composer.ts +333 -0
  302. package/node_modules/@nklisch/pi-clearance/src/policy/core.ts +1096 -0
  303. package/node_modules/@nklisch/pi-clearance/src/policy/loader.ts +50 -0
  304. package/node_modules/@nklisch/pi-clearance/src/policy/scope-behavior-pack.ts +101 -0
  305. package/node_modules/@nklisch/pi-clearance/src/replay/adversarial.ts +717 -0
  306. package/node_modules/@nklisch/pi-clearance/src/replay/authoring-proposal-adapter.ts +549 -0
  307. package/node_modules/@nklisch/pi-clearance/src/replay/batch-card.ts +333 -0
  308. package/node_modules/@nklisch/pi-clearance/src/replay/command-family-primitives.ts +235 -0
  309. package/node_modules/@nklisch/pi-clearance/src/replay/command-family.ts +8 -0
  310. package/node_modules/@nklisch/pi-clearance/src/replay/config-proposal-adapter.ts +888 -0
  311. package/node_modules/@nklisch/pi-clearance/src/replay/corpus-model.ts +435 -0
  312. package/node_modules/@nklisch/pi-clearance/src/replay/corpus-query.ts +647 -0
  313. package/node_modules/@nklisch/pi-clearance/src/replay/history.ts +653 -0
  314. package/node_modules/@nklisch/pi-clearance/src/replay/native-kernels.ts +207 -0
  315. package/node_modules/@nklisch/pi-clearance/src/replay/not-run-reasons.ts +80 -0
  316. package/node_modules/@nklisch/pi-clearance/src/replay/pack-enablement-proposal.ts +283 -0
  317. package/node_modules/@nklisch/pi-clearance/src/replay/policy-proposal-adapter.ts +755 -0
  318. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-acknowledgements.ts +56 -0
  319. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-approval.ts +506 -0
  320. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-batch.ts +368 -0
  321. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-candidate-policy.ts +129 -0
  322. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-card.ts +1086 -0
  323. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-draft.ts +215 -0
  324. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-grouping.ts +164 -0
  325. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-replay-delta.ts +697 -0
  326. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-schema.ts +1254 -0
  327. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-validation-display.ts +23 -0
  328. package/node_modules/@nklisch/pi-clearance/src/replay/proposal-write-plan.ts +840 -0
  329. package/node_modules/@nklisch/pi-clearance/src/replay/proposals.ts +2113 -0
  330. package/node_modules/@nklisch/pi-clearance/src/replay/ratchet-markdown.ts +330 -0
  331. package/node_modules/@nklisch/pi-clearance/src/replay/ratchet.ts +905 -0
  332. package/node_modules/@nklisch/pi-clearance/src/replay/reader.ts +163 -0
  333. package/node_modules/@nklisch/pi-clearance/src/replay/rendering-format.ts +98 -0
  334. package/node_modules/@nklisch/pi-clearance/src/replay/replay-delta.ts +209 -0
  335. package/node_modules/@nklisch/pi-clearance/src/replay/reviewer-config-proposals.ts +1790 -0
  336. package/node_modules/@nklisch/pi-clearance/src/replay/sources/audit-log.ts +338 -0
  337. package/node_modules/@nklisch/pi-clearance/src/replay/sources/corpus-fixtures.ts +164 -0
  338. package/node_modules/@nklisch/pi-clearance/src/replay/sources/session-history.ts +258 -0
  339. package/node_modules/@nklisch/pi-clearance/src/replay/structured-markdown.ts +804 -0
  340. package/node_modules/@nklisch/pi-clearance/src/runtime/auto-reviewer-read-models.ts +894 -0
  341. package/node_modules/@nklisch/pi-clearance/src/runtime/command-registry.ts +366 -0
  342. package/node_modules/@nklisch/pi-clearance/src/runtime/command-transforms.ts +373 -0
  343. package/node_modules/@nklisch/pi-clearance/src/runtime/compound-recovery.ts +366 -0
  344. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/allow.ts +529 -0
  345. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/packs.ts +1531 -0
  346. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/post-write-validation.ts +187 -0
  347. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/scope.ts +865 -0
  348. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/actions.ts +62 -0
  349. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/dispatcher.ts +809 -0
  350. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/native-ui.ts +1060 -0
  351. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/panels/briefing.ts +172 -0
  352. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/panels/packs.ts +120 -0
  353. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/panels/reviewer.ts +83 -0
  354. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/panels/scope.ts +312 -0
  355. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/panels.ts +92 -0
  356. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings/read-model.ts +167 -0
  357. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/settings.ts +225 -0
  358. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/setup.ts +135 -0
  359. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/status.ts +64 -0
  360. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/tune-cue.ts +50 -0
  361. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/tune.ts +135 -0
  362. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/types.ts +163 -0
  363. package/node_modules/@nklisch/pi-clearance/src/runtime/config-commands/why.ts +253 -0
  364. package/node_modules/@nklisch/pi-clearance/src/runtime/duration.ts +49 -0
  365. package/node_modules/@nklisch/pi-clearance/src/runtime/escalation.ts +104 -0
  366. package/node_modules/@nklisch/pi-clearance/src/runtime/handler.ts +412 -0
  367. package/node_modules/@nklisch/pi-clearance/src/runtime/human-review-card.ts +278 -0
  368. package/node_modules/@nklisch/pi-clearance/src/runtime/markdown.ts +13 -0
  369. package/node_modules/@nklisch/pi-clearance/src/runtime/mode-prompt.ts +47 -0
  370. package/node_modules/@nklisch/pi-clearance/src/runtime/model-adapter.ts +248 -0
  371. package/node_modules/@nklisch/pi-clearance/src/runtime/operator-status.ts +125 -0
  372. package/node_modules/@nklisch/pi-clearance/src/runtime/policy-cache.ts +280 -0
  373. package/node_modules/@nklisch/pi-clearance/src/runtime/proposal-tools/apply-engine.ts +1030 -0
  374. package/node_modules/@nklisch/pi-clearance/src/runtime/proposal-tools/ids.ts +7 -0
  375. package/node_modules/@nklisch/pi-clearance/src/runtime/proposal-tools/index.ts +48 -0
  376. package/node_modules/@nklisch/pi-clearance/src/runtime/proposal-tools/present.ts +651 -0
  377. package/node_modules/@nklisch/pi-clearance/src/runtime/proposal-tools/propose.ts +223 -0
  378. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-mode.ts +243 -0
  379. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/adversarial.ts +437 -0
  380. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/analysis.ts +64 -0
  381. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/approval-audit.ts +96 -0
  382. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/batch-cache.ts +40 -0
  383. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/history.ts +496 -0
  384. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/ids.ts +13 -0
  385. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/index.ts +58 -0
  386. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/package-candidates.ts +185 -0
  387. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/packs.ts +196 -0
  388. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/post-write-replay.ts +179 -0
  389. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/presentation.ts +15 -0
  390. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/proposals.ts +805 -0
  391. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/replay.ts +918 -0
  392. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/result.ts +72 -0
  393. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/status.ts +173 -0
  394. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/types.ts +16 -0
  395. package/node_modules/@nklisch/pi-clearance/src/runtime/ratchet-tools/validation.ts +620 -0
  396. package/node_modules/@nklisch/pi-clearance/src/runtime/review-decision-display.ts +143 -0
  397. package/node_modules/@nklisch/pi-clearance/src/runtime/review-visibility.ts +463 -0
  398. package/node_modules/@nklisch/pi-clearance/src/runtime/reviewer-context-adapter.ts +299 -0
  399. package/node_modules/@nklisch/pi-clearance/src/runtime/reviewer-context.ts +443 -0
  400. package/node_modules/@nklisch/pi-clearance/src/runtime/reviewer-model.ts +141 -0
  401. package/node_modules/@nklisch/pi-clearance/src/runtime/reviewer-prompts.ts +238 -0
  402. package/node_modules/@nklisch/pi-clearance/src/runtime/reviewer-shape-summary.ts +301 -0
  403. package/node_modules/@nklisch/pi-clearance/src/runtime/reviewer.ts +850 -0
  404. package/node_modules/@nklisch/pi-clearance/src/runtime/sink.ts +38 -0
  405. package/node_modules/@nklisch/pi-clearance/src/runtime/token-budget.ts +95 -0
  406. package/node_modules/@nklisch/pi-clearance/src/runtime/transform-contract.ts +259 -0
  407. package/node_modules/@nklisch/pi-clearance/src/skill/clearance-pack-authoring/SKILL.md +51 -0
  408. package/node_modules/@nklisch/pi-clearance/src/skill/clearance-tune/SKILL.md +112 -0
  409. package/node_modules/@nklisch/pi-clearance/src/skill/clearance-tune/apply-writer.ts +413 -0
  410. package/node_modules/@nklisch/pi-clearance/src/skill/clearance-tune/cli.ts +1154 -0
  411. package/node_modules/@nklisch/pi-clearance/src/skill/clearance-tune/presentation.ts +423 -0
  412. package/node_modules/@nklisch/pi-clearance/src/skill/clearance-tune/structured-presentation.ts +106 -0
  413. package/node_modules/@nklisch/pi-clearance/src/skill/clearance-tune/verify.ts +238 -0
  414. package/node_modules/@nklisch/pi-conveniences/README.md +20 -0
  415. package/node_modules/@nklisch/pi-conveniences/extensions/agents-context.test.ts +140 -0
  416. package/node_modules/@nklisch/pi-conveniences/extensions/agents-context.ts +97 -0
  417. package/node_modules/@nklisch/pi-conveniences/extensions/context-window-footer.test.ts +30 -0
  418. package/node_modules/@nklisch/pi-conveniences/extensions/context-window-footer.ts +464 -0
  419. package/node_modules/@nklisch/pi-conveniences/extensions/exit.test.ts +44 -0
  420. package/node_modules/@nklisch/pi-conveniences/extensions/exit.ts +38 -0
  421. package/node_modules/@nklisch/pi-conveniences/extensions/model-list.test.ts +34 -0
  422. package/node_modules/@nklisch/pi-conveniences/extensions/model-list.ts +297 -0
  423. package/node_modules/@nklisch/pi-conveniences/package.json +48 -0
  424. package/node_modules/@nklisch/pi-fff-compat/README.md +41 -0
  425. package/node_modules/@nklisch/pi-fff-compat/extensions/fff-compat-search.test.ts +76 -0
  426. package/node_modules/@nklisch/pi-fff-compat/extensions/fff-compat-search.ts +641 -0
  427. package/node_modules/@nklisch/pi-fff-compat/package.json +51 -0
  428. package/node_modules/@nklisch/pi-model-modes/LICENSE +21 -0
  429. package/node_modules/@nklisch/pi-model-modes/README.md +259 -0
  430. package/node_modules/@nklisch/pi-model-modes/extensions/index.ts +62 -0
  431. package/node_modules/@nklisch/pi-model-modes/package.json +59 -0
  432. package/node_modules/@nklisch/pi-model-modes/presets.json +93 -0
  433. package/node_modules/@nklisch/pi-model-modes/prompts/axis/agency/autonomous.md +17 -0
  434. package/node_modules/@nklisch/pi-model-modes/prompts/axis/agency/collaborative.md +16 -0
  435. package/node_modules/@nklisch/pi-model-modes/prompts/axis/agency/partner.md +22 -0
  436. package/node_modules/@nklisch/pi-model-modes/prompts/axis/agency/surgical.md +14 -0
  437. package/node_modules/@nklisch/pi-model-modes/prompts/axis/quality/architect.md +8 -0
  438. package/node_modules/@nklisch/pi-model-modes/prompts/axis/quality/minimal.md +8 -0
  439. package/node_modules/@nklisch/pi-model-modes/prompts/axis/quality/pragmatic.md +8 -0
  440. package/node_modules/@nklisch/pi-model-modes/prompts/axis/scope/adjacent.md +15 -0
  441. package/node_modules/@nklisch/pi-model-modes/prompts/axis/scope/narrow.md +15 -0
  442. package/node_modules/@nklisch/pi-model-modes/prompts/axis/scope/unrestricted.md +14 -0
  443. package/node_modules/@nklisch/pi-model-modes/prompts/base/chill.md +6 -0
  444. package/node_modules/@nklisch/pi-model-modes/prompts/base/flow.md +7 -0
  445. package/node_modules/@nklisch/pi-model-modes/prompts/base/pi-direct.md +4 -0
  446. package/node_modules/@nklisch/pi-model-modes/prompts/base.json +3 -0
  447. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/bold.md +8 -0
  448. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/context-pacing.md +13 -0
  449. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/debug.md +11 -0
  450. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/director.md +14 -0
  451. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/flow.md +10 -0
  452. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/methodical.md +9 -0
  453. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/muse.md +13 -0
  454. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/playful.md +11 -0
  455. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/readonly.md +9 -0
  456. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/speak-plain.md +14 -0
  457. package/node_modules/@nklisch/pi-model-modes/prompts/modifiers/tdd.md +10 -0
  458. package/node_modules/@nklisch/pi-model-modes/prompts/styles/clear.md +3 -0
  459. package/node_modules/@nklisch/pi-model-modes/prompts/styles/compact.md +3 -0
  460. package/node_modules/@nklisch/pi-model-modes/prompts/styles/explanatory.md +3 -0
  461. package/node_modules/@nklisch/pi-model-modes/prompts/styles/expressive.md +3 -0
  462. package/node_modules/@nklisch/pi-model-modes/src/assemble.ts +41 -0
  463. package/node_modules/@nklisch/pi-model-modes/src/autocomplete.ts +167 -0
  464. package/node_modules/@nklisch/pi-model-modes/src/cache.ts +244 -0
  465. package/node_modules/@nklisch/pi-model-modes/src/command-parse-utils.ts +73 -0
  466. package/node_modules/@nklisch/pi-model-modes/src/commands.ts +629 -0
  467. package/node_modules/@nklisch/pi-model-modes/src/config.ts +661 -0
  468. package/node_modules/@nklisch/pi-model-modes/src/footer.ts +200 -0
  469. package/node_modules/@nklisch/pi-model-modes/src/fragments.ts +178 -0
  470. package/node_modules/@nklisch/pi-model-modes/src/handler.ts +113 -0
  471. package/node_modules/@nklisch/pi-model-modes/src/identity.ts +16 -0
  472. package/node_modules/@nklisch/pi-model-modes/src/keybinding.ts +117 -0
  473. package/node_modules/@nklisch/pi-model-modes/src/presets.ts +319 -0
  474. package/node_modules/@nklisch/pi-model-modes/src/provider-names.ts +92 -0
  475. package/node_modules/@nklisch/pi-model-modes/src/resolver.ts +332 -0
  476. package/node_modules/@nklisch/pi-model-modes/src/style-autocomplete.ts +106 -0
  477. package/node_modules/@nklisch/pi-model-modes/src/style-command.ts +239 -0
  478. package/node_modules/@nklisch/pi-model-modes/src/style.ts +252 -0
  479. package/node_modules/@nklisch/pi-plugins/LICENSE +21 -0
  480. package/node_modules/@nklisch/pi-plugins/README.md +70 -0
  481. package/node_modules/@nklisch/pi-plugins/dist/application/abort-rejection.d.ts +1 -0
  482. package/node_modules/@nklisch/pi-plugins/dist/application/abort-rejection.js +7 -0
  483. package/node_modules/@nklisch/pi-plugins/dist/application/abort-rejection.js.map +1 -0
  484. package/node_modules/@nklisch/pi-plugins/dist/application/adoption-contract.d.ts +1531 -0
  485. package/node_modules/@nklisch/pi-plugins/dist/application/adoption-contract.js +135 -0
  486. package/node_modules/@nklisch/pi-plugins/dist/application/adoption-contract.js.map +1 -0
  487. package/node_modules/@nklisch/pi-plugins/dist/application/adoption-service.d.ts +25 -0
  488. package/node_modules/@nklisch/pi-plugins/dist/application/adoption-service.js +234 -0
  489. package/node_modules/@nklisch/pi-plugins/dist/application/adoption-service.js.map +1 -0
  490. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-authorization.d.ts +49 -0
  491. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-authorization.js +93 -0
  492. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-authorization.js.map +1 -0
  493. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.d.ts +30 -0
  494. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js +240 -0
  495. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-coordinator.js.map +1 -0
  496. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.d.ts +46 -0
  497. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js +25 -0
  498. package/node_modules/@nklisch/pi-plugins/dist/application/automatic-update-eligibility.js.map +1 -0
  499. package/node_modules/@nklisch/pi-plugins/dist/application/bundle-reconciler.d.ts +49 -0
  500. package/node_modules/@nklisch/pi-plugins/dist/application/bundle-reconciler.js +603 -0
  501. package/node_modules/@nklisch/pi-plugins/dist/application/bundle-reconciler.js.map +1 -0
  502. package/node_modules/@nklisch/pi-plugins/dist/application/compatibility-service.d.ts +12 -0
  503. package/node_modules/@nklisch/pi-plugins/dist/application/compatibility-service.js +79 -0
  504. package/node_modules/@nklisch/pi-plugins/dist/application/compatibility-service.js.map +1 -0
  505. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-resolver.d.ts +48 -0
  506. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-resolver.js +293 -0
  507. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-resolver.js.map +1 -0
  508. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.d.ts +113 -0
  509. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.js +492 -0
  510. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-service.js.map +1 -0
  511. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-validation.d.ts +75 -0
  512. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-validation.js +505 -0
  513. package/node_modules/@nklisch/pi-plugins/dist/application/configuration-validation.js.map +1 -0
  514. package/node_modules/@nklisch/pi-plugins/dist/application/confirmed-uninstall-cleanup.d.ts +49 -0
  515. package/node_modules/@nklisch/pi-plugins/dist/application/confirmed-uninstall-cleanup.js +52 -0
  516. package/node_modules/@nklisch/pi-plugins/dist/application/confirmed-uninstall-cleanup.js.map +1 -0
  517. package/node_modules/@nklisch/pi-plugins/dist/application/content-index.d.ts +22 -0
  518. package/node_modules/@nklisch/pi-plugins/dist/application/content-index.js +87 -0
  519. package/node_modules/@nklisch/pi-plugins/dist/application/content-index.js.map +1 -0
  520. package/node_modules/@nklisch/pi-plugins/dist/application/content-promotion.d.ts +24 -0
  521. package/node_modules/@nklisch/pi-plugins/dist/application/content-promotion.js +131 -0
  522. package/node_modules/@nklisch/pi-plugins/dist/application/content-promotion.js.map +1 -0
  523. package/node_modules/@nklisch/pi-plugins/dist/application/current-scope-authority.d.ts +24 -0
  524. package/node_modules/@nklisch/pi-plugins/dist/application/current-scope-authority.js +51 -0
  525. package/node_modules/@nklisch/pi-plugins/dist/application/current-scope-authority.js.map +1 -0
  526. package/node_modules/@nklisch/pi-plugins/dist/application/discovery-plan.d.ts +162 -0
  527. package/node_modules/@nklisch/pi-plugins/dist/application/discovery-plan.js +353 -0
  528. package/node_modules/@nklisch/pi-plugins/dist/application/discovery-plan.js.map +1 -0
  529. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.d.ts +41 -0
  530. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.js +146 -0
  531. package/node_modules/@nklisch/pi-plugins/dist/application/exact-trust-grant-service.js.map +1 -0
  532. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.d.ts +79 -0
  533. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.js +424 -0
  534. package/node_modules/@nklisch/pi-plugins/dist/application/generation-mutation-coordinator.js.map +1 -0
  535. package/node_modules/@nklisch/pi-plugins/dist/application/hook-execution-context.d.ts +2 -0
  536. package/node_modules/@nklisch/pi-plugins/dist/application/hook-execution-context.js +149 -0
  537. package/node_modules/@nklisch/pi-plugins/dist/application/hook-execution-context.js.map +1 -0
  538. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.d.ts +177 -0
  539. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.js +45 -0
  540. package/node_modules/@nklisch/pi-plugins/dist/application/host-observation-contract.js.map +1 -0
  541. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-contract.d.ts +50 -0
  542. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-contract.js +28 -0
  543. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-contract.js.map +1 -0
  544. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.d.ts +27 -0
  545. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.js +72 -0
  546. package/node_modules/@nklisch/pi-plugins/dist/application/host-precedence-service.js.map +1 -0
  547. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-contract.d.ts +1289 -0
  548. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-contract.js +56 -0
  549. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-contract.js.map +1 -0
  550. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-failure-projection.d.ts +26 -0
  551. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-failure-projection.js +137 -0
  552. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-failure-projection.js.map +1 -0
  553. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-service.d.ts +22 -0
  554. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-service.js +754 -0
  555. package/node_modules/@nklisch/pi-plugins/dist/application/inspection-service.js.map +1 -0
  556. package/node_modules/@nklisch/pi-plugins/dist/application/installed-revision-descriptor.d.ts +972 -0
  557. package/node_modules/@nklisch/pi-plugins/dist/application/installed-revision-descriptor.js +51 -0
  558. package/node_modules/@nklisch/pi-plugins/dist/application/installed-revision-descriptor.js.map +1 -0
  559. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.d.ts +19 -0
  560. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.js +235 -0
  561. package/node_modules/@nklisch/pi-plugins/dist/application/keyed-mutation-scheduler.js.map +1 -0
  562. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.d.ts +76 -0
  563. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js +236 -0
  564. package/node_modules/@nklisch/pi-plugins/dist/application/lifecycle-transition-reconciler.js.map +1 -0
  565. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-catalog-contract.d.ts +568 -0
  566. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-catalog-contract.js +91 -0
  567. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-catalog-contract.js.map +1 -0
  568. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-catalog-service.d.ts +55 -0
  569. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-catalog-service.js +327 -0
  570. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-catalog-service.js.map +1 -0
  571. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-contract.d.ts +575 -0
  572. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-contract.js +7 -0
  573. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-contract.js.map +1 -0
  574. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-service.d.ts +13 -0
  575. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-service.js +105 -0
  576. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-inspection-service.js.map +1 -0
  577. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-management-contract.d.ts +844 -0
  578. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-management-contract.js +106 -0
  579. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-management-contract.js.map +1 -0
  580. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.d.ts +16 -0
  581. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.js +102 -0
  582. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-plugin-probe.js.map +1 -0
  583. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.d.ts +92 -0
  584. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js +573 -0
  585. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-refresh-service.js.map +1 -0
  586. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.d.ts +31 -0
  587. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.js +363 -0
  588. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-registration-service.js.map +1 -0
  589. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-search.d.ts +44 -0
  590. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-search.js +105 -0
  591. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-search.js.map +1 -0
  592. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-state.d.ts +17 -0
  593. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-state.js +82 -0
  594. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-state.js.map +1 -0
  595. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.d.ts +39 -0
  596. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.js +59 -0
  597. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-policy-service.js.map +1 -0
  598. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-scheduler.d.ts +30 -0
  599. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-scheduler.js +229 -0
  600. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-scheduler.js.map +1 -0
  601. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-state.d.ts +16 -0
  602. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-state.js +104 -0
  603. package/node_modules/@nklisch/pi-plugins/dist/application/marketplace-update-state.js.map +1 -0
  604. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-launch-context.d.ts +8 -0
  605. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-launch-context.js +255 -0
  606. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-launch-context.js.map +1 -0
  607. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-plugin-projection.d.ts +207 -0
  608. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-plugin-projection.js +342 -0
  609. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-plugin-projection.js.map +1 -0
  610. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-runtime-capability-probe.d.ts +12 -0
  611. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-runtime-capability-probe.js +121 -0
  612. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-runtime-capability-probe.js.map +1 -0
  613. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-source-registration.d.ts +11 -0
  614. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-source-registration.js +54 -0
  615. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-source-registration.js.map +1 -0
  616. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-tool-aliases.d.ts +39 -0
  617. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-tool-aliases.js +96 -0
  618. package/node_modules/@nklisch/pi-plugins/dist/application/mcp-tool-aliases.js.map +1 -0
  619. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.d.ts +19 -0
  620. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.js +12 -0
  621. package/node_modules/@nklisch/pi-plugins/dist/application/mutation-coordination.js.map +1 -0
  622. package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.d.ts +21 -0
  623. package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.js +271 -0
  624. package/node_modules/@nklisch/pi-plugins/dist/application/native-candidate-inspection.js.map +1 -0
  625. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.d.ts +226 -0
  626. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.js +140 -0
  627. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-contract.js.map +1 -0
  628. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.d.ts +30 -0
  629. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js +63 -0
  630. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-dispatcher.js.map +1 -0
  631. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.d.ts +7 -0
  632. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.js +35 -0
  633. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-error.js.map +1 -0
  634. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-execution.d.ts +20 -0
  635. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-execution.js +83 -0
  636. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-execution.js.map +1 -0
  637. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-help.d.ts +257 -0
  638. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-help.js +102 -0
  639. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-help.js.map +1 -0
  640. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-human.d.ts +10 -0
  641. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-human.js +14 -0
  642. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-human.js.map +1 -0
  643. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-input.d.ts +14 -0
  644. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-input.js +85 -0
  645. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-input.js.map +1 -0
  646. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-install.d.ts +17 -0
  647. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-install.js +36 -0
  648. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-install.js.map +1 -0
  649. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lexer.d.ts +37 -0
  650. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lexer.js +113 -0
  651. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lexer.js.map +1 -0
  652. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.d.ts +20 -0
  653. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.js +69 -0
  654. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-lifecycle.js.map +1 -0
  655. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.d.ts +9 -0
  656. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js +232 -0
  657. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-mutation-dispatch.js.map +1 -0
  658. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-operation.d.ts +4165 -0
  659. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-operation.js +31 -0
  660. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-operation.js.map +1 -0
  661. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.d.ts +191 -0
  662. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js +337 -0
  663. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-parser.js.map +1 -0
  664. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-progress.d.ts +203 -0
  665. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-progress.js +107 -0
  666. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-progress.js.map +1 -0
  667. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-projection.d.ts +33 -0
  668. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-projection.js +53 -0
  669. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-projection.js.map +1 -0
  670. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.d.ts +40 -0
  671. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.js +158 -0
  672. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-read-dispatch.js.map +1 -0
  673. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-redaction.d.ts +8 -0
  674. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-redaction.js +66 -0
  675. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-redaction.js.map +1 -0
  676. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.d.ts +899 -0
  677. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js +236 -0
  678. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-registry.js.map +1 -0
  679. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-result.d.ts +8 -0
  680. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-result.js +31 -0
  681. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-result.js.map +1 -0
  682. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-safe-projection.d.ts +1622 -0
  683. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-safe-projection.js +248 -0
  684. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-safe-projection.js.map +1 -0
  685. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-scalar.d.ts +3 -0
  686. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-scalar.js +19 -0
  687. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-scalar.js.map +1 -0
  688. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-selection.d.ts +102 -0
  689. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-selection.js +150 -0
  690. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-selection.js.map +1 -0
  691. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-service.d.ts +35 -0
  692. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-service.js +92 -0
  693. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-service.js.map +1 -0
  694. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-update-policy.d.ts +10 -0
  695. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-update-policy.js +43 -0
  696. package/node_modules/@nklisch/pi-plugins/dist/application/native-control-update-policy.js.map +1 -0
  697. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-compiler.d.ts +23 -0
  698. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-compiler.js +96 -0
  699. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-compiler.js.map +1 -0
  700. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.d.ts +556 -0
  701. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js +63 -0
  702. package/node_modules/@nklisch/pi-plugins/dist/application/native-diagnostic-registry.js.map +1 -0
  703. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.d.ts +14 -0
  704. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js +152 -0
  705. package/node_modules/@nklisch/pi-plugins/dist/application/native-failure-presenter.js.map +1 -0
  706. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.d.ts +3720 -0
  707. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.js +281 -0
  708. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-contract.js.map +1 -0
  709. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-disclosure.d.ts +37 -0
  710. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-disclosure.js +260 -0
  711. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-disclosure.js.map +1 -0
  712. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-display-safety.d.ts +3 -0
  713. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-display-safety.js +36 -0
  714. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-display-safety.js.map +1 -0
  715. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-display.d.ts +18 -0
  716. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-display.js +73 -0
  717. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-display.js.map +1 -0
  718. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-identifiers.d.ts +87 -0
  719. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-identifiers.js +125 -0
  720. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-identifiers.js.map +1 -0
  721. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.d.ts +29 -0
  722. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.js +424 -0
  723. package/node_modules/@nklisch/pi-plugins/dist/application/native-inspection-service.js.map +1 -0
  724. package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.d.ts +15 -0
  725. package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js +428 -0
  726. package/node_modules/@nklisch/pi-plugins/dist/application/native-installed-inspection.js.map +1 -0
  727. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.d.ts +9585 -0
  728. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js +295 -0
  729. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-contract.js.map +1 -0
  730. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-identifiers.d.ts +12 -0
  731. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-identifiers.js +55 -0
  732. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-identifiers.js.map +1 -0
  733. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.d.ts +26 -0
  734. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.js +390 -0
  735. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-service.js.map +1 -0
  736. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.d.ts +53 -0
  737. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js +101 -0
  738. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation-session.js.map +1 -0
  739. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.d.ts +792 -0
  740. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.js +323 -0
  741. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-operation.js.map +1 -0
  742. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-progress.d.ts +15 -0
  743. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-progress.js +31 -0
  744. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-progress.js.map +1 -0
  745. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.d.ts +21 -0
  746. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js +84 -0
  747. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-result.js.map +1 -0
  748. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.d.ts +30 -0
  749. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.js +118 -0
  750. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-target.js.map +1 -0
  751. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.d.ts +93 -0
  752. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.js +103 -0
  753. package/node_modules/@nklisch/pi-plugins/dist/application/native-lifecycle-update.js.map +1 -0
  754. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.d.ts +25 -0
  755. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.js +39 -0
  756. package/node_modules/@nklisch/pi-plugins/dist/application/native-uninstall-cleanup.js.map +1 -0
  757. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.d.ts +644 -0
  758. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js +118 -0
  759. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-contract.js.map +1 -0
  760. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-identifiers.d.ts +9 -0
  761. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-identifiers.js +21 -0
  762. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-identifiers.js.map +1 -0
  763. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-management-service.d.ts +24 -0
  764. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-management-service.js +33 -0
  765. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-management-service.js.map +1 -0
  766. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.d.ts +32 -0
  767. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.js +402 -0
  768. package/node_modules/@nklisch/pi-plugins/dist/application/native-update-policy-service.js.map +1 -0
  769. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-candidate-preparation.d.ts +134 -0
  770. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-candidate-preparation.js +392 -0
  771. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-candidate-preparation.js.map +1 -0
  772. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.d.ts +290 -0
  773. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.js +96 -0
  774. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-contract.js.map +1 -0
  775. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.d.ts +176 -0
  776. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js +707 -0
  777. package/node_modules/@nklisch/pi-plugins/dist/application/plugin-lifecycle-service.js.map +1 -0
  778. package/node_modules/@nklisch/pi-plugins/dist/application/ports/automatic-update-lifecycle.d.ts +30 -0
  779. package/node_modules/@nklisch/pi-plugins/dist/application/ports/automatic-update-lifecycle.js +2 -0
  780. package/node_modules/@nklisch/pi-plugins/dist/application/ports/automatic-update-lifecycle.js.map +1 -0
  781. package/node_modules/@nklisch/pi-plugins/dist/application/ports/bundle-readers.d.ts +53 -0
  782. package/node_modules/@nklisch/pi-plugins/dist/application/ports/bundle-readers.js +2 -0
  783. package/node_modules/@nklisch/pi-plugins/dist/application/ports/bundle-readers.js.map +1 -0
  784. package/node_modules/@nklisch/pi-plugins/dist/application/ports/candidate-content-lease.d.ts +42 -0
  785. package/node_modules/@nklisch/pi-plugins/dist/application/ports/candidate-content-lease.js +13 -0
  786. package/node_modules/@nklisch/pi-plugins/dist/application/ports/candidate-content-lease.js.map +1 -0
  787. package/node_modules/@nklisch/pi-plugins/dist/application/ports/configuration-path.d.ts +31 -0
  788. package/node_modules/@nklisch/pi-plugins/dist/application/ports/configuration-path.js +7 -0
  789. package/node_modules/@nklisch/pi-plugins/dist/application/ports/configuration-path.js.map +1 -0
  790. package/node_modules/@nklisch/pi-plugins/dist/application/ports/configuration-write-id.d.ts +5 -0
  791. package/node_modules/@nklisch/pi-plugins/dist/application/ports/configuration-write-id.js +2 -0
  792. package/node_modules/@nklisch/pi-plugins/dist/application/ports/configuration-write-id.js.map +1 -0
  793. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-read.d.ts +19 -0
  794. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-read.js +2 -0
  795. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-read.js.map +1 -0
  796. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-store-platform.d.ts +11 -0
  797. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-store-platform.js +2 -0
  798. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-store-platform.js.map +1 -0
  799. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-store.d.ts +103 -0
  800. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-store.js +2 -0
  801. package/node_modules/@nklisch/pi-plugins/dist/application/ports/content-store.js.map +1 -0
  802. package/node_modules/@nklisch/pi-plugins/dist/application/ports/foreign-state-files.d.ts +5 -0
  803. package/node_modules/@nklisch/pi-plugins/dist/application/ports/foreign-state-files.js +2 -0
  804. package/node_modules/@nklisch/pi-plugins/dist/application/ports/foreign-state-files.js.map +1 -0
  805. package/node_modules/@nklisch/pi-plugins/dist/application/ports/hook-executable-resolver.d.ts +16 -0
  806. package/node_modules/@nklisch/pi-plugins/dist/application/ports/hook-executable-resolver.js +2 -0
  807. package/node_modules/@nklisch/pi-plugins/dist/application/ports/hook-executable-resolver.js.map +1 -0
  808. package/node_modules/@nklisch/pi-plugins/dist/application/ports/hook-execution-context.d.ts +58 -0
  809. package/node_modules/@nklisch/pi-plugins/dist/application/ports/hook-execution-context.js +9 -0
  810. package/node_modules/@nklisch/pi-plugins/dist/application/ports/hook-execution-context.js.map +1 -0
  811. package/node_modules/@nklisch/pi-plugins/dist/application/ports/inspection-readiness.d.ts +18 -0
  812. package/node_modules/@nklisch/pi-plugins/dist/application/ports/inspection-readiness.js +2 -0
  813. package/node_modules/@nklisch/pi-plugins/dist/application/ports/inspection-readiness.js.map +1 -0
  814. package/node_modules/@nklisch/pi-plugins/dist/application/ports/installed-plugin-loader.d.ts +1056 -0
  815. package/node_modules/@nklisch/pi-plugins/dist/application/ports/installed-plugin-loader.js +29 -0
  816. package/node_modules/@nklisch/pi-plugins/dist/application/ports/installed-plugin-loader.js.map +1 -0
  817. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-clock.d.ts +8 -0
  818. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-clock.js +3 -0
  819. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-clock.js.map +1 -0
  820. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-operation-id.d.ts +8 -0
  821. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-operation-id.js +7 -0
  822. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-operation-id.js.map +1 -0
  823. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.d.ts +367 -0
  824. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.js +207 -0
  825. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-reload.js.map +1 -0
  826. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-state-inventory.d.ts +26 -0
  827. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-state-inventory.js +7 -0
  828. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-state-inventory.js.map +1 -0
  829. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-state-store.d.ts +16 -0
  830. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-state-store.js +2 -0
  831. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-state-store.js.map +1 -0
  832. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.d.ts +5008 -0
  833. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.js +129 -0
  834. package/node_modules/@nklisch/pi-plugins/dist/application/ports/lifecycle-transition-store.js.map +1 -0
  835. package/node_modules/@nklisch/pi-plugins/dist/application/ports/marketplace-registration.d.ts +15 -0
  836. package/node_modules/@nklisch/pi-plugins/dist/application/ports/marketplace-registration.js +2 -0
  837. package/node_modules/@nklisch/pi-plugins/dist/application/ports/marketplace-registration.js.map +1 -0
  838. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-launch-context.d.ts +97 -0
  839. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-launch-context.js +30 -0
  840. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-launch-context.js.map +1 -0
  841. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-launch-environment.d.ts +11 -0
  842. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-launch-environment.js +2 -0
  843. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-launch-environment.js.map +1 -0
  844. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-runtime.d.ts +1387 -0
  845. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-runtime.js +399 -0
  846. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mcp-runtime.js.map +1 -0
  847. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.d.ts +9 -0
  848. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.js +2 -0
  849. package/node_modules/@nklisch/pi-plugins/dist/application/ports/mutation-execution-context.js.map +1 -0
  850. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-applications.d.ts +42 -0
  851. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-applications.js +2 -0
  852. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-applications.js.map +1 -0
  853. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-execution.d.ts +31 -0
  854. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-execution.js +2 -0
  855. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-execution.js.map +1 -0
  856. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-input.d.ts +66 -0
  857. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-input.js +2 -0
  858. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-control-input.js.map +1 -0
  859. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-inspection-evidence.d.ts +104 -0
  860. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-inspection-evidence.js +2 -0
  861. package/node_modules/@nklisch/pi-plugins/dist/application/ports/native-inspection-evidence.js.map +1 -0
  862. package/node_modules/@nklisch/pi-plugins/dist/application/ports/persistent-data-removal.d.ts +22 -0
  863. package/node_modules/@nklisch/pi-plugins/dist/application/ports/persistent-data-removal.js +12 -0
  864. package/node_modules/@nklisch/pi-plugins/dist/application/ports/persistent-data-removal.js.map +1 -0
  865. package/node_modules/@nklisch/pi-plugins/dist/application/ports/plugin-configuration-store.d.ts +99 -0
  866. package/node_modules/@nklisch/pi-plugins/dist/application/ports/plugin-configuration-store.js +13 -0
  867. package/node_modules/@nklisch/pi-plugins/dist/application/ports/plugin-configuration-store.js.map +1 -0
  868. package/node_modules/@nklisch/pi-plugins/dist/application/ports/process-runner.d.ts +35 -0
  869. package/node_modules/@nklisch/pi-plugins/dist/application/ports/process-runner.js +2 -0
  870. package/node_modules/@nklisch/pi-plugins/dist/application/ports/process-runner.js.map +1 -0
  871. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-intent-file.d.ts +46 -0
  872. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-intent-file.js +2 -0
  873. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-intent-file.js.map +1 -0
  874. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-intent-write-id.d.ts +6 -0
  875. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-intent-write-id.js +5 -0
  876. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-intent-write-id.js.map +1 -0
  877. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-root-authority.d.ts +37 -0
  878. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-root-authority.js +2 -0
  879. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-root-authority.js.map +1 -0
  880. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-trust.d.ts +33 -0
  881. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-trust.js +12 -0
  882. package/node_modules/@nklisch/pi-plugins/dist/application/ports/project-trust.js.map +1 -0
  883. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.d.ts +29 -0
  884. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.js +4 -0
  885. package/node_modules/@nklisch/pi-plugins/dist/application/ports/recovery-artifacts.js.map +1 -0
  886. package/node_modules/@nklisch/pi-plugins/dist/application/ports/refresh-claim-id.d.ts +6 -0
  887. package/node_modules/@nklisch/pi-plugins/dist/application/ports/refresh-claim-id.js +3 -0
  888. package/node_modules/@nklisch/pi-plugins/dist/application/ports/refresh-claim-id.js.map +1 -0
  889. package/node_modules/@nklisch/pi-plugins/dist/application/ports/refresh-claim-owner.d.ts +8 -0
  890. package/node_modules/@nklisch/pi-plugins/dist/application/ports/refresh-claim-owner.js +2 -0
  891. package/node_modules/@nklisch/pi-plugins/dist/application/ports/refresh-claim-owner.js.map +1 -0
  892. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-artifact-store.d.ts +37 -0
  893. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-artifact-store.js +10 -0
  894. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-artifact-store.js.map +1 -0
  895. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.d.ts +65 -0
  896. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.js +16 -0
  897. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-lease-store.js.map +1 -0
  898. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.d.ts +43 -0
  899. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.js +12 -0
  900. package/node_modules/@nklisch/pi-plugins/dist/application/ports/revision-retention-store.js.map +1 -0
  901. package/node_modules/@nklisch/pi-plugins/dist/application/ports/runtime-capability-probe.d.ts +8 -0
  902. package/node_modules/@nklisch/pi-plugins/dist/application/ports/runtime-capability-probe.js +2 -0
  903. package/node_modules/@nklisch/pi-plugins/dist/application/ports/runtime-capability-probe.js.map +1 -0
  904. package/node_modules/@nklisch/pi-plugins/dist/application/ports/runtime-projection.d.ts +1062 -0
  905. package/node_modules/@nklisch/pi-plugins/dist/application/ports/runtime-projection.js +275 -0
  906. package/node_modules/@nklisch/pi-plugins/dist/application/ports/runtime-projection.js.map +1 -0
  907. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.d.ts +15 -0
  908. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.js +2 -0
  909. package/node_modules/@nklisch/pi-plugins/dist/application/ports/scope-lock.js.map +1 -0
  910. package/node_modules/@nklisch/pi-plugins/dist/application/ports/secret-store.d.ts +100 -0
  911. package/node_modules/@nklisch/pi-plugins/dist/application/ports/secret-store.js +36 -0
  912. package/node_modules/@nklisch/pi-plugins/dist/application/ports/secret-store.js.map +1 -0
  913. package/node_modules/@nklisch/pi-plugins/dist/application/ports/skill-resource-path.d.ts +20 -0
  914. package/node_modules/@nklisch/pi-plugins/dist/application/ports/skill-resource-path.js +2 -0
  915. package/node_modules/@nklisch/pi-plugins/dist/application/ports/skill-resource-path.js.map +1 -0
  916. package/node_modules/@nklisch/pi-plugins/dist/application/ports/source-acquisition.d.ts +88 -0
  917. package/node_modules/@nklisch/pi-plugins/dist/application/ports/source-acquisition.js +13 -0
  918. package/node_modules/@nklisch/pi-plugins/dist/application/ports/source-acquisition.js.map +1 -0
  919. package/node_modules/@nklisch/pi-plugins/dist/application/ports/subagent-lifecycle.d.ts +289 -0
  920. package/node_modules/@nklisch/pi-plugins/dist/application/ports/subagent-lifecycle.js +197 -0
  921. package/node_modules/@nklisch/pi-plugins/dist/application/ports/subagent-lifecycle.js.map +1 -0
  922. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.d.ts +4 -0
  923. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.js +2 -0
  924. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-activation-context.js.map +1 -0
  925. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-delay.d.ts +4 -0
  926. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-delay.js +2 -0
  927. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-delay.js.map +1 -0
  928. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-notification-publisher.d.ts +16 -0
  929. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-notification-publisher.js +2 -0
  930. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-notification-publisher.js.map +1 -0
  931. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-policy-authority.d.ts +15 -0
  932. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-policy-authority.js +2 -0
  933. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-policy-authority.js.map +1 -0
  934. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-scheduler-lease-id.d.ts +4 -0
  935. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-scheduler-lease-id.js +2 -0
  936. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-scheduler-lease-id.js.map +1 -0
  937. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-scheduler-lease.d.ts +21 -0
  938. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-scheduler-lease.js +2 -0
  939. package/node_modules/@nklisch/pi-plugins/dist/application/ports/update-scheduler-lease.js.map +1 -0
  940. package/node_modules/@nklisch/pi-plugins/dist/application/prepared-lifecycle-candidate.d.ts +7 -0
  941. package/node_modules/@nklisch/pi-plugins/dist/application/prepared-lifecycle-candidate.js +7 -0
  942. package/node_modules/@nklisch/pi-plugins/dist/application/prepared-lifecycle-candidate.js.map +1 -0
  943. package/node_modules/@nklisch/pi-plugins/dist/application/project-intent-codec.d.ts +18 -0
  944. package/node_modules/@nklisch/pi-plugins/dist/application/project-intent-codec.js +47 -0
  945. package/node_modules/@nklisch/pi-plugins/dist/application/project-intent-codec.js.map +1 -0
  946. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.d.ts +833 -0
  947. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.js +144 -0
  948. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-contract.js.map +1 -0
  949. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.d.ts +36 -0
  950. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.js +253 -0
  951. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-planner.js.map +1 -0
  952. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.d.ts +42 -0
  953. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.js +52 -0
  954. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-projection.js.map +1 -0
  955. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.d.ts +65 -0
  956. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.js +285 -0
  957. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-service.js.map +1 -0
  958. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.d.ts +20 -0
  959. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.js +22 -0
  960. package/node_modules/@nklisch/pi-plugins/dist/application/project-sync-state.js.map +1 -0
  961. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.d.ts +1078 -0
  962. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.js +126 -0
  963. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-contract.js.map +1 -0
  964. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.d.ts +39 -0
  965. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.js +170 -0
  966. package/node_modules/@nklisch/pi-plugins/dist/application/recovery-service.js.map +1 -0
  967. package/node_modules/@nklisch/pi-plugins/dist/application/resolved-configuration.d.ts +18 -0
  968. package/node_modules/@nklisch/pi-plugins/dist/application/resolved-configuration.js +74 -0
  969. package/node_modules/@nklisch/pi-plugins/dist/application/resolved-configuration.js.map +1 -0
  970. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.d.ts +52 -0
  971. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.js +228 -0
  972. package/node_modules/@nklisch/pi-plugins/dist/application/revision-collection-service.js.map +1 -0
  973. package/node_modules/@nklisch/pi-plugins/dist/application/runtime-projection-cache.d.ts +387 -0
  974. package/node_modules/@nklisch/pi-plugins/dist/application/runtime-projection-cache.js +128 -0
  975. package/node_modules/@nklisch/pi-plugins/dist/application/runtime-projection-cache.js.map +1 -0
  976. package/node_modules/@nklisch/pi-plugins/dist/application/sensitive-value.d.ts +9 -0
  977. package/node_modules/@nklisch/pi-plugins/dist/application/sensitive-value.js +50 -0
  978. package/node_modules/@nklisch/pi-plugins/dist/application/sensitive-value.js.map +1 -0
  979. package/node_modules/@nklisch/pi-plugins/dist/application/source-materialization.d.ts +62 -0
  980. package/node_modules/@nklisch/pi-plugins/dist/application/source-materialization.js +410 -0
  981. package/node_modules/@nklisch/pi-plugins/dist/application/source-materialization.js.map +1 -0
  982. package/node_modules/@nklisch/pi-plugins/dist/application/state-contract.d.ts +2731 -0
  983. package/node_modules/@nklisch/pi-plugins/dist/application/state-contract.js +200 -0
  984. package/node_modules/@nklisch/pi-plugins/dist/application/state-contract.js.map +1 -0
  985. package/node_modules/@nklisch/pi-plugins/dist/application/subagent-hook-runtime.d.ts +18 -0
  986. package/node_modules/@nklisch/pi-plugins/dist/application/subagent-hook-runtime.js +110 -0
  987. package/node_modules/@nklisch/pi-plugins/dist/application/subagent-hook-runtime.js.map +1 -0
  988. package/node_modules/@nklisch/pi-plugins/dist/application/subagent-lifecycle-capability-probe.d.ts +16 -0
  989. package/node_modules/@nklisch/pi-plugins/dist/application/subagent-lifecycle-capability-probe.js +103 -0
  990. package/node_modules/@nklisch/pi-plugins/dist/application/subagent-lifecycle-capability-probe.js.map +1 -0
  991. package/node_modules/@nklisch/pi-plugins/dist/application/trust-service.d.ts +25 -0
  992. package/node_modules/@nklisch/pi-plugins/dist/application/trust-service.js +76 -0
  993. package/node_modules/@nklisch/pi-plugins/dist/application/trust-service.js.map +1 -0
  994. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-candidate.d.ts +55 -0
  995. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-candidate.js +319 -0
  996. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-candidate.js.map +1 -0
  997. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-configuration.d.ts +53 -0
  998. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-configuration.js +100 -0
  999. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-configuration.js.map +1 -0
  1000. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.d.ts +11773 -0
  1001. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js +201 -0
  1002. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-contract.js.map +1 -0
  1003. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-identifiers.d.ts +10 -0
  1004. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-identifiers.js +49 -0
  1005. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-identifiers.js.map +1 -0
  1006. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.d.ts +30 -0
  1007. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.js +87 -0
  1008. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-lifecycle.js.map +1 -0
  1009. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.d.ts +31 -0
  1010. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js +646 -0
  1011. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-service.js.map +1 -0
  1012. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.d.ts +65 -0
  1013. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.js +123 -0
  1014. package/node_modules/@nklisch/pi-plugins/dist/application/trusted-install-session.js.map +1 -0
  1015. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.d.ts +861 -0
  1016. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.js +63 -0
  1017. package/node_modules/@nklisch/pi-plugins/dist/application/update-contract.js.map +1 -0
  1018. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.d.ts +64 -0
  1019. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.js +317 -0
  1020. package/node_modules/@nklisch/pi-plugins/dist/application/update-notification-service.js.map +1 -0
  1021. package/node_modules/@nklisch/pi-plugins/dist/application/update-policy-resolution.d.ts +14 -0
  1022. package/node_modules/@nklisch/pi-plugins/dist/application/update-policy-resolution.js +37 -0
  1023. package/node_modules/@nklisch/pi-plugins/dist/application/update-policy-resolution.js.map +1 -0
  1024. package/node_modules/@nklisch/pi-plugins/dist/application/update-schedule.d.ts +12 -0
  1025. package/node_modules/@nklisch/pi-plugins/dist/application/update-schedule.js +44 -0
  1026. package/node_modules/@nklisch/pi-plugins/dist/application/update-schedule.js.map +1 -0
  1027. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.d.ts +20 -0
  1028. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.js +122 -0
  1029. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-lease-state.js.map +1 -0
  1030. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-status.d.ts +19 -0
  1031. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-status.js +28 -0
  1032. package/node_modules/@nklisch/pi-plugins/dist/application/update-scheduler-status.js.map +1 -0
  1033. package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.d.ts +24 -0
  1034. package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js +178 -0
  1035. package/node_modules/@nklisch/pi-plugins/dist/composition/automatic-update-lifecycle-adapter.js.map +1 -0
  1036. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.d.ts +19 -0
  1037. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.js +74 -0
  1038. package/node_modules/@nklisch/pi-plugins/dist/composition/background-update-coordinator.js.map +1 -0
  1039. package/node_modules/@nklisch/pi-plugins/dist/composition/candidate-content-lease.d.ts +3 -0
  1040. package/node_modules/@nklisch/pi-plugins/dist/composition/candidate-content-lease.js +103 -0
  1041. package/node_modules/@nklisch/pi-plugins/dist/composition/candidate-content-lease.js.map +1 -0
  1042. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.d.ts +32 -0
  1043. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js +175 -0
  1044. package/node_modules/@nklisch/pi-plugins/dist/composition/complete-plugin-reload.js.map +1 -0
  1045. package/node_modules/@nklisch/pi-plugins/dist/composition/create-adoption-service.d.ts +12 -0
  1046. package/node_modules/@nklisch/pi-plugins/dist/composition/create-adoption-service.js +31 -0
  1047. package/node_modules/@nklisch/pi-plugins/dist/composition/create-adoption-service.js.map +1 -0
  1048. package/node_modules/@nklisch/pi-plugins/dist/composition/create-host-configuration.d.ts +26 -0
  1049. package/node_modules/@nklisch/pi-plugins/dist/composition/create-host-configuration.js +37 -0
  1050. package/node_modules/@nklisch/pi-plugins/dist/composition/create-host-configuration.js.map +1 -0
  1051. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.d.ts +82 -0
  1052. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.js +162 -0
  1053. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-discovery-services.js.map +1 -0
  1054. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-refresh-services.d.ts +5 -0
  1055. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-refresh-services.js +6 -0
  1056. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-refresh-services.js.map +1 -0
  1057. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-update-services.d.ts +25 -0
  1058. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-update-services.js +42 -0
  1059. package/node_modules/@nklisch/pi-plugins/dist/composition/create-marketplace-update-services.js.map +1 -0
  1060. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.d.ts +37 -0
  1061. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.js +121 -0
  1062. package/node_modules/@nklisch/pi-plugins/dist/composition/create-mcp-runtime.js.map +1 -0
  1063. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-control-current-project.d.ts +12 -0
  1064. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-control-current-project.js +31 -0
  1065. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-control-current-project.js.map +1 -0
  1066. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-control-service.d.ts +9 -0
  1067. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-control-service.js +6 -0
  1068. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-control-service.js.map +1 -0
  1069. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.d.ts +51 -0
  1070. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.js +54 -0
  1071. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-inspection-service.js.map +1 -0
  1072. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.d.ts +56 -0
  1073. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.js +57 -0
  1074. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-lifecycle-operation-service.js.map +1 -0
  1075. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.d.ts +39 -0
  1076. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.js +50 -0
  1077. package/node_modules/@nklisch/pi-plugins/dist/composition/create-native-update-management-service.js.map +1 -0
  1078. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.d.ts +3 -0
  1079. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js +840 -0
  1080. package/node_modules/@nklisch/pi-plugins/dist/composition/create-packaged-plugin-host.js.map +1 -0
  1081. package/node_modules/@nklisch/pi-plugins/dist/composition/create-plugin-inspector.d.ts +13 -0
  1082. package/node_modules/@nklisch/pi-plugins/dist/composition/create-plugin-inspector.js +53 -0
  1083. package/node_modules/@nklisch/pi-plugins/dist/composition/create-plugin-inspector.js.map +1 -0
  1084. package/node_modules/@nklisch/pi-plugins/dist/composition/create-project-root-authority.d.ts +11 -0
  1085. package/node_modules/@nklisch/pi-plugins/dist/composition/create-project-root-authority.js +128 -0
  1086. package/node_modules/@nklisch/pi-plugins/dist/composition/create-project-root-authority.js.map +1 -0
  1087. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.d.ts +42 -0
  1088. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.js +168 -0
  1089. package/node_modules/@nklisch/pi-plugins/dist/composition/create-skill-hook-runtime.js.map +1 -0
  1090. package/node_modules/@nklisch/pi-plugins/dist/composition/create-subagent-lifecycle.d.ts +6 -0
  1091. package/node_modules/@nklisch/pi-plugins/dist/composition/create-subagent-lifecycle.js +9 -0
  1092. package/node_modules/@nklisch/pi-plugins/dist/composition/create-subagent-lifecycle.js.map +1 -0
  1093. package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.d.ts +46 -0
  1094. package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.js +49 -0
  1095. package/node_modules/@nklisch/pi-plugins/dist/composition/create-trusted-installation-service.js.map +1 -0
  1096. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.d.ts +20 -0
  1097. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.js +35 -0
  1098. package/node_modules/@nklisch/pi-plugins/dist/composition/host-status-service.js.map +1 -0
  1099. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.d.ts +40 -0
  1100. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.js +269 -0
  1101. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-evidence.js.map +1 -0
  1102. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-readiness.d.ts +14 -0
  1103. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-readiness.js +127 -0
  1104. package/node_modules/@nklisch/pi-plugins/dist/composition/native-inspection-readiness.js.map +1 -0
  1105. package/node_modules/@nklisch/pi-plugins/dist/composition/node-pi-runtime-capability-probe.d.ts +8 -0
  1106. package/node_modules/@nklisch/pi-plugins/dist/composition/node-pi-runtime-capability-probe.js +60 -0
  1107. package/node_modules/@nklisch/pi-plugins/dist/composition/node-pi-runtime-capability-probe.js.map +1 -0
  1108. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.d.ts +19 -0
  1109. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js +39 -0
  1110. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-host-startup.js.map +1 -0
  1111. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-plugin-host-contract.d.ts +69 -0
  1112. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-plugin-host-contract.js +22 -0
  1113. package/node_modules/@nklisch/pi-plugins/dist/composition/packaged-plugin-host-contract.js.map +1 -0
  1114. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.d.ts +15 -0
  1115. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.js +44 -0
  1116. package/node_modules/@nklisch/pi-plugins/dist/composition/plugin-host-paths.js.map +1 -0
  1117. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.d.ts +45 -0
  1118. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js +241 -0
  1119. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-desired-state.js.map +1 -0
  1120. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.d.ts +46 -0
  1121. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js +111 -0
  1122. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-participant-qualification.js.map +1 -0
  1123. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-selection-catalog.d.ts +36 -0
  1124. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-selection-catalog.js +221 -0
  1125. package/node_modules/@nklisch/pi-plugins/dist/composition/runtime-selection-catalog.js.map +1 -0
  1126. package/node_modules/@nklisch/pi-plugins/dist/composition/sequential-cleanup.d.ts +1 -0
  1127. package/node_modules/@nklisch/pi-plugins/dist/composition/sequential-cleanup.js +14 -0
  1128. package/node_modules/@nklisch/pi-plugins/dist/composition/sequential-cleanup.js.map +1 -0
  1129. package/node_modules/@nklisch/pi-plugins/dist/domain/adoption.d.ts +210 -0
  1130. package/node_modules/@nklisch/pi-plugins/dist/domain/adoption.js +178 -0
  1131. package/node_modules/@nklisch/pi-plugins/dist/domain/adoption.js.map +1 -0
  1132. package/node_modules/@nklisch/pi-plugins/dist/domain/bundle-ingestion.d.ts +532 -0
  1133. package/node_modules/@nklisch/pi-plugins/dist/domain/bundle-ingestion.js +116 -0
  1134. package/node_modules/@nklisch/pi-plugins/dist/domain/bundle-ingestion.js.map +1 -0
  1135. package/node_modules/@nklisch/pi-plugins/dist/domain/canonical-json.d.ts +9 -0
  1136. package/node_modules/@nklisch/pi-plugins/dist/domain/canonical-json.js +65 -0
  1137. package/node_modules/@nklisch/pi-plugins/dist/domain/canonical-json.js.map +1 -0
  1138. package/node_modules/@nklisch/pi-plugins/dist/domain/canonical-order.d.ts +11 -0
  1139. package/node_modules/@nklisch/pi-plugins/dist/domain/canonical-order.js +71 -0
  1140. package/node_modules/@nklisch/pi-plugins/dist/domain/canonical-order.js.map +1 -0
  1141. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-evaluator.d.ts +768 -0
  1142. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-evaluator.js +730 -0
  1143. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-evaluator.js.map +1 -0
  1144. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-policy.d.ts +1341 -0
  1145. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-policy.js +913 -0
  1146. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility-policy.js.map +1 -0
  1147. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility.d.ts +367 -0
  1148. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility.js +222 -0
  1149. package/node_modules/@nklisch/pi-plugins/dist/domain/compatibility.js.map +1 -0
  1150. package/node_modules/@nklisch/pi-plugins/dist/domain/component-identity.d.ts +86 -0
  1151. package/node_modules/@nklisch/pi-plugins/dist/domain/component-identity.js +206 -0
  1152. package/node_modules/@nklisch/pi-plugins/dist/domain/component-identity.js.map +1 -0
  1153. package/node_modules/@nklisch/pi-plugins/dist/domain/components.d.ts +1643 -0
  1154. package/node_modules/@nklisch/pi-plugins/dist/domain/components.js +152 -0
  1155. package/node_modules/@nklisch/pi-plugins/dist/domain/components.js.map +1 -0
  1156. package/node_modules/@nklisch/pi-plugins/dist/domain/configuration.d.ts +352 -0
  1157. package/node_modules/@nklisch/pi-plugins/dist/domain/configuration.js +295 -0
  1158. package/node_modules/@nklisch/pi-plugins/dist/domain/configuration.js.map +1 -0
  1159. package/node_modules/@nklisch/pi-plugins/dist/domain/configured-values.d.ts +152 -0
  1160. package/node_modules/@nklisch/pi-plugins/dist/domain/configured-values.js +273 -0
  1161. package/node_modules/@nklisch/pi-plugins/dist/domain/configured-values.js.map +1 -0
  1162. package/node_modules/@nklisch/pi-plugins/dist/domain/content-manifest.d.ts +72 -0
  1163. package/node_modules/@nklisch/pi-plugins/dist/domain/content-manifest.js +425 -0
  1164. package/node_modules/@nklisch/pi-plugins/dist/domain/content-manifest.js.map +1 -0
  1165. package/node_modules/@nklisch/pi-plugins/dist/domain/content-store.d.ts +72 -0
  1166. package/node_modules/@nklisch/pi-plugins/dist/domain/content-store.js +149 -0
  1167. package/node_modules/@nklisch/pi-plugins/dist/domain/content-store.js.map +1 -0
  1168. package/node_modules/@nklisch/pi-plugins/dist/domain/domain-error.d.ts +11 -0
  1169. package/node_modules/@nklisch/pi-plugins/dist/domain/domain-error.js +46 -0
  1170. package/node_modules/@nklisch/pi-plugins/dist/domain/domain-error.js.map +1 -0
  1171. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.d.ts +145 -0
  1172. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.js +62 -0
  1173. package/node_modules/@nklisch/pi-plugins/dist/domain/error-contract.js.map +1 -0
  1174. package/node_modules/@nklisch/pi-plugins/dist/domain/errors.d.ts +231 -0
  1175. package/node_modules/@nklisch/pi-plugins/dist/domain/errors.js +100 -0
  1176. package/node_modules/@nklisch/pi-plugins/dist/domain/errors.js.map +1 -0
  1177. package/node_modules/@nklisch/pi-plugins/dist/domain/executable-surface.d.ts +187 -0
  1178. package/node_modules/@nklisch/pi-plugins/dist/domain/executable-surface.js +216 -0
  1179. package/node_modules/@nklisch/pi-plugins/dist/domain/executable-surface.js.map +1 -0
  1180. package/node_modules/@nklisch/pi-plugins/dist/domain/foreign-identity.d.ts +17 -0
  1181. package/node_modules/@nklisch/pi-plugins/dist/domain/foreign-identity.js +94 -0
  1182. package/node_modules/@nklisch/pi-plugins/dist/domain/foreign-identity.js.map +1 -0
  1183. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-execution-binding.d.ts +16 -0
  1184. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-execution-binding.js +2 -0
  1185. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-execution-binding.js.map +1 -0
  1186. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-output-contract.d.ts +153 -0
  1187. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-output-contract.js +55 -0
  1188. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-output-contract.js.map +1 -0
  1189. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-runtime-contract.d.ts +418 -0
  1190. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-runtime-contract.js +243 -0
  1191. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-runtime-contract.js.map +1 -0
  1192. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-runtime-limits.d.ts +25 -0
  1193. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-runtime-limits.js +26 -0
  1194. package/node_modules/@nklisch/pi-plugins/dist/domain/hook-runtime-limits.js.map +1 -0
  1195. package/node_modules/@nklisch/pi-plugins/dist/domain/host-precedence.d.ts +20 -0
  1196. package/node_modules/@nklisch/pi-plugins/dist/domain/host-precedence.js +21 -0
  1197. package/node_modules/@nklisch/pi-plugins/dist/domain/host-precedence.js.map +1 -0
  1198. package/node_modules/@nklisch/pi-plugins/dist/domain/identity.d.ts +30 -0
  1199. package/node_modules/@nklisch/pi-plugins/dist/domain/identity.js +59 -0
  1200. package/node_modules/@nklisch/pi-plugins/dist/domain/identity.js.map +1 -0
  1201. package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace-registration.d.ts +38 -0
  1202. package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace-registration.js +68 -0
  1203. package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace-registration.js.map +1 -0
  1204. package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace.d.ts +1662 -0
  1205. package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace.js +197 -0
  1206. package/node_modules/@nklisch/pi-plugins/dist/domain/marketplace.js.map +1 -0
  1207. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-compatibility-plan.d.ts +160 -0
  1208. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-compatibility-plan.js +803 -0
  1209. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-compatibility-plan.js.map +1 -0
  1210. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-endpoint-security.d.ts +17 -0
  1211. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-endpoint-security.js +72 -0
  1212. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-endpoint-security.js.map +1 -0
  1213. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-late-values.d.ts +11 -0
  1214. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-late-values.js +53 -0
  1215. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-late-values.js.map +1 -0
  1216. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-launch-template.d.ts +61 -0
  1217. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-launch-template.js +264 -0
  1218. package/node_modules/@nklisch/pi-plugins/dist/domain/mcp-launch-template.js.map +1 -0
  1219. package/node_modules/@nklisch/pi-plugins/dist/domain/plugin.d.ts +651 -0
  1220. package/node_modules/@nklisch/pi-plugins/dist/domain/plugin.js +19 -0
  1221. package/node_modules/@nklisch/pi-plugins/dist/domain/plugin.js.map +1 -0
  1222. package/node_modules/@nklisch/pi-plugins/dist/domain/provenance-location.d.ts +36 -0
  1223. package/node_modules/@nklisch/pi-plugins/dist/domain/provenance-location.js +28 -0
  1224. package/node_modules/@nklisch/pi-plugins/dist/domain/provenance-location.js.map +1 -0
  1225. package/node_modules/@nklisch/pi-plugins/dist/domain/provenance.d.ts +70 -0
  1226. package/node_modules/@nklisch/pi-plugins/dist/domain/provenance.js +164 -0
  1227. package/node_modules/@nklisch/pi-plugins/dist/domain/provenance.js.map +1 -0
  1228. package/node_modules/@nklisch/pi-plugins/dist/domain/schema.d.ts +21 -0
  1229. package/node_modules/@nklisch/pi-plugins/dist/domain/schema.js +31 -0
  1230. package/node_modules/@nklisch/pi-plugins/dist/domain/schema.js.map +1 -0
  1231. package/node_modules/@nklisch/pi-plugins/dist/domain/sensitive-fields.d.ts +7 -0
  1232. package/node_modules/@nklisch/pi-plugins/dist/domain/sensitive-fields.js +13 -0
  1233. package/node_modules/@nklisch/pi-plugins/dist/domain/sensitive-fields.js.map +1 -0
  1234. package/node_modules/@nklisch/pi-plugins/dist/domain/source.d.ts +304 -0
  1235. package/node_modules/@nklisch/pi-plugins/dist/domain/source.js +873 -0
  1236. package/node_modules/@nklisch/pi-plugins/dist/domain/source.js.map +1 -0
  1237. package/node_modules/@nklisch/pi-plugins/dist/domain/state/codec.d.ts +145 -0
  1238. package/node_modules/@nklisch/pi-plugins/dist/domain/state/codec.js +576 -0
  1239. package/node_modules/@nklisch/pi-plugins/dist/domain/state/codec.js.map +1 -0
  1240. package/node_modules/@nklisch/pi-plugins/dist/domain/state/config-state.d.ts +447 -0
  1241. package/node_modules/@nklisch/pi-plugins/dist/domain/state/config-state.js +58 -0
  1242. package/node_modules/@nklisch/pi-plugins/dist/domain/state/config-state.js.map +1 -0
  1243. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.d.ts +435 -0
  1244. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.js +484 -0
  1245. package/node_modules/@nklisch/pi-plugins/dist/domain/state/installed-state.js.map +1 -0
  1246. package/node_modules/@nklisch/pi-plugins/dist/domain/state/pointers.d.ts +97 -0
  1247. package/node_modules/@nklisch/pi-plugins/dist/domain/state/pointers.js +108 -0
  1248. package/node_modules/@nklisch/pi-plugins/dist/domain/state/pointers.js.map +1 -0
  1249. package/node_modules/@nklisch/pi-plugins/dist/domain/state/portable-project-declaration.d.ts +275 -0
  1250. package/node_modules/@nklisch/pi-plugins/dist/domain/state/portable-project-declaration.js +389 -0
  1251. package/node_modules/@nklisch/pi-plugins/dist/domain/state/portable-project-declaration.js.map +1 -0
  1252. package/node_modules/@nklisch/pi-plugins/dist/domain/state/project-state.d.ts +329 -0
  1253. package/node_modules/@nklisch/pi-plugins/dist/domain/state/project-state.js +185 -0
  1254. package/node_modules/@nklisch/pi-plugins/dist/domain/state/project-state.js.map +1 -0
  1255. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.d.ts +85 -0
  1256. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.js +225 -0
  1257. package/node_modules/@nklisch/pi-plugins/dist/domain/state/references.js.map +1 -0
  1258. package/node_modules/@nklisch/pi-plugins/dist/domain/state/registry.d.ts +771 -0
  1259. package/node_modules/@nklisch/pi-plugins/dist/domain/state/registry.js +57 -0
  1260. package/node_modules/@nklisch/pi-plugins/dist/domain/state/registry.js.map +1 -0
  1261. package/node_modules/@nklisch/pi-plugins/dist/domain/state/scope.d.ts +53 -0
  1262. package/node_modules/@nklisch/pi-plugins/dist/domain/state/scope.js +270 -0
  1263. package/node_modules/@nklisch/pi-plugins/dist/domain/state/scope.js.map +1 -0
  1264. package/node_modules/@nklisch/pi-plugins/dist/domain/state/trust-state.d.ts +98 -0
  1265. package/node_modules/@nklisch/pi-plugins/dist/domain/state/trust-state.js +143 -0
  1266. package/node_modules/@nklisch/pi-plugins/dist/domain/state/trust-state.js.map +1 -0
  1267. package/node_modules/@nklisch/pi-plugins/dist/domain/time.d.ts +4 -0
  1268. package/node_modules/@nklisch/pi-plugins/dist/domain/time.js +4 -0
  1269. package/node_modules/@nklisch/pi-plugins/dist/domain/time.js.map +1 -0
  1270. package/node_modules/@nklisch/pi-plugins/dist/domain/trust-policy.d.ts +181 -0
  1271. package/node_modules/@nklisch/pi-plugins/dist/domain/trust-policy.js +237 -0
  1272. package/node_modules/@nklisch/pi-plugins/dist/domain/trust-policy.js.map +1 -0
  1273. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.d.ts +818 -0
  1274. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js +315 -0
  1275. package/node_modules/@nklisch/pi-plugins/dist/domain/update-policy.js.map +1 -0
  1276. package/node_modules/@nklisch/pi-plugins/dist/formats/adoption-reader-support.d.ts +40 -0
  1277. package/node_modules/@nklisch/pi-plugins/dist/formats/adoption-reader-support.js +100 -0
  1278. package/node_modules/@nklisch/pi-plugins/dist/formats/adoption-reader-support.js.map +1 -0
  1279. package/node_modules/@nklisch/pi-plugins/dist/formats/agent-skills/frontmatter-reader.d.ts +18 -0
  1280. package/node_modules/@nklisch/pi-plugins/dist/formats/agent-skills/frontmatter-reader.js +345 -0
  1281. package/node_modules/@nklisch/pi-plugins/dist/formats/agent-skills/frontmatter-reader.js.map +1 -0
  1282. package/node_modules/@nklisch/pi-plugins/dist/formats/agent-skills/skill-reader.d.ts +18 -0
  1283. package/node_modules/@nklisch/pi-plugins/dist/formats/agent-skills/skill-reader.js +197 -0
  1284. package/node_modules/@nklisch/pi-plugins/dist/formats/agent-skills/skill-reader.js.map +1 -0
  1285. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/hook-reader.d.ts +5 -0
  1286. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/hook-reader.js +12 -0
  1287. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/hook-reader.js.map +1 -0
  1288. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/manifest-reader.d.ts +4 -0
  1289. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/manifest-reader.js +50 -0
  1290. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/manifest-reader.js.map +1 -0
  1291. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/marketplace-reader.d.ts +5 -0
  1292. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/marketplace-reader.js +275 -0
  1293. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/marketplace-reader.js.map +1 -0
  1294. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/mcp-reader.d.ts +5 -0
  1295. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/mcp-reader.js +5 -0
  1296. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/mcp-reader.js.map +1 -0
  1297. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/state-reader.d.ts +97 -0
  1298. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/state-reader.js +139 -0
  1299. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/state-reader.js.map +1 -0
  1300. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/user-config-reader.d.ts +18 -0
  1301. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/user-config-reader.js +240 -0
  1302. package/node_modules/@nklisch/pi-plugins/dist/formats/claude/user-config-reader.js.map +1 -0
  1303. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/hook-reader.d.ts +5 -0
  1304. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/hook-reader.js +12 -0
  1305. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/hook-reader.js.map +1 -0
  1306. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/manifest-reader.d.ts +4 -0
  1307. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/manifest-reader.js +22 -0
  1308. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/manifest-reader.js.map +1 -0
  1309. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/marketplace-reader.d.ts +5 -0
  1310. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/marketplace-reader.js +253 -0
  1311. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/marketplace-reader.js.map +1 -0
  1312. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/mcp-reader.d.ts +5 -0
  1313. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/mcp-reader.js +5 -0
  1314. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/mcp-reader.js.map +1 -0
  1315. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/state-reader.d.ts +50 -0
  1316. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/state-reader.js +111 -0
  1317. package/node_modules/@nklisch/pi-plugins/dist/formats/codex/state-reader.js.map +1 -0
  1318. package/node_modules/@nklisch/pi-plugins/dist/formats/foreign-declaration.d.ts +29 -0
  1319. package/node_modules/@nklisch/pi-plugins/dist/formats/foreign-declaration.js +121 -0
  1320. package/node_modules/@nklisch/pi-plugins/dist/formats/foreign-declaration.js.map +1 -0
  1321. package/node_modules/@nklisch/pi-plugins/dist/formats/hook-reader-support.d.ts +44 -0
  1322. package/node_modules/@nklisch/pi-plugins/dist/formats/hook-reader-support.js +456 -0
  1323. package/node_modules/@nklisch/pi-plugins/dist/formats/hook-reader-support.js.map +1 -0
  1324. package/node_modules/@nklisch/pi-plugins/dist/formats/marketplace-merger.d.ts +22 -0
  1325. package/node_modules/@nklisch/pi-plugins/dist/formats/marketplace-merger.js +570 -0
  1326. package/node_modules/@nklisch/pi-plugins/dist/formats/marketplace-merger.js.map +1 -0
  1327. package/node_modules/@nklisch/pi-plugins/dist/formats/marketplace-reader-support.d.ts +131 -0
  1328. package/node_modules/@nklisch/pi-plugins/dist/formats/marketplace-reader-support.js +783 -0
  1329. package/node_modules/@nklisch/pi-plugins/dist/formats/marketplace-reader-support.js.map +1 -0
  1330. package/node_modules/@nklisch/pi-plugins/dist/formats/mcp-reader-support.d.ts +19 -0
  1331. package/node_modules/@nklisch/pi-plugins/dist/formats/mcp-reader-support.js +215 -0
  1332. package/node_modules/@nklisch/pi-plugins/dist/formats/mcp-reader-support.js.map +1 -0
  1333. package/node_modules/@nklisch/pi-plugins/dist/formats/plugin-manifest.d.ts +24 -0
  1334. package/node_modules/@nklisch/pi-plugins/dist/formats/plugin-manifest.js +288 -0
  1335. package/node_modules/@nklisch/pi-plugins/dist/formats/plugin-manifest.js.map +1 -0
  1336. package/node_modules/@nklisch/pi-plugins/dist/formats/stable-component-id.d.ts +5 -0
  1337. package/node_modules/@nklisch/pi-plugins/dist/formats/stable-component-id.js +108 -0
  1338. package/node_modules/@nklisch/pi-plugins/dist/formats/stable-component-id.js.map +1 -0
  1339. package/node_modules/@nklisch/pi-plugins/dist/index.d.ts +335 -0
  1340. package/node_modules/@nklisch/pi-plugins/dist/index.js +181 -0
  1341. package/node_modules/@nklisch/pi-plugins/dist/index.js.map +1 -0
  1342. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/adoption/node-foreign-state-files.d.ts +28 -0
  1343. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/adoption/node-foreign-state-files.js +208 -0
  1344. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/adoption/node-foreign-state-files.js.map +1 -0
  1345. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/archive/tar-reader.d.ts +15 -0
  1346. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/archive/tar-reader.js +516 -0
  1347. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/archive/tar-reader.js.map +1 -0
  1348. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/configuration/node-configuration-path.d.ts +13 -0
  1349. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/configuration/node-configuration-path.js +49 -0
  1350. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/configuration/node-configuration-path.js.map +1 -0
  1351. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/configuration/sqlite-plugin-configuration-store.d.ts +13 -0
  1352. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/configuration/sqlite-plugin-configuration-store.js +165 -0
  1353. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/configuration/sqlite-plugin-configuration-store.js.map +1 -0
  1354. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-control-headless-runner.d.ts +20 -0
  1355. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-control-headless-runner.js +205 -0
  1356. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-control-headless-runner.js.map +1 -0
  1357. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-control-input.d.ts +10 -0
  1358. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-control-input.js +229 -0
  1359. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-control-input.js.map +1 -0
  1360. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-json-lines-sink.d.ts +7 -0
  1361. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-json-lines-sink.js +126 -0
  1362. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/control/node-json-lines-sink.js.map +1 -0
  1363. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/environment/node-mcp-launch-environment.d.ts +3 -0
  1364. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/environment/node-mcp-launch-environment.js +67 -0
  1365. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/environment/node-mcp-launch-environment.js.map +1 -0
  1366. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-root-resolver.d.ts +13 -0
  1367. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-root-resolver.js +156 -0
  1368. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-root-resolver.js.map +1 -0
  1369. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-store-durability.d.ts +15 -0
  1370. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-store-durability.js +165 -0
  1371. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-store-durability.js.map +1 -0
  1372. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-store-layout.d.ts +56 -0
  1373. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-store-layout.js +280 -0
  1374. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/content-store-layout.js.map +1 -0
  1375. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/create-content-store.d.ts +29 -0
  1376. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/create-content-store.js +50 -0
  1377. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/create-content-store.js.map +1 -0
  1378. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.d.ts +2029 -0
  1379. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.js +541 -0
  1380. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/immutable-content-store.js.map +1 -0
  1381. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/installed-plugin-loader.d.ts +15 -0
  1382. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/installed-plugin-loader.js +80 -0
  1383. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/installed-plugin-loader.js.map +1 -0
  1384. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-backed-file.d.ts +15 -0
  1385. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-backed-file.js +169 -0
  1386. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-backed-file.js.map +1 -0
  1387. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-content-reader.d.ts +7 -0
  1388. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-content-reader.js +55 -0
  1389. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-content-reader.js.map +1 -0
  1390. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-skill-path-verifier.d.ts +6 -0
  1391. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-skill-path-verifier.js +73 -0
  1392. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/manifest-skill-path-verifier.js.map +1 -0
  1393. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/marketplace-local-source.d.ts +3 -0
  1394. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/marketplace-local-source.js +24 -0
  1395. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/marketplace-local-source.js.map +1 -0
  1396. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/persistent-data-removal.d.ts +8 -0
  1397. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/persistent-data-removal.js +37 -0
  1398. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/persistent-data-removal.js.map +1 -0
  1399. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/prepared-tree-cleanup.d.ts +11 -0
  1400. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/prepared-tree-cleanup.js +76 -0
  1401. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/prepared-tree-cleanup.js.map +1 -0
  1402. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/runtime-projection-cache.d.ts +10 -0
  1403. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/runtime-projection-cache.js +119 -0
  1404. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/runtime-projection-cache.js.map +1 -0
  1405. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/runtime-root-store.d.ts +55 -0
  1406. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/runtime-root-store.js +682 -0
  1407. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/runtime-root-store.js.map +1 -0
  1408. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/secure-content-writer.d.ts +34 -0
  1409. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/secure-content-writer.js +803 -0
  1410. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/secure-content-writer.js.map +1 -0
  1411. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.d.ts +27 -0
  1412. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.js +185 -0
  1413. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/filesystem/staging-allocator.js.map +1 -0
  1414. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/git/git-source-acquirer.d.ts +15 -0
  1415. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/git/git-source-acquirer.js +560 -0
  1416. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/git/git-source-acquirer.js.map +1 -0
  1417. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/http/bounded-fetch.d.ts +59 -0
  1418. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/http/bounded-fetch.js +381 -0
  1419. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/http/bounded-fetch.js.map +1 -0
  1420. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/logging/redaction.d.ts +13 -0
  1421. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/logging/redaction.js +63 -0
  1422. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/logging/redaction.js.map +1 -0
  1423. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/network/network-egress-policy.d.ts +35 -0
  1424. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/network/network-egress-policy.js +251 -0
  1425. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/network/network-egress-policy.js.map +1 -0
  1426. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-control-timeout.d.ts +2 -0
  1427. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-control-timeout.js +26 -0
  1428. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-control-timeout.js.map +1 -0
  1429. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-identifiers.d.ts +16 -0
  1430. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-identifiers.js +47 -0
  1431. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-identifiers.js.map +1 -0
  1432. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-lifecycle-clock.d.ts +4 -0
  1433. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-lifecycle-clock.js +15 -0
  1434. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/node/node-lifecycle-clock.js.map +1 -0
  1435. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/npm/npm-registry-client.d.ts +28 -0
  1436. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/npm/npm-registry-client.js +392 -0
  1437. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/npm/npm-registry-client.js.map +1 -0
  1438. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/npm/npm-source-acquirer.d.ts +11 -0
  1439. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/npm/npm-source-acquirer.js +147 -0
  1440. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/npm/npm-source-acquirer.js.map +1 -0
  1441. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/command-runner.d.ts +17 -0
  1442. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/command-runner.js +334 -0
  1443. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/command-runner.js.map +1 -0
  1444. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/hook-executable-resolver.d.ts +13 -0
  1445. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/hook-executable-resolver.js +90 -0
  1446. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/hook-executable-resolver.js.map +1 -0
  1447. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/process-identity.d.ts +15 -0
  1448. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/process-identity.js +35 -0
  1449. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/process-identity.js.map +1 -0
  1450. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/refresh-claim-owner.d.ts +3 -0
  1451. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/refresh-claim-owner.js +13 -0
  1452. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/process/refresh-claim-owner.js.map +1 -0
  1453. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-intent-file.d.ts +7 -0
  1454. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-intent-file.js +314 -0
  1455. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-intent-file.js.map +1 -0
  1456. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-path-authority.d.ts +20 -0
  1457. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-path-authority.js +83 -0
  1458. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-path-authority.js.map +1 -0
  1459. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-root-resolver.d.ts +15 -0
  1460. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-root-resolver.js +73 -0
  1461. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/project/node-project-root-resolver.js.map +1 -0
  1462. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.d.ts +23 -0
  1463. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.js +81 -0
  1464. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/create-node-recovery-adapters.js.map +1 -0
  1465. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.d.ts +17 -0
  1466. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js +84 -0
  1467. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/local-recovery-filesystem.js.map +1 -0
  1468. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.d.ts +7 -0
  1469. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js +97 -0
  1470. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/process-revision-leases.js.map +1 -0
  1471. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.d.ts +3 -0
  1472. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.js +83 -0
  1473. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/recovery-artifact-scanner.js.map +1 -0
  1474. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.d.ts +3 -0
  1475. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.js +178 -0
  1476. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/revision-artifact-store.js.map +1 -0
  1477. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.d.ts +7 -0
  1478. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js +73 -0
  1479. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-revision-retention.js.map +1 -0
  1480. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.d.ts +24 -0
  1481. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js +463 -0
  1482. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/recovery/sqlite-transition-journal.js.map +1 -0
  1483. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/secrets/create-platform-secret-store.d.ts +20 -0
  1484. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/secrets/create-platform-secret-store.js +23 -0
  1485. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/secrets/create-platform-secret-store.js.map +1 -0
  1486. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/secrets/unavailable-secret-store.d.ts +10 -0
  1487. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/secrets/unavailable-secret-store.js +22 -0
  1488. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/secrets/unavailable-secret-store.js.map +1 -0
  1489. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/source/create-source-materializers.d.ts +27 -0
  1490. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/source/create-source-materializers.js +75 -0
  1491. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/source/create-source-materializers.js.map +1 -0
  1492. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.d.ts +22 -0
  1493. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.js +256 -0
  1494. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/identity-bound-sqlite.js.map +1 -0
  1495. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.d.ts +5 -0
  1496. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.js +17 -0
  1497. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/keyed-mutation-scheduler.js.map +1 -0
  1498. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-state-defaults.d.ts +13 -0
  1499. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-state-defaults.js +36 -0
  1500. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/lifecycle-state-defaults.js.map +1 -0
  1501. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/local-lock-filesystem.d.ts +10 -0
  1502. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/local-lock-filesystem.js +101 -0
  1503. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/local-lock-filesystem.js.map +1 -0
  1504. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.d.ts +30 -0
  1505. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js +502 -0
  1506. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-lifecycle-state-store.js.map +1 -0
  1507. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.d.ts +25 -0
  1508. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js +826 -0
  1509. package/node_modules/@nklisch/pi-plugins/dist/infrastructure/state/sqlite-scope-lock.js.map +1 -0
  1510. package/node_modules/@nklisch/pi-plugins/dist/pi/extension.d.ts +3 -0
  1511. package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js +40 -0
  1512. package/node_modules/@nklisch/pi-plugins/dist/pi/extension.js.map +1 -0
  1513. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-command-hook-runtime.d.ts +18 -0
  1514. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-command-hook-runtime.js +181 -0
  1515. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-command-hook-runtime.js.map +1 -0
  1516. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-hook-decision-adapter.d.ts +23 -0
  1517. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-hook-decision-adapter.js +118 -0
  1518. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-hook-decision-adapter.js.map +1 -0
  1519. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-hook-event-adapter.d.ts +25 -0
  1520. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-hook-event-adapter.js +48 -0
  1521. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-hook-event-adapter.js.map +1 -0
  1522. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-session-evidence.d.ts +5 -0
  1523. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-session-evidence.js +28 -0
  1524. package/node_modules/@nklisch/pi-plugins/dist/pi/hooks/pi-session-evidence.js.map +1 -0
  1525. package/node_modules/@nklisch/pi-plugins/dist/pi/index.d.ts +4 -0
  1526. package/node_modules/@nklisch/pi-plugins/dist/pi/index.js +3 -0
  1527. package/node_modules/@nklisch/pi-plugins/dist/pi/index.js.map +1 -0
  1528. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/confirmation-surface.d.ts +36 -0
  1529. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/confirmation-surface.js +106 -0
  1530. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/confirmation-surface.js.map +1 -0
  1531. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/masked-input-surface.d.ts +32 -0
  1532. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/masked-input-surface.js +114 -0
  1533. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/masked-input-surface.js.map +1 -0
  1534. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.d.ts +30 -0
  1535. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.js +196 -0
  1536. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-control-input.js.map +1 -0
  1537. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-manager-frame-sink.d.ts +7 -0
  1538. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-manager-frame-sink.js +22 -0
  1539. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-manager-frame-sink.js.map +1 -0
  1540. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-terminal-text.d.ts +13 -0
  1541. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-terminal-text.js +32 -0
  1542. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/pi-terminal-text.js.map +1 -0
  1543. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.d.ts +42 -0
  1544. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js +339 -0
  1545. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-component.js.map +1 -0
  1546. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-flow.d.ts +76 -0
  1547. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-flow.js +115 -0
  1548. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-install-flow.js.map +1 -0
  1549. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.d.ts +93 -0
  1550. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js +193 -0
  1551. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-actions.js.map +1 -0
  1552. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-commands.d.ts +29 -0
  1553. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-commands.js +86 -0
  1554. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-commands.js.map +1 -0
  1555. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.d.ts +41 -0
  1556. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.js +290 -0
  1557. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-component.js.map +1 -0
  1558. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.d.ts +40 -0
  1559. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js +477 -0
  1560. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-controller.js.map +1 -0
  1561. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.d.ts +291 -0
  1562. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js +301 -0
  1563. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-model.js.map +1 -0
  1564. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.d.ts +10 -0
  1565. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js +310 -0
  1566. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-render.js.map +1 -0
  1567. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.d.ts +14 -0
  1568. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js +722 -0
  1569. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-session.js.map +1 -0
  1570. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.d.ts +73 -0
  1571. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.js +102 -0
  1572. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-manager-status.js.map +1 -0
  1573. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.d.ts +41 -0
  1574. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js +178 -0
  1575. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/plugin-operation-view.js.map +1 -0
  1576. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/text-input-surface.d.ts +32 -0
  1577. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/text-input-surface.js +119 -0
  1578. package/node_modules/@nklisch/pi-plugins/dist/pi/manager/text-input-surface.js.map +1 -0
  1579. package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.d.ts +7 -0
  1580. package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js +103 -0
  1581. package/node_modules/@nklisch/pi-plugins/dist/pi/native-control-human.js.map +1 -0
  1582. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-control-channel.d.ts +15 -0
  1583. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-control-channel.js +132 -0
  1584. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-control-channel.js.map +1 -0
  1585. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-manager-reload-handoff.d.ts +28 -0
  1586. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-manager-reload-handoff.js +110 -0
  1587. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-manager-reload-handoff.js.map +1 -0
  1588. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-project-context.d.ts +22 -0
  1589. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-project-context.js +79 -0
  1590. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-project-context.js.map +1 -0
  1591. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.d.ts +24 -0
  1592. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.js +77 -0
  1593. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-reload-broker.js.map +1 -0
  1594. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-session-binding.d.ts +4 -0
  1595. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-session-binding.js +59 -0
  1596. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-session-binding.js.map +1 -0
  1597. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-subagent-session-context.d.ts +8 -0
  1598. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-subagent-session-context.js +20 -0
  1599. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-subagent-session-context.js.map +1 -0
  1600. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-update-notification-publisher.d.ts +16 -0
  1601. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-update-notification-publisher.js +66 -0
  1602. package/node_modules/@nklisch/pi-plugins/dist/pi/pi-update-notification-publisher.js.map +1 -0
  1603. package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.d.ts +23 -0
  1604. package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.js +97 -0
  1605. package/node_modules/@nklisch/pi-plugins/dist/pi/plain-language.js.map +1 -0
  1606. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.d.ts +40 -0
  1607. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js +162 -0
  1608. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-command.js.map +1 -0
  1609. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-host-bootstrap.d.ts +28 -0
  1610. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-host-bootstrap.js +119 -0
  1611. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-host-bootstrap.js.map +1 -0
  1612. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-host-runtime-delegates.d.ts +16 -0
  1613. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-host-runtime-delegates.js +79 -0
  1614. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-host-runtime-delegates.js.map +1 -0
  1615. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.d.ts +19 -0
  1616. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.js +41 -0
  1617. package/node_modules/@nklisch/pi-plugins/dist/pi/plugin-manager-lifecycle.js.map +1 -0
  1618. package/node_modules/@nklisch/pi-plugins/dist/pi/production-subagents-extension.d.ts +7 -0
  1619. package/node_modules/@nklisch/pi-plugins/dist/pi/production-subagents-extension.js +11 -0
  1620. package/node_modules/@nklisch/pi-plugins/dist/pi/production-subagents-extension.js.map +1 -0
  1621. package/node_modules/@nklisch/pi-plugins/dist/pi/skill-resource-discovery.d.ts +4 -0
  1622. package/node_modules/@nklisch/pi-plugins/dist/pi/skill-resource-discovery.js +45 -0
  1623. package/node_modules/@nklisch/pi-plugins/dist/pi/skill-resource-discovery.js.map +1 -0
  1624. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/event-contract.d.ts +3155 -0
  1625. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/event-contract.js +156 -0
  1626. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/event-contract.js.map +1 -0
  1627. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/event-input.d.ts +105 -0
  1628. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/event-input.js +103 -0
  1629. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/event-input.js.map +1 -0
  1630. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/guarded-command-executor.d.ts +29 -0
  1631. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/guarded-command-executor.js +229 -0
  1632. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/guarded-command-executor.js.map +1 -0
  1633. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-decision-aggregator.d.ts +15 -0
  1634. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-decision-aggregator.js +123 -0
  1635. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-decision-aggregator.js.map +1 -0
  1636. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-event-planner.d.ts +13 -0
  1637. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-event-planner.js +248 -0
  1638. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-event-planner.js.map +1 -0
  1639. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-failure-log.d.ts +27 -0
  1640. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-failure-log.js +63 -0
  1641. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-failure-log.js.map +1 -0
  1642. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-launch-contract.d.ts +27 -0
  1643. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-launch-contract.js +98 -0
  1644. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-launch-contract.js.map +1 -0
  1645. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-output-parser.d.ts +18 -0
  1646. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-output-parser.js +182 -0
  1647. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-output-parser.js.map +1 -0
  1648. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-runtime-diagnostic.d.ts +107 -0
  1649. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-runtime-diagnostic.js +64 -0
  1650. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/hook-runtime-diagnostic.js.map +1 -0
  1651. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/stop-continuation-guard.d.ts +11 -0
  1652. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/stop-continuation-guard.js +27 -0
  1653. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/stop-continuation-guard.js.map +1 -0
  1654. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/tool-event-input.d.ts +38 -0
  1655. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/tool-event-input.js +129 -0
  1656. package/node_modules/@nklisch/pi-plugins/dist/runtime/hooks/tool-event-input.js.map +1 -0
  1657. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-error.d.ts +5 -0
  1658. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-error.js +29 -0
  1659. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-error.js.map +1 -0
  1660. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-value-provider.d.ts +16 -0
  1661. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-value-provider.js +405 -0
  1662. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/launch-value-provider.js.map +1 -0
  1663. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/lifecycle-participant.d.ts +336 -0
  1664. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/lifecycle-participant.js +544 -0
  1665. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/lifecycle-participant.js.map +1 -0
  1666. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.d.ts +5 -0
  1667. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js +50 -0
  1668. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-package.js.map +1 -0
  1669. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-runtime.d.ts +23 -0
  1670. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-runtime.js +366 -0
  1671. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/pi-mcp-adapter-runtime.js.map +1 -0
  1672. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.d.ts +18 -0
  1673. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.js +180 -0
  1674. package/node_modules/@nklisch/pi-plugins/dist/runtime/mcp/revision-lease-provider.js.map +1 -0
  1675. package/node_modules/@nklisch/pi-plugins/dist/runtime/plugin-launch-roots.d.ts +11 -0
  1676. package/node_modules/@nklisch/pi-plugins/dist/runtime/plugin-launch-roots.js +12 -0
  1677. package/node_modules/@nklisch/pi-plugins/dist/runtime/plugin-launch-roots.js.map +1 -0
  1678. package/node_modules/@nklisch/pi-plugins/dist/runtime/published-package-receipt.d.ts +35 -0
  1679. package/node_modules/@nklisch/pi-plugins/dist/runtime/published-package-receipt.js +180 -0
  1680. package/node_modules/@nklisch/pi-plugins/dist/runtime/published-package-receipt.js.map +1 -0
  1681. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/lifecycle-participant.d.ts +30 -0
  1682. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/lifecycle-participant.js +180 -0
  1683. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/lifecycle-participant.js.map +1 -0
  1684. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/runtime-catalog.d.ts +35 -0
  1685. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/runtime-catalog.js +72 -0
  1686. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/runtime-catalog.js.map +1 -0
  1687. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/runtime-snapshot.d.ts +57 -0
  1688. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/runtime-snapshot.js +223 -0
  1689. package/node_modules/@nklisch/pi-plugins/dist/runtime/skill-hook/runtime-snapshot.js.map +1 -0
  1690. package/node_modules/@nklisch/pi-plugins/dist/runtime/skills/contribution-observation.d.ts +158 -0
  1691. package/node_modules/@nklisch/pi-plugins/dist/runtime/skills/contribution-observation.js +177 -0
  1692. package/node_modules/@nklisch/pi-plugins/dist/runtime/skills/contribution-observation.js.map +1 -0
  1693. package/node_modules/@nklisch/pi-plugins/dist/runtime/skills/resource-discovery.d.ts +59 -0
  1694. package/node_modules/@nklisch/pi-plugins/dist/runtime/skills/resource-discovery.js +263 -0
  1695. package/node_modules/@nklisch/pi-plugins/dist/runtime/skills/resource-discovery.js.map +1 -0
  1696. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/pi-subagents-lifecycle.d.ts +12 -0
  1697. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/pi-subagents-lifecycle.js +353 -0
  1698. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/pi-subagents-lifecycle.js.map +1 -0
  1699. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/pi-subagents-package.d.ts +8 -0
  1700. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/pi-subagents-package.js +91 -0
  1701. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/pi-subagents-package.js.map +1 -0
  1702. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/subagent-hook-coordinator.d.ts +22 -0
  1703. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/subagent-hook-coordinator.js +318 -0
  1704. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/subagent-hook-coordinator.js.map +1 -0
  1705. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/subagent-hook-session-context.d.ts +8 -0
  1706. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/subagent-hook-session-context.js +2 -0
  1707. package/node_modules/@nklisch/pi-plugins/dist/runtime/subagents/subagent-hook-session-context.js.map +1 -0
  1708. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/CHANGELOG.md +2197 -0
  1709. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/LICENSE +21 -0
  1710. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/README.md +430 -0
  1711. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/dist/public.d.ts +255 -0
  1712. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/dist/settings.d.ts +82 -0
  1713. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/FORK-MAINTENANCE.md +38 -0
  1714. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/VISION.md +32 -0
  1715. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/architecture.md +1246 -0
  1716. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/client-server-opportunities.md +127 -0
  1717. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-1-api-boundary.md +8 -0
  1718. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-10-structural-decomposition.md +141 -0
  1719. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-11-closure-to-class.md +100 -0
  1720. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-12-complexity-test-fixtures.md +55 -0
  1721. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-13-remaining-smells.md +88 -0
  1722. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-14-strip-policy.md +49 -0
  1723. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-15-domain-model-evolution.md +73 -0
  1724. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-16-invert-dependencies.md +144 -0
  1725. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-17-core-consolidation.md +214 -0
  1726. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-18-reconsider-ui.md +166 -0
  1727. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-19-implement-ui-decisions.md +282 -0
  1728. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-2-remove-scheduling.md +9 -0
  1729. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-3-remove-rpc-groupjoin.md +11 -0
  1730. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-4-implement-service.md +8 -0
  1731. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-5-decompose-index.md +42 -0
  1732. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-7-encapsulation.md +173 -0
  1733. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-8-testability.md +103 -0
  1734. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/architecture/history/phase-9-observation-ctx.md +122 -0
  1735. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/comparison-with-upstream.md +77 -0
  1736. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/decisions/0001-deferred-patches.md +80 -0
  1737. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/decisions/0002-extensions-on-a-minimal-core.md +98 -0
  1738. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/decisions/0003-publish-bundled-type-declarations.md +71 -0
  1739. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/decisions/0004-reconsider-ui-direction.md +279 -0
  1740. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/docs/decisions/0005-ordered-lifecycle-interceptors.md +40 -0
  1741. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/package.json +89 -0
  1742. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/config/agent-types.ts +133 -0
  1743. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/config/custom-agents.ts +106 -0
  1744. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/config/default-agents.ts +120 -0
  1745. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/config/invocation-config.ts +30 -0
  1746. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/debug.ts +14 -0
  1747. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/handlers/index.ts +3 -0
  1748. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/handlers/interrupt.ts +49 -0
  1749. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/handlers/lifecycle.ts +63 -0
  1750. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/handlers/tool-start.ts +32 -0
  1751. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/index.ts +188 -0
  1752. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/layered-settings.ts +105 -0
  1753. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/child-lifecycle.ts +90 -0
  1754. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/concurrency-limiter.ts +60 -0
  1755. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/create-subagent-session.ts +245 -0
  1756. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/lifecycle-interceptor.ts +407 -0
  1757. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/parent-snapshot.ts +48 -0
  1758. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/run-listeners.ts +37 -0
  1759. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/subagent-manager.ts +397 -0
  1760. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/subagent-session.ts +368 -0
  1761. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/subagent-state.ts +201 -0
  1762. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/subagent.ts +531 -0
  1763. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/turn-limits.ts +13 -0
  1764. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/usage.ts +60 -0
  1765. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/workspace-bracket.ts +59 -0
  1766. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/lifecycle/workspace.ts +47 -0
  1767. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/observation/composite-subagent-observer.ts +49 -0
  1768. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/observation/notification.ts +205 -0
  1769. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/observation/record-observer.ts +78 -0
  1770. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/observation/renderer.ts +67 -0
  1771. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/observation/subagent-events-observer.ts +92 -0
  1772. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/runtime.ts +79 -0
  1773. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/service/service-adapter.ts +156 -0
  1774. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/service/service.ts +154 -0
  1775. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/session/content-items.ts +53 -0
  1776. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/session/context.ts +80 -0
  1777. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/session/conversation.ts +49 -0
  1778. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/session/env.ts +40 -0
  1779. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/session/model-resolver.ts +122 -0
  1780. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/session/prompts.ts +92 -0
  1781. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/session/session-config.ts +187 -0
  1782. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/session/session-dir.ts +38 -0
  1783. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/settings.ts +228 -0
  1784. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/agent-tool.ts +247 -0
  1785. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/background-spawner.ts +72 -0
  1786. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/foreground-runner.ts +133 -0
  1787. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/get-result-report.ts +60 -0
  1788. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/get-result-tool.ts +108 -0
  1789. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/helpers.ts +121 -0
  1790. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/result-renderer.ts +122 -0
  1791. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/spawn-config.ts +157 -0
  1792. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/tools/steer-tool.ts +109 -0
  1793. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/types.ts +119 -0
  1794. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/ui/agent-widget.ts +300 -0
  1795. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/ui/display.ts +177 -0
  1796. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/ui/session-navigation.ts +145 -0
  1797. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/ui/session-navigator.ts +402 -0
  1798. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/ui/subagents-settings.ts +83 -0
  1799. package/node_modules/@nklisch/pi-plugins/node_modules/@nklisch/pi-subagents/src/ui/widget-renderer.ts +292 -0
  1800. package/node_modules/@nklisch/pi-plugins/package.json +95 -0
  1801. package/node_modules/pi-catppuccin-tui/LICENSE +21 -0
  1802. package/node_modules/pi-catppuccin-tui/README.md +115 -0
  1803. package/node_modules/pi-catppuccin-tui/assets/preview.svg +49 -0
  1804. package/node_modules/pi-catppuccin-tui/extensions/catppuccin-tui.ts +336 -0
  1805. package/node_modules/pi-catppuccin-tui/package.json +41 -0
  1806. package/node_modules/pi-catppuccin-tui/scripts/generate-themes.mjs +217 -0
  1807. package/node_modules/pi-catppuccin-tui/scripts/validate-extension.mjs +33 -0
  1808. package/node_modules/pi-catppuccin-tui/scripts/validate-themes.mjs +140 -0
  1809. package/node_modules/pi-catppuccin-tui/themes/catppuccin-tui-frappe.json +90 -0
  1810. package/node_modules/pi-catppuccin-tui/themes/catppuccin-tui-latte.json +90 -0
  1811. package/node_modules/pi-catppuccin-tui/themes/catppuccin-tui-macchiato.json +90 -0
  1812. package/node_modules/pi-catppuccin-tui/themes/catppuccin-tui-mocha.json +90 -0
  1813. package/node_modules/pi-tool-display/CHANGELOG.md +326 -0
  1814. package/node_modules/pi-tool-display/LICENSE +21 -0
  1815. package/node_modules/pi-tool-display/README.md +413 -0
  1816. package/node_modules/pi-tool-display/config/config.example.json +39 -0
  1817. package/node_modules/pi-tool-display/index.ts +3 -0
  1818. package/node_modules/pi-tool-display/package.json +86 -0
  1819. package/node_modules/pi-tool-display/src/agent-dir.ts +32 -0
  1820. package/node_modules/pi-tool-display/src/ansi-utils.ts +116 -0
  1821. package/node_modules/pi-tool-display/src/bash-display.ts +212 -0
  1822. package/node_modules/pi-tool-display/src/capabilities.ts +85 -0
  1823. package/node_modules/pi-tool-display/src/config-modal.ts +514 -0
  1824. package/node_modules/pi-tool-display/src/config-store.ts +303 -0
  1825. package/node_modules/pi-tool-display/src/debug-logger.ts +150 -0
  1826. package/node_modules/pi-tool-display/src/diff-presentation.ts +72 -0
  1827. package/node_modules/pi-tool-display/src/diff-renderer.ts +2517 -0
  1828. package/node_modules/pi-tool-display/src/disposable.ts +34 -0
  1829. package/node_modules/pi-tool-display/src/extension-lifecycle.ts +14 -0
  1830. package/node_modules/pi-tool-display/src/index.ts +109 -0
  1831. package/node_modules/pi-tool-display/src/line-width-safety.ts +93 -0
  1832. package/node_modules/pi-tool-display/src/modal-icons.ts +57 -0
  1833. package/node_modules/pi-tool-display/src/pending-diff-preview.ts +370 -0
  1834. package/node_modules/pi-tool-display/src/presets.ts +108 -0
  1835. package/node_modules/pi-tool-display/src/render-utils.ts +186 -0
  1836. package/node_modules/pi-tool-display/src/settings-inspector-modal.ts +475 -0
  1837. package/node_modules/pi-tool-display/src/thinking-label.ts +343 -0
  1838. package/node_modules/pi-tool-display/src/tool-metadata.ts +139 -0
  1839. package/node_modules/pi-tool-display/src/tool-overrides.ts +2121 -0
  1840. package/node_modules/pi-tool-display/src/types.ts +105 -0
  1841. package/node_modules/pi-tool-display/src/user-message-box-markdown.ts +64 -0
  1842. package/node_modules/pi-tool-display/src/user-message-box-native.ts +66 -0
  1843. package/node_modules/pi-tool-display/src/user-message-box-patch.ts +72 -0
  1844. package/node_modules/pi-tool-display/src/user-message-box-renderer.ts +419 -0
  1845. package/node_modules/pi-tool-display/src/user-message-box-utils.ts +106 -0
  1846. package/node_modules/pi-tool-display/src/write-display-utils.ts +31 -0
  1847. package/node_modules/pi-tool-display/src/zellij-modal.ts +1027 -0
  1848. package/node_modules/pi-tool-display/tool-display-api-consumer.d.ts +30 -0
  1849. package/node_modules/pi-tool-display/tool-display-api-consumer.js +40 -0
  1850. package/node_modules/pi-web-access/CHANGELOG.md +437 -0
  1851. package/node_modules/pi-web-access/LICENSE +21 -0
  1852. package/node_modules/pi-web-access/README.md +357 -0
  1853. package/node_modules/pi-web-access/activity.ts +101 -0
  1854. package/node_modules/pi-web-access/banner.png +0 -0
  1855. package/node_modules/pi-web-access/brave.ts +210 -0
  1856. package/node_modules/pi-web-access/chrome-cookies.ts +322 -0
  1857. package/node_modules/pi-web-access/curator-page.ts +3399 -0
  1858. package/node_modules/pi-web-access/curator-server.ts +657 -0
  1859. package/node_modules/pi-web-access/exa.ts +454 -0
  1860. package/node_modules/pi-web-access/extract.ts +704 -0
  1861. package/node_modules/pi-web-access/fetch-params.ts +67 -0
  1862. package/node_modules/pi-web-access/gemini-api.ts +163 -0
  1863. package/node_modules/pi-web-access/gemini-search.ts +431 -0
  1864. package/node_modules/pi-web-access/gemini-url-context.ts +126 -0
  1865. package/node_modules/pi-web-access/gemini-web-config.ts +51 -0
  1866. package/node_modules/pi-web-access/gemini-web.ts +411 -0
  1867. package/node_modules/pi-web-access/github-api.ts +196 -0
  1868. package/node_modules/pi-web-access/github-extract.ts +634 -0
  1869. package/node_modules/pi-web-access/index.ts +2598 -0
  1870. package/node_modules/pi-web-access/openai-search.ts +399 -0
  1871. package/node_modules/pi-web-access/package.json +51 -0
  1872. package/node_modules/pi-web-access/parallel.ts +360 -0
  1873. package/node_modules/pi-web-access/pdf-extract.ts +192 -0
  1874. package/node_modules/pi-web-access/perplexity.ts +194 -0
  1875. package/node_modules/pi-web-access/pi-web-fetch-demo.mp4 +0 -0
  1876. package/node_modules/pi-web-access/render-search-error.ts +170 -0
  1877. package/node_modules/pi-web-access/rsc-extract.ts +338 -0
  1878. package/node_modules/pi-web-access/skills/librarian/SKILL.md +195 -0
  1879. package/node_modules/pi-web-access/ssrf-protection.ts +280 -0
  1880. package/node_modules/pi-web-access/storage.ts +72 -0
  1881. package/node_modules/pi-web-access/summary-model-scope.ts +88 -0
  1882. package/node_modules/pi-web-access/summary-review.ts +326 -0
  1883. package/node_modules/pi-web-access/tavily.ts +205 -0
  1884. package/node_modules/pi-web-access/test/auto-summary-source.test.mjs +26 -0
  1885. package/node_modules/pi-web-access/test/config-path.test.mjs +177 -0
  1886. package/node_modules/pi-web-access/test/curator-fallback.test.mjs +33 -0
  1887. package/node_modules/pi-web-access/test/curator-server-timeout.test.mjs +106 -0
  1888. package/node_modules/pi-web-access/test/fetch-params.test.mjs +68 -0
  1889. package/node_modules/pi-web-access/test/gemini-web-cookie-opt-in.test.mjs +43 -0
  1890. package/node_modules/pi-web-access/test/parallel-curator-state.test.mjs +22 -0
  1891. package/node_modules/pi-web-access/test/parallel.test.mjs +145 -0
  1892. package/node_modules/pi-web-access/test/pdf-extract.test.mjs +95 -0
  1893. package/node_modules/pi-web-access/test/search-error-render.test.mjs +155 -0
  1894. package/node_modules/pi-web-access/test/search-providers.test.mjs +285 -0
  1895. package/node_modules/pi-web-access/test/ssrf-allow-ranges-config.test.mjs +111 -0
  1896. package/node_modules/pi-web-access/test/ssrf-protection.test.mjs +213 -0
  1897. package/node_modules/pi-web-access/test/summary-model-scope.test.mjs +72 -0
  1898. package/node_modules/pi-web-access/test/tool-registration-config.test.mjs +24 -0
  1899. package/node_modules/pi-web-access/test/youtube-extract-errors.test.mjs +64 -0
  1900. package/node_modules/pi-web-access/utils.ts +57 -0
  1901. package/node_modules/pi-web-access/video-extract.ts +377 -0
  1902. package/node_modules/pi-web-access/youtube-extract.ts +326 -0
  1903. package/package.json +90 -0
  1904. package/test/verify-bundle.mjs +55 -0
@@ -0,0 +1,2113 @@
1
+ import { analyzeBashCommand } from "../parse/native-parser.ts";
2
+ import type { BashStage, ToolShape } from "../parse/shape.ts";
3
+ import {
4
+ flattenStages,
5
+ hasStdoutRedirect,
6
+ hasSubstitution,
7
+ primaryExecutableFromShape,
8
+ } from "../parse/shape-utils.ts";
9
+ import type {
10
+ DecisionEffect,
11
+ DecisionSource,
12
+ EffectivePolicy,
13
+ PolicyRule,
14
+ } from "../policy/core.ts";
15
+ import {
16
+ classifyOverlap,
17
+ compileMatch,
18
+ evalMatcher,
19
+ getMatcherExpr,
20
+ inspectable,
21
+ type MatcherExpr,
22
+ type TriOverlap,
23
+ } from "../policy/core.ts";
24
+ import { programCatalogCommandsForExecutable } from "./adversarial.ts";
25
+ import type { CorpusFixtureRow } from "./history.ts";
26
+ import type {
27
+ CapturedOutcomeLabel,
28
+ PerCommandRow,
29
+ RatchetReport,
30
+ ReplayBashParser,
31
+ } from "./ratchet.ts";
32
+
33
+ export type ProposalKind = "data" | "core-matcher";
34
+
35
+ /** Where the apply skill routes an approved proposal. */
36
+ export type ProposalTarget =
37
+ | "user-global"
38
+ | "user-project"
39
+ | "shipped-pack"
40
+ | "core-matcher";
41
+
42
+ export type ProposalEffect = DecisionEffect;
43
+ export type ProposalScope = "global" | "project";
44
+
45
+ export interface ProposalExample {
46
+ readonly command: string;
47
+ readonly matches: boolean;
48
+ readonly capturedOutcome?: CapturedOutcomeLabel;
49
+ readonly note?: string;
50
+ }
51
+
52
+ /** A fixture the apply skill may add to the corpus. REFERENCE_PATTERNS vocabulary. */
53
+ export type ProposalFixtureSuggestion = CorpusFixtureRow;
54
+
55
+ export type FloorOverlapStatus = "disjoint" | "overlap" | "unknown";
56
+ export type FloorOverlapAction =
57
+ | "emit"
58
+ | "narrowed"
59
+ | "downgraded-to-review"
60
+ | "skipped-non-allow";
61
+
62
+ export interface FloorOverlapCheck {
63
+ readonly status: FloorOverlapStatus;
64
+ readonly action: FloorOverlapAction;
65
+ readonly checkedFloorRuleIds: readonly string[];
66
+ readonly overlappingFloorRuleIds: readonly string[];
67
+ readonly note: string;
68
+ }
69
+
70
+ export interface ProposalEvidence {
71
+ readonly executable: string;
72
+ readonly calls: number;
73
+ readonly unique: number;
74
+ readonly reviewCalls: number;
75
+ readonly hardBlockCalls: number;
76
+ readonly modelReviewCalls: number;
77
+ readonly capturedDenialCalls: number;
78
+ readonly behaviors: readonly string[];
79
+ readonly sampleCommands: readonly string[];
80
+ readonly capturedOutcomeBreakdown: ReadonlyMap<CapturedOutcomeLabel, number>;
81
+ }
82
+
83
+ /** Proposed reusable core DSL matcher combinator (design input, not shipped here). */
84
+ export interface CoreMatcherDesignInput {
85
+ readonly name: string;
86
+ readonly signature: string;
87
+ readonly gap: string;
88
+ readonly rationale: string;
89
+ readonly examples: readonly ProposalExample[];
90
+ }
91
+
92
+ export interface ProposalApprovalFraming {
93
+ readonly writesExecutableCode: boolean;
94
+ readonly touchesDsl: boolean;
95
+ readonly routesAsDesignInput: boolean;
96
+ readonly requiresAcknowledgment: boolean;
97
+ readonly summary: string;
98
+ }
99
+
100
+ export interface RuleProposal {
101
+ readonly id: string;
102
+ readonly kind: ProposalKind;
103
+ readonly target: ProposalTarget;
104
+ readonly effect: ProposalEffect;
105
+ readonly ruleId: string;
106
+ readonly packId?: string;
107
+ readonly match?: unknown;
108
+ readonly compiledMatch?: MatcherExpr;
109
+ readonly reason: string;
110
+ readonly scope: ProposalScope;
111
+ readonly provenance: { readonly source: "generated" };
112
+ readonly intendedProvenance: DecisionSource;
113
+ readonly evidence: ProposalEvidence;
114
+ readonly examples: readonly ProposalExample[];
115
+ readonly fixtureSuggestions: readonly ProposalFixtureSuggestion[];
116
+ readonly floorOverlap: FloorOverlapCheck;
117
+ readonly coreMatcher?: CoreMatcherDesignInput;
118
+ readonly approvalFraming: ProposalApprovalFraming;
119
+ readonly modelDrafted: boolean;
120
+ readonly warnings: readonly string[];
121
+ }
122
+
123
+ export type ClusterAddressableBy = "data" | "core-matcher" | "none";
124
+
125
+ export interface CommandSignature {
126
+ readonly program: string | undefined;
127
+ readonly arg0Set: readonly string[];
128
+ readonly flags: readonly string[];
129
+ readonly hasSubstitution: boolean;
130
+ readonly hasStdoutRedirect: boolean;
131
+ readonly parseDiagnostics: readonly string[];
132
+ }
133
+
134
+ export interface FrictionCluster {
135
+ readonly executable: string;
136
+ readonly rows: readonly PerCommandRow[];
137
+ readonly signature: CommandSignature;
138
+ readonly addressableBy: ClusterAddressableBy;
139
+ readonly frictionScore: number;
140
+ readonly behaviors: readonly string[];
141
+ readonly sampleCommands: readonly string[];
142
+ readonly evidence: ProposalEvidence;
143
+ readonly notes: readonly string[];
144
+ }
145
+
146
+ export interface ClusterFrictionOptions {
147
+ /** default analyzeBashCommand; injected to avoid WASM in unit tests */
148
+ readonly bashParser?: ReplayBashParser;
149
+ /** default 50 */
150
+ readonly maxClusters?: number;
151
+ }
152
+
153
+ export interface DraftedMatcher {
154
+ /** Exact JSON DSL matcher text that the apply skill can show or write. */
155
+ readonly match: unknown;
156
+ /** Derived IR from compileMatch; match is the source of truth. */
157
+ readonly compiled: MatcherExpr;
158
+ readonly effect: ProposalEffect;
159
+ readonly origin: "structural" | "model";
160
+ readonly notes: readonly string[];
161
+ }
162
+
163
+ export type FloorOverlapOutcome =
164
+ | { readonly action: "emit" }
165
+ | { readonly action: "narrowed"; readonly narrowed: DraftedMatcher }
166
+ | {
167
+ readonly action: "downgraded-to-review";
168
+ readonly downgraded: DraftedMatcher;
169
+ }
170
+ | { readonly action: "skipped-non-allow"; readonly note: string };
171
+
172
+ export interface ModelDraftContext {
173
+ readonly cluster: FrictionCluster;
174
+ readonly floor: readonly PolicyRule[];
175
+ readonly existingRuleIds: ReadonlySet<string>;
176
+ }
177
+
178
+ export interface ModelDraftResult {
179
+ readonly match: unknown;
180
+ readonly effect: ProposalEffect;
181
+ readonly reason: string;
182
+ }
183
+
184
+ /** Optional model-drafting port. Default: none (deterministic structural drafting only). */
185
+ export type ModelDrafter = (
186
+ context: ModelDraftContext,
187
+ ) => Promise<ModelDraftResult | undefined>;
188
+
189
+ export interface ProposeRulesInput {
190
+ readonly report: RatchetReport;
191
+ readonly currentPolicy: EffectivePolicy;
192
+ }
193
+
194
+ export interface ProposeRulesOptions {
195
+ readonly bashParser?: ReplayBashParser;
196
+ readonly modelDrafter?: ModelDrafter;
197
+ readonly clock?: () => Date;
198
+ readonly maxProposals?: number;
199
+ readonly maxClusters?: number;
200
+ }
201
+
202
+ interface ParsedCommandFacts {
203
+ readonly signature: CommandSignature;
204
+ readonly notes: readonly string[];
205
+ }
206
+
207
+ interface ParsedFrictionRow {
208
+ readonly row: PerCommandRow;
209
+ readonly executable: string;
210
+ readonly signature: CommandSignature;
211
+ readonly notes: readonly string[];
212
+ }
213
+
214
+ interface MutableCluster {
215
+ readonly executable: string;
216
+ readonly rows: PerCommandRow[];
217
+ readonly signatures: CommandSignature[];
218
+ readonly notes: string[];
219
+ }
220
+
221
+ interface SelectedDraft {
222
+ readonly draft: DraftedMatcher;
223
+ readonly floorOutcome: FloorOverlapOutcome;
224
+ }
225
+
226
+ interface ProposalTargeting {
227
+ readonly kind: ProposalKind;
228
+ readonly target: ProposalTarget;
229
+ readonly scope: ProposalScope;
230
+ readonly intendedProvenance: DecisionSource;
231
+ readonly packId?: string;
232
+ }
233
+
234
+ const DEFAULT_MAX_CLUSTERS = 50;
235
+ // Ratchet runs are not inherently one-change runs. The cap keeps noisy first
236
+ // passes readable while still allowing an initial backlog to produce a real
237
+ // evidence-sized set of proposals.
238
+ const DEFAULT_MAX_PROPOSALS = 20;
239
+ const DEFAULT_SAMPLE_COMMAND_LIMIT = 5;
240
+
241
+ const CAPTURED_OUTCOME_LABELS = [
242
+ "deterministic-allow",
243
+ "deterministic-deny",
244
+ "deterministic-review",
245
+ "model-allow",
246
+ "model-deny",
247
+ "model-review",
248
+ "human-allow",
249
+ "human-deny",
250
+ "block-and-log",
251
+ "fixture-fast-path",
252
+ "fixture-review",
253
+ "fixture-hard-block",
254
+ "no-captured-outcome",
255
+ ] as const satisfies readonly CapturedOutcomeLabel[];
256
+
257
+ const MODEL_OUTCOME_LABELS = new Set<CapturedOutcomeLabel>([
258
+ "model-allow",
259
+ "model-deny",
260
+ "model-review",
261
+ ]);
262
+
263
+ const DENIAL_OUTCOME_LABELS = new Set<CapturedOutcomeLabel>([
264
+ "deterministic-deny",
265
+ "model-deny",
266
+ "human-deny",
267
+ "block-and-log",
268
+ "fixture-hard-block",
269
+ ]);
270
+
271
+ const RISKY_ALLOW_BEHAVIORS = new Set([
272
+ "destructive-git",
273
+ "force-push",
274
+ "branch-delete",
275
+ "worktree-remove",
276
+ "hard-reset",
277
+ "git-clean",
278
+ "recursive-delete",
279
+ "privilege-escalation",
280
+ "broad-chmod",
281
+ "fork-bomb",
282
+ "disk-destructive",
283
+ "system-shutdown",
284
+ "remote-shell",
285
+ ]);
286
+
287
+ const SAFETY_FLAG_PROGRAMS = new Set(["prettier"]);
288
+
289
+ interface FloorCheckResult {
290
+ readonly allDisjoint: boolean;
291
+ readonly hasOverlap: boolean;
292
+ readonly hasUnknown: boolean;
293
+ readonly checkedRuleIds: readonly string[];
294
+ readonly unsafeRuleIds: readonly string[];
295
+ }
296
+
297
+ interface DecidableFloorFacts {
298
+ readonly programs: readonly string[];
299
+ readonly arg0Values: readonly string[];
300
+ }
301
+
302
+ /**
303
+ * Group the report's friction into clusters. Pure and total: parses sample commands
304
+ * through the injected bash parser to derive each cluster's CommandSignature and
305
+ * addressableBy classification. Never executes commands; never reads files.
306
+ */
307
+ export async function clusterFriction(
308
+ report: RatchetReport,
309
+ options?: ClusterFrictionOptions,
310
+ ): Promise<readonly FrictionCluster[]> {
311
+ const rows = validFrictionRows(report);
312
+ if (rows.length === 0) {
313
+ return [];
314
+ }
315
+
316
+ const parser = options?.bashParser ?? analyzeBashCommand;
317
+ const parseCache = new Map<string, Promise<ParsedCommandFacts>>();
318
+ const parsedRows = await Promise.all(
319
+ rows.map(async (row) => parsedRow(row, parser, parseCache)),
320
+ );
321
+ const clusters = new Map<string, MutableCluster>();
322
+
323
+ for (const parsed of parsedRows) {
324
+ if (parsed === null) {
325
+ continue;
326
+ }
327
+
328
+ const key = clusterKey(parsed.executable, parsed.signature.arg0Set);
329
+ const cluster = clusters.get(key) ?? {
330
+ executable: parsed.executable,
331
+ rows: [],
332
+ signatures: [],
333
+ notes: [],
334
+ };
335
+ cluster.rows.push(parsed.row);
336
+ cluster.signatures.push(parsed.signature);
337
+ cluster.notes.push(...parsed.notes);
338
+ clusters.set(key, cluster);
339
+ }
340
+
341
+ return [...clusters.values()]
342
+ .map(finalizeCluster)
343
+ .sort(compareClusters)
344
+ .slice(0, boundedLimit(options?.maxClusters, DEFAULT_MAX_CLUSTERS));
345
+ }
346
+
347
+ /**
348
+ * Deterministic structural drafter for data-shaped friction clusters.
349
+ * It emits the same JSON DSL vocabulary as shipped packs and derives IR only
350
+ * through compileMatch so proposal text remains the single source of truth.
351
+ */
352
+ export function draftStructuralMatcher(
353
+ cluster: FrictionCluster,
354
+ ): DraftedMatcher | null {
355
+ try {
356
+ const program = nonEmpty(cluster.signature.program);
357
+ if (program === undefined) {
358
+ return null;
359
+ }
360
+
361
+ const match = structuralMatchForCluster(cluster, program);
362
+ const compiled = compileMatch(match);
363
+ if ("errors" in compiled) {
364
+ return null;
365
+ }
366
+
367
+ const riskyAllow = cluster.behaviors.some((behavior) =>
368
+ RISKY_ALLOW_BEHAVIORS.has(behavior),
369
+ );
370
+ const canAllow =
371
+ !riskyAllow &&
372
+ !cluster.signature.hasSubstitution &&
373
+ !cluster.signature.hasStdoutRedirect;
374
+
375
+ return {
376
+ match,
377
+ compiled: compiled.expr,
378
+ effect: canAllow ? "allow" : "review",
379
+ origin: "structural",
380
+ notes: structuralDraftNotes(cluster, { riskyAllow, canAllow }),
381
+ };
382
+ } catch {
383
+ return null;
384
+ }
385
+ }
386
+
387
+ /**
388
+ * Mirror loadEffectivePolicy's allow-vs-floor check at the proposal stage.
389
+ * Allow drafts must be provably disjoint from every sealed floor deny; when
390
+ * a safe finite narrowing is possible, return it, otherwise downgrade to review.
391
+ */
392
+ export function checkFloorOverlap(
393
+ draft: DraftedMatcher,
394
+ floor: readonly PolicyRule[],
395
+ ): FloorOverlapOutcome {
396
+ if (draft.effect !== "allow") {
397
+ return {
398
+ action: "skipped-non-allow",
399
+ note: "floor overlap check applies only to allow proposals",
400
+ };
401
+ }
402
+
403
+ try {
404
+ const initial = checkAgainstFloor(draft.compiled, floor);
405
+ if (initial.allDisjoint) {
406
+ return { action: "emit" };
407
+ }
408
+
409
+ if (initial.hasOverlap) {
410
+ const narrowed = narrowAllowDraft(draft, floor);
411
+ if (narrowed !== null) {
412
+ const narrowedCheck = checkAgainstFloor(narrowed.compiled, floor);
413
+ if (narrowedCheck.allDisjoint) {
414
+ return { action: "narrowed", narrowed };
415
+ }
416
+ }
417
+ }
418
+
419
+ return {
420
+ action: "downgraded-to-review",
421
+ downgraded: downgradeDraftToReview(draft, initial),
422
+ };
423
+ } catch {
424
+ return {
425
+ action: "downgraded-to-review",
426
+ downgraded: {
427
+ ...draft,
428
+ effect: "review",
429
+ notes: [
430
+ ...draft.notes,
431
+ "downgraded to review because floor overlap checking failed closed",
432
+ ],
433
+ },
434
+ };
435
+ }
436
+ }
437
+
438
+ /**
439
+ * Validate a model-drafted matcher with the same bar as structural drafts:
440
+ * compile through the DSL, prove or narrow floor disjointness, then verify
441
+ * positives and adversarial near-misses. Any failure discards the draft.
442
+ */
443
+ export async function validateModelDraft(
444
+ draft: ModelDraftResult,
445
+ cluster: FrictionCluster,
446
+ floor: readonly PolicyRule[],
447
+ options: { readonly bashParser?: ReplayBashParser } = {},
448
+ ): Promise<DraftedMatcher | null> {
449
+ try {
450
+ const compiled = compileMatch(draft.match);
451
+ if ("errors" in compiled) {
452
+ return null;
453
+ }
454
+
455
+ const candidate: DraftedMatcher = {
456
+ match: draft.match,
457
+ compiled: compiled.expr,
458
+ effect: draft.effect,
459
+ origin: "model",
460
+ notes: [`model reason: ${draft.reason}`],
461
+ };
462
+ const checked = checkFloorOverlap(candidate, floor);
463
+ const floorSafe = modelDraftAfterFloorCheck(candidate, checked);
464
+ if (floorSafe === null) {
465
+ return null;
466
+ }
467
+
468
+ const verified = await verifyDraftSamples(
469
+ floorSafe,
470
+ cluster,
471
+ parserOption(options.bashParser),
472
+ );
473
+ return verified ? floorSafe : null;
474
+ } catch {
475
+ return null;
476
+ }
477
+ }
478
+
479
+ /**
480
+ * Pure proposal generator. Runs cluster → draft → floor-check → annotate,
481
+ * dedups against active policy, sorts by friction, and caps. The returned
482
+ * proposal set is sized to evidence, not forced to one item; applying/writing
483
+ * remains the apply skill's approval-gated job.
484
+ */
485
+ export async function proposeRules(
486
+ input: ProposeRulesInput,
487
+ options?: ProposeRulesOptions,
488
+ ): Promise<readonly RuleProposal[]> {
489
+ try {
490
+ if (!isRecord(input) || !isRecord(input.currentPolicy)) {
491
+ return [];
492
+ }
493
+
494
+ const floor = Array.isArray(input.currentPolicy.floor)
495
+ ? input.currentPolicy.floor
496
+ : [];
497
+ const active = Array.isArray(input.currentPolicy.active)
498
+ ? input.currentPolicy.active
499
+ : Array.isArray(input.currentPolicy.rules)
500
+ ? input.currentPolicy.rules
501
+ : [];
502
+ const existingRuleIds = new Set(active.map((rule) => rule.id));
503
+ const activeMatcherKeys = activeRuleMatcherKeys(active);
504
+ const clusters = await clusterFriction(
505
+ input.report,
506
+ clusterOptions(options),
507
+ );
508
+ const proposals: RuleProposal[] = [];
509
+
510
+ for (const cluster of clusters) {
511
+ if (cluster.addressableBy === "core-matcher") {
512
+ proposals.push(designInputProposal(cluster));
513
+ continue;
514
+ }
515
+
516
+ const selected = await chooseDraftForCluster(
517
+ cluster,
518
+ floor,
519
+ existingRuleIds,
520
+ draftChoiceOptions(options),
521
+ );
522
+ if (
523
+ selected === null ||
524
+ existingRuleIds.has(generatedRuleId(cluster, selected.draft)) ||
525
+ dedupedByActive(selected.draft, activeMatcherKeys)
526
+ ) {
527
+ continue;
528
+ }
529
+
530
+ const proposal = await dataProposal(
531
+ cluster,
532
+ selected,
533
+ floor,
534
+ parserOption(options?.bashParser),
535
+ );
536
+ if (proposal !== null) {
537
+ proposals.push(proposal);
538
+ }
539
+ }
540
+
541
+ return proposals
542
+ .sort(compareProposals)
543
+ .slice(0, boundedLimit(options?.maxProposals, DEFAULT_MAX_PROPOSALS));
544
+ } catch {
545
+ return [];
546
+ }
547
+ }
548
+
549
+ async function chooseDraftForCluster(
550
+ cluster: FrictionCluster,
551
+ floor: readonly PolicyRule[],
552
+ existingRuleIds: ReadonlySet<string>,
553
+ options: {
554
+ readonly bashParser?: ReplayBashParser;
555
+ readonly modelDrafter?: ModelDrafter;
556
+ },
557
+ ): Promise<SelectedDraft | null> {
558
+ if (options.modelDrafter !== undefined) {
559
+ try {
560
+ const modelDraft = await options.modelDrafter({
561
+ cluster,
562
+ floor,
563
+ existingRuleIds,
564
+ });
565
+ if (modelDraft !== undefined) {
566
+ const selected = await selectModelDraft(
567
+ modelDraft,
568
+ cluster,
569
+ floor,
570
+ parserOption(options.bashParser),
571
+ );
572
+ if (selected !== null) {
573
+ return selected;
574
+ }
575
+ }
576
+ } catch {
577
+ // Model drafting is optional evidence. A failing adapter falls back to
578
+ // deterministic structural drafting rather than changing correctness.
579
+ }
580
+ }
581
+
582
+ const structural = draftStructuralMatcher(cluster);
583
+ if (structural === null) {
584
+ return null;
585
+ }
586
+
587
+ const floorOutcome = checkFloorOverlap(structural, floor);
588
+ return {
589
+ draft: structuralDraftAfterFloorCheck(structural, floorOutcome),
590
+ floorOutcome,
591
+ };
592
+ }
593
+
594
+ async function selectModelDraft(
595
+ draft: ModelDraftResult,
596
+ cluster: FrictionCluster,
597
+ floor: readonly PolicyRule[],
598
+ options: { readonly bashParser?: ReplayBashParser },
599
+ ): Promise<SelectedDraft | null> {
600
+ try {
601
+ const compiled = compileMatch(draft.match);
602
+ if ("errors" in compiled) {
603
+ return null;
604
+ }
605
+
606
+ const candidate: DraftedMatcher = {
607
+ match: draft.match,
608
+ compiled: compiled.expr,
609
+ effect: draft.effect,
610
+ origin: "model",
611
+ notes: [`model reason: ${draft.reason}`],
612
+ };
613
+ const floorOutcome = checkFloorOverlap(candidate, floor);
614
+ const floorSafe = modelDraftAfterFloorCheck(candidate, floorOutcome);
615
+ if (floorSafe === null) {
616
+ return null;
617
+ }
618
+
619
+ const verified = await verifyDraftSamples(floorSafe, cluster, options);
620
+ return verified ? { draft: floorSafe, floorOutcome } : null;
621
+ } catch {
622
+ return null;
623
+ }
624
+ }
625
+
626
+ function clusterOptions(
627
+ options: ProposeRulesOptions | undefined,
628
+ ): ClusterFrictionOptions {
629
+ return {
630
+ ...(options?.bashParser === undefined
631
+ ? {}
632
+ : { bashParser: options.bashParser }),
633
+ ...(options?.maxClusters === undefined
634
+ ? {}
635
+ : { maxClusters: options.maxClusters }),
636
+ };
637
+ }
638
+
639
+ function draftChoiceOptions(options: ProposeRulesOptions | undefined): {
640
+ readonly bashParser?: ReplayBashParser;
641
+ readonly modelDrafter?: ModelDrafter;
642
+ } {
643
+ return {
644
+ ...(options?.bashParser === undefined
645
+ ? {}
646
+ : { bashParser: options.bashParser }),
647
+ ...(options?.modelDrafter === undefined
648
+ ? {}
649
+ : { modelDrafter: options.modelDrafter }),
650
+ };
651
+ }
652
+
653
+ function parserOption(bashParser: ReplayBashParser | undefined): {
654
+ readonly bashParser?: ReplayBashParser;
655
+ } {
656
+ return bashParser === undefined ? {} : { bashParser };
657
+ }
658
+
659
+ function modelDraftAfterFloorCheck(
660
+ draft: DraftedMatcher,
661
+ outcome: FloorOverlapOutcome,
662
+ ): DraftedMatcher | null {
663
+ switch (outcome.action) {
664
+ case "emit":
665
+ case "skipped-non-allow":
666
+ return draft;
667
+ case "narrowed":
668
+ return outcome.narrowed;
669
+ case "downgraded-to-review":
670
+ // A model draft that cannot pass as written-or-narrowed is evidence only;
671
+ // do not relax it into a review rule on the model's behalf.
672
+ return null;
673
+ }
674
+ }
675
+
676
+ function structuralDraftAfterFloorCheck(
677
+ draft: DraftedMatcher,
678
+ outcome: FloorOverlapOutcome,
679
+ ): DraftedMatcher {
680
+ switch (outcome.action) {
681
+ case "emit":
682
+ case "skipped-non-allow":
683
+ return draft;
684
+ case "narrowed":
685
+ return outcome.narrowed;
686
+ case "downgraded-to-review":
687
+ return outcome.downgraded;
688
+ }
689
+ }
690
+
691
+ async function verifyDraftSamples(
692
+ draft: DraftedMatcher,
693
+ cluster: FrictionCluster,
694
+ options: { readonly bashParser?: ReplayBashParser },
695
+ ): Promise<boolean> {
696
+ if (cluster.sampleCommands.length === 0) {
697
+ return false;
698
+ }
699
+
700
+ const parser = options.bashParser ?? analyzeBashCommand;
701
+ const matcher = inspectable(draft.compiled);
702
+
703
+ for (const command of cluster.sampleCommands) {
704
+ const shape = await parser(command);
705
+ if (!evalMatcher(matcher, shape)) {
706
+ return false;
707
+ }
708
+ }
709
+
710
+ for (const command of negativeSampleCommands(cluster)) {
711
+ const shape = await parser(command);
712
+ if (evalMatcher(matcher, shape)) {
713
+ return false;
714
+ }
715
+ }
716
+
717
+ return true;
718
+ }
719
+
720
+ function negativeSampleCommands(cluster: FrictionCluster): readonly string[] {
721
+ const executable = cluster.signature.program ?? cluster.executable;
722
+ const candidates = programCatalogCommandsForExecutable(executable);
723
+ const positives = new Set(cluster.sampleCommands);
724
+ return candidates.filter((command) => !positives.has(command));
725
+ }
726
+
727
+ async function dataProposal(
728
+ cluster: FrictionCluster,
729
+ selected: SelectedDraft,
730
+ floor: readonly PolicyRule[],
731
+ options: { readonly bashParser?: ReplayBashParser },
732
+ ): Promise<RuleProposal | null> {
733
+ const { draft, floorOutcome } = selected;
734
+ if (
735
+ draft.effect === "allow" &&
736
+ floorOutcome.action !== "emit" &&
737
+ floorOutcome.action !== "narrowed"
738
+ ) {
739
+ return null;
740
+ }
741
+
742
+ const examples = await verifiedDataExamples(cluster, draft, options);
743
+ const positiveExamples = examples.filter((example) => example.matches);
744
+ if (positiveExamples.length === 0) {
745
+ return null;
746
+ }
747
+
748
+ const ruleId = generatedRuleId(cluster, draft);
749
+ const targeting = dataTargeting(cluster);
750
+ const floorOverlap = floorOverlapCheckFromOutcome(floorOutcome, floor);
751
+ const fixtureSuggestions = fixturesForProposal(
752
+ `prop:${ruleId}`,
753
+ draft.effect,
754
+ examples,
755
+ );
756
+
757
+ return {
758
+ id: `prop:${ruleId}`,
759
+ kind: targeting.kind,
760
+ target: targeting.target,
761
+ effect: draft.effect,
762
+ ruleId,
763
+ ...(targeting.packId === undefined ? {} : { packId: targeting.packId }),
764
+ match: draft.match,
765
+ compiledMatch: draft.compiled,
766
+ reason: proposalReason(cluster, draft),
767
+ scope: targeting.scope,
768
+ provenance: { source: "generated" },
769
+ intendedProvenance: targeting.intendedProvenance,
770
+ evidence: cluster.evidence,
771
+ examples,
772
+ fixtureSuggestions,
773
+ floorOverlap,
774
+ approvalFraming: approvalFraming(targeting),
775
+ modelDrafted: draft.origin === "model",
776
+ warnings: sortedUnique([
777
+ ...cluster.notes,
778
+ ...draft.notes,
779
+ floorOverlap.note,
780
+ ]),
781
+ };
782
+ }
783
+
784
+ function designInputProposal(cluster: FrictionCluster): RuleProposal {
785
+ const targeting: ProposalTargeting = {
786
+ kind: "core-matcher",
787
+ target: "core-matcher",
788
+ scope: "global",
789
+ intendedProvenance: "shipped",
790
+ };
791
+ const kind = targeting.kind;
792
+ const effect: ProposalEffect = "review";
793
+ const ruleId = sanitizeRuleId(
794
+ `generated-${kind}-${cluster.executable}-${signatureSlug(cluster)}`,
795
+ );
796
+ const floorOverlap: FloorOverlapCheck = {
797
+ status: "disjoint",
798
+ action: "skipped-non-allow",
799
+ checkedFloorRuleIds: [],
800
+ overlappingFloorRuleIds: [],
801
+ note: `${kind} proposal is a design input, not an allow rule`,
802
+ };
803
+ const examples = cluster.sampleCommands.map((command) =>
804
+ proposalExample({
805
+ command,
806
+ matches: true,
807
+ capturedOutcome: capturedOutcomeForCommand(cluster, command),
808
+ note: `${kind} representative friction example`,
809
+ }),
810
+ );
811
+ const shared = {
812
+ id: `prop:${ruleId}`,
813
+ kind: targeting.kind,
814
+ target: targeting.target,
815
+ effect,
816
+ ruleId,
817
+ reason: designInputReason(cluster),
818
+ scope: targeting.scope,
819
+ provenance: { source: "generated" as const },
820
+ intendedProvenance: targeting.intendedProvenance,
821
+ evidence: cluster.evidence,
822
+ examples,
823
+ fixtureSuggestions: fixturesForProposal(`prop:${ruleId}`, effect, examples),
824
+ floorOverlap,
825
+ approvalFraming: approvalFraming(targeting),
826
+ modelDrafted: false,
827
+ warnings: sortedUnique([...cluster.notes, floorOverlap.note]),
828
+ };
829
+
830
+ if (kind === "core-matcher") {
831
+ const coreMatcher: CoreMatcherDesignInput = {
832
+ name: proposedCoreMatcherName(cluster),
833
+ signature: proposedCoreMatcherSignature(cluster),
834
+ gap: "Current data DSL cannot express the value-shape guard this command family needs.",
835
+ rationale: designInputReason(cluster),
836
+ examples,
837
+ };
838
+ return { ...shared, coreMatcher };
839
+ }
840
+
841
+ return { ...shared };
842
+ }
843
+
844
+ async function verifiedDataExamples(
845
+ cluster: FrictionCluster,
846
+ draft: DraftedMatcher,
847
+ options: { readonly bashParser?: ReplayBashParser },
848
+ ): Promise<readonly ProposalExample[]> {
849
+ const parser = options.bashParser ?? analyzeBashCommand;
850
+ const matcher = inspectable(draft.compiled);
851
+ const examples: ProposalExample[] = [];
852
+
853
+ for (const command of cluster.sampleCommands) {
854
+ if (await commandMatches(command, matcher, parser)) {
855
+ examples.push(
856
+ proposalExample({
857
+ command,
858
+ matches: true,
859
+ capturedOutcome: capturedOutcomeForCommand(cluster, command),
860
+ note: "corpus command verified against proposed matcher",
861
+ }),
862
+ );
863
+ }
864
+ }
865
+
866
+ for (const command of negativeSampleCommands(cluster)) {
867
+ const matches = await commandMatches(command, matcher, parser);
868
+ if (!matches) {
869
+ examples.push({
870
+ command,
871
+ matches: false,
872
+ note: "adversarial near-miss verified not to match",
873
+ });
874
+ }
875
+ }
876
+
877
+ return examples;
878
+ }
879
+
880
+ async function commandMatches(
881
+ command: string,
882
+ matcher: ReturnType<typeof inspectable>,
883
+ parser: ReplayBashParser,
884
+ ): Promise<boolean> {
885
+ try {
886
+ return evalMatcher(matcher, await parser(command));
887
+ } catch {
888
+ return false;
889
+ }
890
+ }
891
+
892
+ function proposalExample(input: {
893
+ readonly command: string;
894
+ readonly matches: boolean;
895
+ readonly capturedOutcome?: CapturedOutcomeLabel | undefined;
896
+ readonly note?: string | undefined;
897
+ }): ProposalExample {
898
+ return {
899
+ command: input.command,
900
+ matches: input.matches,
901
+ ...(input.capturedOutcome === undefined
902
+ ? {}
903
+ : { capturedOutcome: input.capturedOutcome }),
904
+ ...(input.note === undefined ? {} : { note: input.note }),
905
+ };
906
+ }
907
+
908
+ function capturedOutcomeForCommand(
909
+ cluster: FrictionCluster,
910
+ command: string,
911
+ ): CapturedOutcomeLabel | undefined {
912
+ const row = cluster.rows.find((candidate) => candidate.command === command);
913
+ if (row === undefined) {
914
+ return undefined;
915
+ }
916
+
917
+ for (const label of CAPTURED_OUTCOME_LABELS) {
918
+ const count = row.capturedOutcomes.get(label);
919
+ if (count !== undefined && count > 0) {
920
+ return label;
921
+ }
922
+ }
923
+
924
+ return undefined;
925
+ }
926
+
927
+ function fixturesForProposal(
928
+ proposalId: string,
929
+ effect: ProposalEffect,
930
+ examples: readonly ProposalExample[],
931
+ ): readonly ProposalFixtureSuggestion[] {
932
+ return examples.map((example) => ({
933
+ command: example.command,
934
+ expected: example.matches
935
+ ? expectedForPositive(effect)
936
+ : expectedForNegative(example.command),
937
+ reason: example.matches
938
+ ? `Positive example for ${proposalId}`
939
+ : `Adversarial near-miss for ${proposalId}`,
940
+ provenance: proposalId,
941
+ }));
942
+ }
943
+
944
+ function expectedForPositive(
945
+ effect: ProposalEffect,
946
+ ): "fast_path" | "review" | "hard_block" {
947
+ switch (effect) {
948
+ case "allow":
949
+ return "fast_path";
950
+ case "deny":
951
+ return "hard_block";
952
+ case "review":
953
+ return "review";
954
+ }
955
+ }
956
+
957
+ function expectedForNegative(command: string): "review" | "hard_block" {
958
+ return /\b(rm\s+-rf\s+--\s+\/|sudo\b|systemctl\s+reboot|chmod\s+-R\s+777|\|\s*(sh|bash)\b)/.test(
959
+ command,
960
+ )
961
+ ? "hard_block"
962
+ : "review";
963
+ }
964
+
965
+ function floorOverlapCheckFromOutcome(
966
+ outcome: FloorOverlapOutcome,
967
+ floor: readonly PolicyRule[],
968
+ ): FloorOverlapCheck {
969
+ const checkedFloorRuleIds = floor
970
+ .filter((rule) => rule.effect === "deny")
971
+ .map((rule) => rule.id);
972
+
973
+ switch (outcome.action) {
974
+ case "emit":
975
+ return {
976
+ status: "disjoint",
977
+ action: "emit",
978
+ checkedFloorRuleIds,
979
+ overlappingFloorRuleIds: [],
980
+ note: "allow draft is disjoint from checked floor denies",
981
+ };
982
+ case "narrowed":
983
+ return {
984
+ status: "disjoint",
985
+ action: "narrowed",
986
+ checkedFloorRuleIds,
987
+ overlappingFloorRuleIds: [],
988
+ note: "allow draft was narrowed to a floor-disjoint matcher",
989
+ };
990
+ case "downgraded-to-review":
991
+ return {
992
+ status: "unknown",
993
+ action: "downgraded-to-review",
994
+ checkedFloorRuleIds,
995
+ overlappingFloorRuleIds: [],
996
+ note: "allow draft was downgraded to review because floor safety was not provable",
997
+ };
998
+ case "skipped-non-allow":
999
+ return {
1000
+ status: "disjoint",
1001
+ action: "skipped-non-allow",
1002
+ checkedFloorRuleIds,
1003
+ overlappingFloorRuleIds: [],
1004
+ note: outcome.note,
1005
+ };
1006
+ }
1007
+ }
1008
+
1009
+ function dataTargeting(cluster: FrictionCluster): ProposalTargeting {
1010
+ const packId = shippedPackCandidate(cluster);
1011
+ if (packId !== undefined) {
1012
+ return {
1013
+ kind: "data",
1014
+ target: "shipped-pack",
1015
+ scope: "global",
1016
+ intendedProvenance: "shipped",
1017
+ packId,
1018
+ };
1019
+ }
1020
+
1021
+ if (isGeneralDevCommand(cluster)) {
1022
+ return {
1023
+ kind: "data",
1024
+ target: "user-global",
1025
+ scope: "global",
1026
+ intendedProvenance: "user-global",
1027
+ };
1028
+ }
1029
+
1030
+ return {
1031
+ kind: "data",
1032
+ target: "user-project",
1033
+ scope: "project",
1034
+ intendedProvenance: "user-project",
1035
+ };
1036
+ }
1037
+
1038
+ function shippedPackCandidate(cluster: FrictionCluster): string | undefined {
1039
+ const program = cluster.signature.program ?? cluster.executable;
1040
+ const arg0 = new Set(cluster.signature.arg0Set);
1041
+
1042
+ if (
1043
+ ["pnpm", "npm", "yarn"].includes(program) &&
1044
+ [...arg0].some((value) =>
1045
+ [
1046
+ "test",
1047
+ "build",
1048
+ "lint",
1049
+ "typecheck",
1050
+ "check",
1051
+ "run",
1052
+ "run-script",
1053
+ ].includes(value),
1054
+ )
1055
+ ) {
1056
+ return "bash.dev.verify";
1057
+ }
1058
+
1059
+ if (
1060
+ [
1061
+ "cargo",
1062
+ "go",
1063
+ "vitest",
1064
+ "jest",
1065
+ "pytest",
1066
+ "tsc",
1067
+ "biome",
1068
+ "eslint",
1069
+ "prettier",
1070
+ "ruff",
1071
+ "mypy",
1072
+ ].includes(program)
1073
+ ) {
1074
+ return "bash.dev.verify";
1075
+ }
1076
+
1077
+ return undefined;
1078
+ }
1079
+
1080
+ function isGeneralDevCommand(cluster: FrictionCluster): boolean {
1081
+ return [
1082
+ "git",
1083
+ "gh",
1084
+ "rg",
1085
+ "grep",
1086
+ "find",
1087
+ "ls",
1088
+ "cat",
1089
+ "head",
1090
+ "tail",
1091
+ ].includes(cluster.signature.program ?? cluster.executable);
1092
+ }
1093
+
1094
+ function approvalFraming(
1095
+ targeting: ProposalTargeting,
1096
+ ): ProposalApprovalFraming {
1097
+ const writesExecutableCode = false;
1098
+ const touchesDsl = targeting.kind === "core-matcher";
1099
+ const routesAsDesignInput =
1100
+ targeting.kind === "core-matcher" || targeting.target === "shipped-pack";
1101
+ const requiresAcknowledgment = writesExecutableCode || touchesDsl;
1102
+
1103
+ return {
1104
+ writesExecutableCode,
1105
+ touchesDsl,
1106
+ routesAsDesignInput,
1107
+ requiresAcknowledgment,
1108
+ summary: approvalSummary(targeting, {
1109
+ writesExecutableCode,
1110
+ touchesDsl,
1111
+ routesAsDesignInput,
1112
+ requiresAcknowledgment,
1113
+ }),
1114
+ };
1115
+ }
1116
+
1117
+ function approvalSummary(
1118
+ targeting: ProposalTargeting,
1119
+ flags: Omit<ProposalApprovalFraming, "summary">,
1120
+ ): string {
1121
+ if (flags.touchesDsl) {
1122
+ return "core matcher DSL design input; requires explicit acknowledgment";
1123
+ }
1124
+ if (flags.routesAsDesignInput) {
1125
+ return "shipped-pack design input; apply skill routes without writing shipped code";
1126
+ }
1127
+ return `data-only ${targeting.target} overlay proposal`;
1128
+ }
1129
+
1130
+ function proposalReason(
1131
+ cluster: FrictionCluster,
1132
+ draft: DraftedMatcher,
1133
+ ): string {
1134
+ if (draft.origin === "model") {
1135
+ const modelReason = draft.notes.find((note) =>
1136
+ note.startsWith("model reason: "),
1137
+ );
1138
+ if (modelReason !== undefined) {
1139
+ return modelReason.replace("model reason: ", "");
1140
+ }
1141
+ }
1142
+
1143
+ return `Reduce repeated ${cluster.executable} review friction with a validated ${draft.origin} matcher.`;
1144
+ }
1145
+
1146
+ function designInputReason(cluster: FrictionCluster): string {
1147
+ return `Route repeated ${cluster.executable} friction to a core DSL matcher design because the data DSL lacks the needed value-shape guard.`;
1148
+ }
1149
+
1150
+ function proposedCoreMatcherName(cluster: FrictionCluster): string {
1151
+ return `${sanitizeIdentifier(cluster.executable)}ArgMatchesProjectPath`;
1152
+ }
1153
+
1154
+ function proposedCoreMatcherSignature(cluster: FrictionCluster): string {
1155
+ const arg0 = cluster.signature.arg0Set[0] ?? "<subcommand>";
1156
+ return `{ program: ${JSON.stringify(cluster.executable)}, arg0: ${JSON.stringify(arg0)}, argMatchesProjectPath: { index: 1 } }`;
1157
+ }
1158
+
1159
+ function generatedRuleId(
1160
+ cluster: FrictionCluster,
1161
+ draft: DraftedMatcher,
1162
+ ): string {
1163
+ return sanitizeRuleId(
1164
+ `generated-${draft.effect}-${cluster.executable}-${signatureSlug(cluster)}`,
1165
+ );
1166
+ }
1167
+
1168
+ function signatureSlug(cluster: FrictionCluster): string {
1169
+ return cluster.signature.arg0Set.length
1170
+ ? cluster.signature.arg0Set.join("-")
1171
+ : "any";
1172
+ }
1173
+
1174
+ function sanitizeIdentifier(value: string): string {
1175
+ const words = sanitizeRuleId(value)
1176
+ .split("-")
1177
+ .filter((part) => part.length > 0);
1178
+ const [first = "command", ...rest] = words;
1179
+ return [
1180
+ first,
1181
+ ...rest.map((word) => `${word[0]?.toUpperCase() ?? ""}${word.slice(1)}`),
1182
+ ].join("");
1183
+ }
1184
+
1185
+ function sanitizeRuleId(value: string): string {
1186
+ return value
1187
+ .toLowerCase()
1188
+ .replace(/[^a-z0-9]+/g, "-")
1189
+ .replace(/^-+|-+$/g, "");
1190
+ }
1191
+
1192
+ function activeRuleMatcherKeys(
1193
+ rules: readonly PolicyRule[],
1194
+ ): ReadonlySet<string> {
1195
+ const keys = new Set<string>();
1196
+ for (const rule of rules) {
1197
+ const expr = getMatcherExpr(rule.match);
1198
+ if (expr !== null) {
1199
+ keys.add(matcherDedupKey(rule.effect, expr));
1200
+ }
1201
+ }
1202
+ return keys;
1203
+ }
1204
+
1205
+ function dedupedByActive(
1206
+ draft: DraftedMatcher,
1207
+ activeMatcherKeys: ReadonlySet<string>,
1208
+ ): boolean {
1209
+ return activeMatcherKeys.has(matcherDedupKey(draft.effect, draft.compiled));
1210
+ }
1211
+
1212
+ function matcherDedupKey(effect: ProposalEffect, expr: MatcherExpr): string {
1213
+ return `${effect}:${stableStringify(canonicalMatcherExpr(expr))}`;
1214
+ }
1215
+
1216
+ function canonicalMatcherExpr(expr: MatcherExpr): unknown {
1217
+ switch (expr.kind) {
1218
+ case "arg0In":
1219
+ return { kind: expr.kind, values: sortedUnique(expr.values) };
1220
+ case "all":
1221
+ case "any":
1222
+ return {
1223
+ kind: expr.kind,
1224
+ of: expr.of
1225
+ .map(canonicalMatcherExpr)
1226
+ .sort((left, right) =>
1227
+ stableStringify(left).localeCompare(stableStringify(right)),
1228
+ ),
1229
+ };
1230
+ case "stageEvery":
1231
+ case "stageSome":
1232
+ return { kind: expr.kind, inner: canonicalMatcherExpr(expr.inner) };
1233
+ case "composition":
1234
+ return {
1235
+ kind: expr.kind,
1236
+ stage: canonicalMatcherExpr(expr.stage),
1237
+ operators: sortedUnique(expr.operators),
1238
+ allowBackground: expr.allowBackground === true,
1239
+ minStages: expr.minStages ?? 1,
1240
+ orFallback:
1241
+ expr.orFallback === undefined ? [] : sortedUnique(expr.orFallback),
1242
+ };
1243
+ case "not":
1244
+ return { kind: expr.kind, of: canonicalMatcherExpr(expr.of) };
1245
+ default:
1246
+ return expr;
1247
+ }
1248
+ }
1249
+
1250
+ function stableStringify(value: unknown): string {
1251
+ if (Array.isArray(value)) {
1252
+ return `[${value.map(stableStringify).join(",")}]`;
1253
+ }
1254
+ if (isRecord(value)) {
1255
+ return `{${Object.keys(value)
1256
+ .sort()
1257
+ .map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`)
1258
+ .join(",")}}`;
1259
+ }
1260
+ return JSON.stringify(value);
1261
+ }
1262
+
1263
+ function compareProposals(left: RuleProposal, right: RuleProposal): number {
1264
+ return (
1265
+ proposalFrictionScore(right) - proposalFrictionScore(left) ||
1266
+ right.evidence.calls - left.evidence.calls ||
1267
+ left.ruleId.localeCompare(right.ruleId)
1268
+ );
1269
+ }
1270
+
1271
+ function proposalFrictionScore(proposal: RuleProposal): number {
1272
+ return (
1273
+ proposal.evidence.reviewCalls +
1274
+ proposal.evidence.hardBlockCalls +
1275
+ proposal.evidence.capturedDenialCalls +
1276
+ proposal.evidence.modelReviewCalls
1277
+ );
1278
+ }
1279
+
1280
+ function structuralMatchForCluster(
1281
+ cluster: FrictionCluster,
1282
+ program: string,
1283
+ ): unknown {
1284
+ const clauses: unknown[] = [
1285
+ { program },
1286
+ ...arg0Clause(cluster.signature.arg0Set),
1287
+ { noSubstitution: true },
1288
+ { noStdoutRedirect: true },
1289
+ ...loadBearingSafetyFlagClauses(cluster.signature),
1290
+ ];
1291
+
1292
+ return { all: clauses };
1293
+ }
1294
+
1295
+ function arg0Clause(arg0Set: readonly string[]): readonly unknown[] {
1296
+ const values = sortedUnique(arg0Set);
1297
+ return values.length === 0 ? [] : [{ arg0In: values }];
1298
+ }
1299
+
1300
+ function loadBearingSafetyFlagClauses(
1301
+ signature: CommandSignature,
1302
+ ): readonly unknown[] {
1303
+ const flags = new Set(signature.flags.map(normalizeFlagName));
1304
+ if (!flags.has("check")) {
1305
+ return [];
1306
+ }
1307
+
1308
+ if (
1309
+ (signature.program !== undefined &&
1310
+ SAFETY_FLAG_PROGRAMS.has(signature.program)) ||
1311
+ (signature.program === "cargo" && signature.arg0Set.includes("fmt"))
1312
+ ) {
1313
+ return [{ flagPresent: "check" }];
1314
+ }
1315
+
1316
+ return [];
1317
+ }
1318
+
1319
+ function structuralDraftNotes(
1320
+ cluster: FrictionCluster,
1321
+ flags: { readonly riskyAllow: boolean; readonly canAllow: boolean },
1322
+ ): readonly string[] {
1323
+ const notes = [
1324
+ "structural draft uses program/arg0 guards plus hidden-shell output guards",
1325
+ ];
1326
+
1327
+ if (cluster.signature.arg0Set.length === 0) {
1328
+ notes.push("no arg0 constraint available from the cluster signature");
1329
+ }
1330
+
1331
+ if (cluster.signature.hasSubstitution) {
1332
+ notes.push("drafted as review because cluster contains substitution");
1333
+ }
1334
+
1335
+ if (cluster.signature.hasStdoutRedirect) {
1336
+ notes.push("drafted as review because cluster contains stdout redirect");
1337
+ }
1338
+
1339
+ if (flags.riskyAllow) {
1340
+ notes.push("drafted as review because cluster has risky-allow behavior");
1341
+ }
1342
+
1343
+ if (flags.canAllow) {
1344
+ notes.push("drafted as allow because guards and risk checks passed");
1345
+ }
1346
+
1347
+ return notes;
1348
+ }
1349
+
1350
+ export function checkAgainstFloor(
1351
+ expr: MatcherExpr,
1352
+ floor: readonly PolicyRule[],
1353
+ ): FloorCheckResult {
1354
+ const checkedRuleIds: string[] = [];
1355
+ const unsafeRuleIds: string[] = [];
1356
+ let hasOverlap = false;
1357
+ let hasUnknown = false;
1358
+
1359
+ for (const floorRule of floor) {
1360
+ if (floorRule.effect !== "deny") {
1361
+ continue;
1362
+ }
1363
+
1364
+ checkedRuleIds.push(floorRule.id);
1365
+ const floorExpr = getMatcherExpr(floorRule.match);
1366
+ const overlap: TriOverlap =
1367
+ floorExpr === null ? "unknown" : classifyOverlap(expr, floorExpr);
1368
+
1369
+ if (overlap === "disjoint") {
1370
+ continue;
1371
+ }
1372
+
1373
+ unsafeRuleIds.push(floorRule.id);
1374
+ if (overlap === "overlap") {
1375
+ hasOverlap = true;
1376
+ } else {
1377
+ hasUnknown = true;
1378
+ }
1379
+ }
1380
+
1381
+ return {
1382
+ allDisjoint: !hasOverlap && !hasUnknown,
1383
+ hasOverlap,
1384
+ hasUnknown,
1385
+ checkedRuleIds,
1386
+ unsafeRuleIds,
1387
+ };
1388
+ }
1389
+
1390
+ function narrowAllowDraft(
1391
+ draft: DraftedMatcher,
1392
+ floor: readonly PolicyRule[],
1393
+ ): DraftedMatcher | null {
1394
+ const draftArg0 = arg0SetFromMatch(draft.match);
1395
+ if (draftArg0 === null || draftArg0.length === 0) {
1396
+ return null;
1397
+ }
1398
+
1399
+ const draftProgram = programFromMatch(draft.match);
1400
+ const deniedArg0 = new Set<string>();
1401
+
1402
+ for (const floorRule of floor) {
1403
+ if (floorRule.effect !== "deny") {
1404
+ continue;
1405
+ }
1406
+
1407
+ const floorExpr = getMatcherExpr(floorRule.match);
1408
+ if (
1409
+ floorExpr === null ||
1410
+ classifyOverlap(draft.compiled, floorExpr) !== "overlap"
1411
+ ) {
1412
+ continue;
1413
+ }
1414
+
1415
+ const deniedValues = deniedArg0ValuesForOverlap(
1416
+ draft,
1417
+ floorExpr,
1418
+ draftProgram,
1419
+ );
1420
+ if (deniedValues === null) {
1421
+ return null;
1422
+ }
1423
+
1424
+ for (const value of deniedValues) {
1425
+ deniedArg0.add(value);
1426
+ }
1427
+ }
1428
+
1429
+ if (deniedArg0.size === 0) {
1430
+ return null;
1431
+ }
1432
+
1433
+ const narrowedArg0 = draftArg0.filter((value) => !deniedArg0.has(value));
1434
+ if (narrowedArg0.length === 0 || narrowedArg0.length === draftArg0.length) {
1435
+ return null;
1436
+ }
1437
+
1438
+ const narrowedMatch = replaceArg0In(draft.match, narrowedArg0);
1439
+ if (narrowedMatch === null) {
1440
+ return null;
1441
+ }
1442
+
1443
+ const compiled = compileMatch(narrowedMatch);
1444
+ if ("errors" in compiled) {
1445
+ return null;
1446
+ }
1447
+
1448
+ return {
1449
+ ...draft,
1450
+ match: narrowedMatch,
1451
+ compiled: compiled.expr,
1452
+ notes: [
1453
+ ...draft.notes,
1454
+ `narrowed arg0In from [${draftArg0.join(", ")}] to [${narrowedArg0.join(", ")}] to avoid sealed-floor overlap`,
1455
+ ],
1456
+ };
1457
+ }
1458
+
1459
+ function downgradeDraftToReview(
1460
+ draft: DraftedMatcher,
1461
+ check: FloorCheckResult,
1462
+ ): DraftedMatcher {
1463
+ const reason = check.hasUnknown
1464
+ ? "downgraded to review because floor overlap was undecidable"
1465
+ : "downgraded to review because overlap could not be narrowed to disjoint";
1466
+ const checked =
1467
+ check.checkedRuleIds.length === 0
1468
+ ? "no floor deny rules"
1469
+ : check.checkedRuleIds.join(", ");
1470
+ const unsafe =
1471
+ check.unsafeRuleIds.length === 0 ? "none" : check.unsafeRuleIds.join(", ");
1472
+
1473
+ return {
1474
+ ...draft,
1475
+ effect: "review",
1476
+ notes: [
1477
+ ...draft.notes,
1478
+ `${reason}; checked=[${checked}], unsafe=[${unsafe}]`,
1479
+ ],
1480
+ };
1481
+ }
1482
+
1483
+ function deniedArg0ValuesForOverlap(
1484
+ draft: DraftedMatcher,
1485
+ floorExpr: MatcherExpr,
1486
+ draftProgram: string | undefined,
1487
+ ): readonly string[] | null {
1488
+ if (floorExpr.kind === "stageSome") {
1489
+ return deniedArg0ValuesForOverlap(draft, floorExpr.inner, draftProgram);
1490
+ }
1491
+
1492
+ if (floorExpr.kind === "any") {
1493
+ const values: string[] = [];
1494
+ for (const child of floorExpr.of) {
1495
+ const overlap = classifyOverlap(draft.compiled, child);
1496
+ if (overlap === "disjoint") {
1497
+ continue;
1498
+ }
1499
+ if (overlap === "unknown") {
1500
+ return null;
1501
+ }
1502
+
1503
+ const childValues = deniedArg0ValuesForOverlap(
1504
+ draft,
1505
+ child,
1506
+ draftProgram,
1507
+ );
1508
+ if (childValues === null) {
1509
+ return null;
1510
+ }
1511
+ values.push(...childValues);
1512
+ }
1513
+
1514
+ return values.length === 0 ? null : sortedUnique(values);
1515
+ }
1516
+
1517
+ const facts = decidableFloorFacts(floorExpr);
1518
+ if (facts === null || facts.arg0Values.length === 0) {
1519
+ return null;
1520
+ }
1521
+
1522
+ if (
1523
+ facts.programs.length > 0 &&
1524
+ draftProgram !== undefined &&
1525
+ !facts.programs.includes(draftProgram)
1526
+ ) {
1527
+ return [];
1528
+ }
1529
+
1530
+ return facts.arg0Values;
1531
+ }
1532
+
1533
+ function decidableFloorFacts(expr: MatcherExpr): DecidableFloorFacts | null {
1534
+ const facts = collectDecidableFacts(expr, {
1535
+ programs: [],
1536
+ arg0Values: [],
1537
+ });
1538
+ if (facts === null) {
1539
+ return null;
1540
+ }
1541
+
1542
+ return {
1543
+ programs: sortedUnique(facts.programs),
1544
+ arg0Values: sortedUnique(facts.arg0Values),
1545
+ };
1546
+ }
1547
+
1548
+ function collectDecidableFacts(
1549
+ expr: MatcherExpr,
1550
+ facts: { programs: string[]; arg0Values: string[] },
1551
+ ): { programs: string[]; arg0Values: string[] } | null {
1552
+ switch (expr.kind) {
1553
+ case "program":
1554
+ facts.programs.push(expr.name);
1555
+ return facts;
1556
+ case "arg0In":
1557
+ facts.arg0Values.push(...expr.values);
1558
+ return facts;
1559
+ case "all":
1560
+ return collectAllFacts(expr.of, facts);
1561
+ case "stageEvery":
1562
+ case "stageSome":
1563
+ return collectDecidableFacts(expr.inner, facts);
1564
+ case "tool":
1565
+ case "argAt":
1566
+ case "argMatches":
1567
+ case "argCount":
1568
+ case "envAssignmentCount":
1569
+ case "flagPresent":
1570
+ case "flagMatches":
1571
+ case "flagAllowlist":
1572
+ case "flagValueIn":
1573
+ case "flagCount":
1574
+ case "anyArgMatches":
1575
+ case "envAssignmentNameIn":
1576
+ case "noSubstitution":
1577
+ case "noStdoutRedirect":
1578
+ case "redirect":
1579
+ case "pipeline":
1580
+ case "operator":
1581
+ case "always":
1582
+ case "mutationTool":
1583
+ case "mutationShape":
1584
+ case "mutationTrustBoundary":
1585
+ case "pathScope":
1586
+ case "compoundForm":
1587
+ case "bodyStagesAllReadOnly":
1588
+ case "bodyStagesAllScopeIn":
1589
+ case "iteratorScopesAllIn":
1590
+ case "noBodySubstitution":
1591
+ case "noBodyShellWrap":
1592
+ case "noBodyRedirectTo":
1593
+ case "diagnosticCode":
1594
+ // `pathScope.programs` is a per-command-stage coverage guard, not the
1595
+ // matched program, so it contributes no program/arg0 floor facts. Mutation
1596
+ // and compound matchers constrain non-floor structural facts, not bash
1597
+ // floor program/arg0 facts.
1598
+ return facts;
1599
+ case "any":
1600
+ case "composition":
1601
+ case "not":
1602
+ return null;
1603
+ }
1604
+ }
1605
+
1606
+ function collectAllFacts(
1607
+ exprs: readonly MatcherExpr[],
1608
+ facts: { programs: string[]; arg0Values: string[] },
1609
+ ): { programs: string[]; arg0Values: string[] } | null {
1610
+ for (const expr of exprs) {
1611
+ const next = collectDecidableFacts(expr, facts);
1612
+ if (next === null) {
1613
+ return null;
1614
+ }
1615
+ }
1616
+
1617
+ return facts;
1618
+ }
1619
+
1620
+ function programFromMatch(match: unknown): string | undefined {
1621
+ return findStringCombinator(match, "program");
1622
+ }
1623
+
1624
+ function arg0SetFromMatch(match: unknown): readonly string[] | null {
1625
+ const found = findStringArrayCombinator(match, "arg0In");
1626
+ return found === null ? null : sortedUnique(found);
1627
+ }
1628
+
1629
+ function replaceArg0In(
1630
+ match: unknown,
1631
+ values: readonly string[],
1632
+ ): unknown | null {
1633
+ if (!isRecord(match) || !Array.isArray(match.all)) {
1634
+ return null;
1635
+ }
1636
+
1637
+ let replaced = false;
1638
+ const all = match.all.map((clause) => {
1639
+ if (isRecord(clause) && Array.isArray(clause.arg0In)) {
1640
+ replaced = true;
1641
+ return { arg0In: [...values] };
1642
+ }
1643
+ return cloneJsonish(clause);
1644
+ });
1645
+
1646
+ return replaced ? { all } : null;
1647
+ }
1648
+
1649
+ function findStringCombinator(value: unknown, key: string): string | undefined {
1650
+ if (!isRecord(value)) {
1651
+ return undefined;
1652
+ }
1653
+
1654
+ if (typeof value[key] === "string") {
1655
+ return value[key];
1656
+ }
1657
+
1658
+ if (Array.isArray(value.all)) {
1659
+ for (const child of value.all) {
1660
+ const found = findStringCombinator(child, key);
1661
+ if (found !== undefined) {
1662
+ return found;
1663
+ }
1664
+ }
1665
+ }
1666
+
1667
+ return undefined;
1668
+ }
1669
+
1670
+ function findStringArrayCombinator(
1671
+ value: unknown,
1672
+ key: string,
1673
+ ): readonly string[] | null {
1674
+ if (!isRecord(value)) {
1675
+ return null;
1676
+ }
1677
+
1678
+ if (Array.isArray(value[key])) {
1679
+ const values = value[key].filter(
1680
+ (item): item is string => typeof item === "string",
1681
+ );
1682
+ return values.length === value[key].length ? values : null;
1683
+ }
1684
+
1685
+ if (Array.isArray(value.all)) {
1686
+ for (const child of value.all) {
1687
+ const found = findStringArrayCombinator(child, key);
1688
+ if (found !== null) {
1689
+ return found;
1690
+ }
1691
+ }
1692
+ }
1693
+
1694
+ return null;
1695
+ }
1696
+
1697
+ function cloneJsonish(value: unknown): unknown {
1698
+ if (Array.isArray(value)) {
1699
+ return value.map(cloneJsonish);
1700
+ }
1701
+
1702
+ if (isRecord(value)) {
1703
+ return Object.fromEntries(
1704
+ Object.entries(value).map(([key, entry]) => [key, cloneJsonish(entry)]),
1705
+ );
1706
+ }
1707
+
1708
+ return value;
1709
+ }
1710
+
1711
+ function normalizeFlagName(name: string): string {
1712
+ return name.replace(/^-+/, "");
1713
+ }
1714
+
1715
+ async function parsedRow(
1716
+ row: PerCommandRow,
1717
+ parser: ReplayBashParser,
1718
+ parseCache: Map<string, Promise<ParsedCommandFacts>>,
1719
+ ): Promise<ParsedFrictionRow | null> {
1720
+ const facts = await cachedParse(row.command, parser, parseCache);
1721
+ const executable = nonEmpty(row.executable) ?? facts.signature.program;
1722
+ if (executable === undefined) {
1723
+ return null;
1724
+ }
1725
+
1726
+ return {
1727
+ row,
1728
+ executable,
1729
+ signature: facts.signature,
1730
+ notes: facts.notes,
1731
+ };
1732
+ }
1733
+
1734
+ function cachedParse(
1735
+ command: string,
1736
+ parser: ReplayBashParser,
1737
+ parseCache: Map<string, Promise<ParsedCommandFacts>>,
1738
+ ): Promise<ParsedCommandFacts> {
1739
+ const existing = parseCache.get(command);
1740
+ if (existing !== undefined) {
1741
+ return existing;
1742
+ }
1743
+
1744
+ const parsed = parseCommandFacts(command, parser);
1745
+ parseCache.set(command, parsed);
1746
+ return parsed;
1747
+ }
1748
+
1749
+ async function parseCommandFacts(
1750
+ command: string,
1751
+ parser: ReplayBashParser,
1752
+ ): Promise<ParsedCommandFacts> {
1753
+ try {
1754
+ const shape = await parser(command);
1755
+ return factsFromShape(shape);
1756
+ } catch (error: unknown) {
1757
+ const message = errorMessage(error);
1758
+ return {
1759
+ signature: {
1760
+ program: undefined,
1761
+ arg0Set: [],
1762
+ flags: [],
1763
+ hasSubstitution: false,
1764
+ hasStdoutRedirect: false,
1765
+ parseDiagnostics: [message],
1766
+ },
1767
+ notes: [`parser failed for ${JSON.stringify(command)}: ${message}`],
1768
+ };
1769
+ }
1770
+ }
1771
+
1772
+ function factsFromShape(shape: ToolShape): ParsedCommandFacts {
1773
+ if (shape.kind !== "bash") {
1774
+ return {
1775
+ signature: {
1776
+ program: undefined,
1777
+ arg0Set: [],
1778
+ flags: [],
1779
+ hasSubstitution: false,
1780
+ hasStdoutRedirect: false,
1781
+ parseDiagnostics: [`parser returned non-bash shape: ${shape.kind}`],
1782
+ },
1783
+ notes: [`parser returned non-bash shape: ${shape.kind}`],
1784
+ };
1785
+ }
1786
+
1787
+ const firstStage = firstResolvableCommandStage(shape);
1788
+ const parseDiagnostics = shape.diagnostics
1789
+ .filter((diagnostic) => diagnostic.severity !== "info")
1790
+ .map((diagnostic) => `${diagnostic.code}: ${diagnostic.message}`);
1791
+ const program = primaryExecutableFromShape(shape);
1792
+ const arg0 = nonEmpty(firstStage?.program.arguments[0]);
1793
+
1794
+ return {
1795
+ signature: {
1796
+ program,
1797
+ arg0Set: arg0 === undefined ? [] : [arg0],
1798
+ flags: sortedUnique(
1799
+ (firstStage?.program.flags ?? []).map((flag) => flag.raw),
1800
+ ),
1801
+ hasSubstitution: flattenStages(shape.blocks).some(hasSubstitution),
1802
+ hasStdoutRedirect: flattenStages(shape.blocks).some(hasStdoutRedirect),
1803
+ parseDiagnostics,
1804
+ },
1805
+ notes: parseDiagnostics.map(
1806
+ (diagnostic) => `parse diagnostic: ${diagnostic}`,
1807
+ ),
1808
+ };
1809
+ }
1810
+
1811
+ function firstResolvableCommandStage(
1812
+ shape: ToolShape,
1813
+ ): Extract<BashStage, { readonly kind: "command" }> | undefined {
1814
+ if (shape.kind !== "bash") {
1815
+ return undefined;
1816
+ }
1817
+
1818
+ return flattenStages(shape.blocks).find(
1819
+ (stage): stage is Extract<BashStage, { readonly kind: "command" }> =>
1820
+ stage.kind === "command" &&
1821
+ stage.program.resolvable &&
1822
+ stage.program.program.length > 0,
1823
+ );
1824
+ }
1825
+
1826
+ function finalizeCluster(cluster: MutableCluster): FrictionCluster {
1827
+ const rows = [...cluster.rows];
1828
+ const behaviors = sortedUnique(rows.flatMap((row) => row.behaviors ?? []));
1829
+ const sampleCommands = cappedUnique(
1830
+ rows.map((row) => row.command),
1831
+ DEFAULT_SAMPLE_COMMAND_LIMIT,
1832
+ );
1833
+ const evidence = buildEvidence(
1834
+ cluster.executable,
1835
+ rows,
1836
+ behaviors,
1837
+ sampleCommands,
1838
+ );
1839
+ const signature = mergeSignatures(cluster.signatures);
1840
+ const notes = sortedUnique(cluster.notes);
1841
+ const frictionScore =
1842
+ evidence.reviewCalls +
1843
+ evidence.hardBlockCalls +
1844
+ evidence.capturedDenialCalls +
1845
+ evidence.modelReviewCalls;
1846
+
1847
+ return {
1848
+ executable: cluster.executable,
1849
+ rows,
1850
+ signature,
1851
+ addressableBy: classifyAddressableBy({ rows, behaviors, signature }),
1852
+ frictionScore,
1853
+ behaviors,
1854
+ sampleCommands,
1855
+ evidence,
1856
+ notes,
1857
+ };
1858
+ }
1859
+
1860
+ function buildEvidence(
1861
+ executable: string,
1862
+ rows: readonly PerCommandRow[],
1863
+ behaviors: readonly string[],
1864
+ sampleCommands: readonly string[],
1865
+ ): ProposalEvidence {
1866
+ const capturedOutcomeBreakdown = new Map<CapturedOutcomeLabel, number>();
1867
+
1868
+ let calls = 0;
1869
+ let reviewCalls = 0;
1870
+ let hardBlockCalls = 0;
1871
+ let modelReviewCalls = 0;
1872
+ let capturedDenialCalls = 0;
1873
+
1874
+ for (const row of rows) {
1875
+ calls += safeCount(row.count);
1876
+ reviewCalls += row.status === "review" ? safeCount(row.count) : 0;
1877
+ hardBlockCalls += row.status === "hard_block" ? safeCount(row.count) : 0;
1878
+ modelReviewCalls += countLabels(row.capturedOutcomes, MODEL_OUTCOME_LABELS);
1879
+ capturedDenialCalls += countLabels(
1880
+ row.capturedOutcomes,
1881
+ DENIAL_OUTCOME_LABELS,
1882
+ );
1883
+
1884
+ for (const [label, count] of row.capturedOutcomes) {
1885
+ capturedOutcomeBreakdown.set(
1886
+ label,
1887
+ (capturedOutcomeBreakdown.get(label) ?? 0) + safeCount(count),
1888
+ );
1889
+ }
1890
+ }
1891
+
1892
+ return {
1893
+ executable,
1894
+ calls,
1895
+ unique: rows.length,
1896
+ reviewCalls,
1897
+ hardBlockCalls,
1898
+ modelReviewCalls,
1899
+ capturedDenialCalls,
1900
+ behaviors,
1901
+ sampleCommands,
1902
+ capturedOutcomeBreakdown: sortCapturedOutcomeMap(capturedOutcomeBreakdown),
1903
+ };
1904
+ }
1905
+
1906
+ function mergeSignatures(
1907
+ signatures: readonly CommandSignature[],
1908
+ ): CommandSignature {
1909
+ const programs = sortedUnique(
1910
+ signatures.flatMap((signature) =>
1911
+ signature.program === undefined ? [] : [signature.program],
1912
+ ),
1913
+ );
1914
+
1915
+ return {
1916
+ program: programs[0],
1917
+ arg0Set: sortedUnique(signatures.flatMap((signature) => signature.arg0Set)),
1918
+ flags: sortedUnique(signatures.flatMap((signature) => signature.flags)),
1919
+ hasSubstitution: signatures.some((signature) => signature.hasSubstitution),
1920
+ hasStdoutRedirect: signatures.some(
1921
+ (signature) => signature.hasStdoutRedirect,
1922
+ ),
1923
+ parseDiagnostics: sortedUnique(
1924
+ signatures.flatMap((signature) => signature.parseDiagnostics),
1925
+ ),
1926
+ };
1927
+ }
1928
+
1929
+ function classifyAddressableBy(input: {
1930
+ readonly rows: readonly PerCommandRow[];
1931
+ readonly behaviors: readonly string[];
1932
+ readonly signature: CommandSignature;
1933
+ }): ClusterAddressableBy {
1934
+ if (input.signature.parseDiagnostics.length > 0) {
1935
+ return "none";
1936
+ }
1937
+
1938
+ if (input.behaviors.some((behavior) => RISKY_ALLOW_BEHAVIORS.has(behavior))) {
1939
+ return "none";
1940
+ }
1941
+
1942
+ if (hasCoreMatcherGapSignal(input.rows, input.behaviors)) {
1943
+ return "core-matcher";
1944
+ }
1945
+
1946
+ if (hasGitOptionValueSubcommandGap(input.signature)) {
1947
+ return "core-matcher";
1948
+ }
1949
+
1950
+ return "data";
1951
+ }
1952
+
1953
+ const GIT_FLAGS_WITH_SEPARATE_VALUE = new Set([
1954
+ "-C",
1955
+ "-c",
1956
+ "--git-dir",
1957
+ "--work-tree",
1958
+ "--namespace",
1959
+ ]);
1960
+
1961
+ function hasGitOptionValueSubcommandGap(signature: CommandSignature): boolean {
1962
+ if (signature.program !== "git") {
1963
+ return false;
1964
+ }
1965
+
1966
+ if (
1967
+ !signature.flags.some((flag) => GIT_FLAGS_WITH_SEPARATE_VALUE.has(flag))
1968
+ ) {
1969
+ return false;
1970
+ }
1971
+
1972
+ return signature.arg0Set.some(looksLikePathArgument);
1973
+ }
1974
+
1975
+ function looksLikePathArgument(value: string): boolean {
1976
+ return (
1977
+ value.startsWith("/") ||
1978
+ value.startsWith("./") ||
1979
+ value.startsWith("../") ||
1980
+ value.includes("/")
1981
+ );
1982
+ }
1983
+
1984
+ function hasCoreMatcherGapSignal(
1985
+ rows: readonly PerCommandRow[],
1986
+ behaviors: readonly string[],
1987
+ ): boolean {
1988
+ if (
1989
+ behaviors.some(
1990
+ (behavior) =>
1991
+ behavior === "path-shape" ||
1992
+ behavior === "project-path" ||
1993
+ behavior === "path-constraint",
1994
+ )
1995
+ ) {
1996
+ return true;
1997
+ }
1998
+
1999
+ return rows.some((row) => {
2000
+ const reason = row.reason.toLowerCase();
2001
+ return (
2002
+ reason.includes("path shape") ||
2003
+ reason.includes("project path") ||
2004
+ reason.includes("inside the project root") ||
2005
+ reason.includes("inside project root")
2006
+ );
2007
+ });
2008
+ }
2009
+
2010
+ function validFrictionRows(report: RatchetReport): readonly PerCommandRow[] {
2011
+ if (!isRecord(report) || !Array.isArray(report.perCommand)) {
2012
+ return [];
2013
+ }
2014
+
2015
+ return report.perCommand.filter(
2016
+ (row): row is PerCommandRow =>
2017
+ isRecord(row) &&
2018
+ typeof row.command === "string" &&
2019
+ typeof row.toolName === "string" &&
2020
+ (row.status === "review" || row.status === "hard_block") &&
2021
+ row.capturedOutcomes instanceof Map,
2022
+ );
2023
+ }
2024
+
2025
+ function compareClusters(
2026
+ left: FrictionCluster,
2027
+ right: FrictionCluster,
2028
+ ): number {
2029
+ return (
2030
+ right.frictionScore - left.frictionScore ||
2031
+ right.evidence.calls - left.evidence.calls ||
2032
+ right.evidence.unique - left.evidence.unique ||
2033
+ left.executable.localeCompare(right.executable) ||
2034
+ left.signature.arg0Set
2035
+ .join("\u0000")
2036
+ .localeCompare(right.signature.arg0Set.join("\u0000"))
2037
+ );
2038
+ }
2039
+
2040
+ function clusterKey(executable: string, arg0Set: readonly string[]): string {
2041
+ return `${executable}\u0000${sortedUnique(arg0Set).join("\u0000")}`;
2042
+ }
2043
+
2044
+ function countLabels(
2045
+ outcomes: ReadonlyMap<CapturedOutcomeLabel, number>,
2046
+ labels: ReadonlySet<CapturedOutcomeLabel>,
2047
+ ): number {
2048
+ let count = 0;
2049
+ for (const [label, calls] of outcomes) {
2050
+ if (labels.has(label)) {
2051
+ count += safeCount(calls);
2052
+ }
2053
+ }
2054
+ return count;
2055
+ }
2056
+
2057
+ function sortCapturedOutcomeMap(
2058
+ input: ReadonlyMap<CapturedOutcomeLabel, number>,
2059
+ ): ReadonlyMap<CapturedOutcomeLabel, number> {
2060
+ const sorted = new Map<CapturedOutcomeLabel, number>();
2061
+ for (const label of CAPTURED_OUTCOME_LABELS) {
2062
+ const count = input.get(label);
2063
+ if (count !== undefined && count > 0) {
2064
+ sorted.set(label, count);
2065
+ }
2066
+ }
2067
+ return sorted;
2068
+ }
2069
+
2070
+ function cappedUnique(
2071
+ values: readonly string[],
2072
+ limit: number,
2073
+ ): readonly string[] {
2074
+ const seen = new Set<string>();
2075
+ const capped: string[] = [];
2076
+ for (const value of values) {
2077
+ if (seen.has(value)) {
2078
+ continue;
2079
+ }
2080
+ seen.add(value);
2081
+ capped.push(value);
2082
+ if (capped.length >= limit) {
2083
+ break;
2084
+ }
2085
+ }
2086
+ return capped;
2087
+ }
2088
+
2089
+ function sortedUnique(values: readonly string[]): readonly string[] {
2090
+ return [...new Set(values.filter((value) => value.length > 0))].sort();
2091
+ }
2092
+
2093
+ function boundedLimit(value: number | undefined, fallback: number): number {
2094
+ return typeof value === "number" && Number.isFinite(value) && value > 0
2095
+ ? Math.floor(value)
2096
+ : fallback;
2097
+ }
2098
+
2099
+ function safeCount(value: number): number {
2100
+ return Number.isFinite(value) && value > 0 ? value : 0;
2101
+ }
2102
+
2103
+ function nonEmpty(value: string | undefined): string | undefined {
2104
+ return value === undefined || value.length === 0 ? undefined : value;
2105
+ }
2106
+
2107
+ function isRecord(value: unknown): value is Record<string, unknown> {
2108
+ return typeof value === "object" && value !== null;
2109
+ }
2110
+
2111
+ function errorMessage(error: unknown): string {
2112
+ return error instanceof Error ? error.message : String(error);
2113
+ }