@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,1143 @@
1
+ /**
2
+ * Background Tasks — a pi-native runtime extension that lets an agent run
3
+ * long commands in the background and get woken when they finish, poll a
4
+ * command until a condition is met, and manage the resulting job registry.
5
+ *
6
+ * Tools registered:
7
+ * - background : run a command detached; wake the agent on exit (and
8
+ * optionally the first time output matches a pattern).
9
+ * - monitor : poll a command on an interval until a predicate holds
10
+ * (or a timeout fires); wake the agent with the result.
11
+ * - jobs : list / cancel / tail / status / view over the registry.
12
+ *
13
+ * Wake-ups are delivered via pi.sendMessage with triggerTurn:true and
14
+ * deliverAs:"steer" so the message injects as soon as possible — right after
15
+ * the current tool-call batch, before the next LLM call — instead of deferring
16
+ * to end-of-turn (which is what "followUp" does). When the agent is already
17
+ * idle, triggerTurn starts an immediate fresh turn. The custom message is
18
+ * extension-authored (not user-authored) and trusted: it carries only the
19
+ * numeric job id and exit code / status word — never command output. Command
20
+ * output stays in the registry and is read on demand via the jobs tool
21
+ * (action=tail) or the focusable overlay panel (action=view). This keeps a
22
+ * malicious command's stdout from being injected as user-authored content.
23
+ *
24
+ * If sendMessage is unavailable (older pi), completion is surfaced via
25
+ * ui.notify + footer status and the agent is NOT auto-woken.
26
+ *
27
+ * Parameter schemas are plain JSON-Schema objects (no typebox import) so the
28
+ * file has zero @earendil-works/* dependencies — it stays unit-testable with
29
+ * a fake pi under bare `bun test` (mirrors the agile-workflow extension's
30
+ * loose-coupling house style). pi's provider layer reads only `properties`
31
+ * and `required` from each schema.
32
+ *
33
+ * Concurrency notes (post-review hardening):
34
+ * - background completion callbacks and monitor ticks mutate a shared jobs
35
+ * Map asynchronously (possibly after the turn that started them ended).
36
+ * Every terminal transition first re-checks job.status === "running" so a
37
+ * late callback cannot overwrite a cancellation or an earlier finalization.
38
+ * - monitor polls via recursive setTimeout scheduled AFTER each poll
39
+ * completes, with an in-flight guard, so polls never overlap regardless
40
+ * of how long pi.exec takes. interval_seconds is floored at MIN_INTERVAL.
41
+ * - cancel/shutdown send SIGTERM to the child's process group, wait a grace
42
+ * period for exit, then SIGKILL the group if it survives, and record the
43
+ * outcome honestly. A job that won't die is reported, not silently
44
+ * marked cancelled.
45
+ */
46
+
47
+ import { spawn, type ChildProcess } from "node:child_process";
48
+
49
+ // --- Keybinding matcher (sync, optional) ---------------------------------
50
+ //
51
+ // JobPanel input must respond to arrow keys and Esc. The robust way is pi-tui's
52
+ // keybinding manager (matches raw input against semantic actions like
53
+ // "up"/"escape", resolving ALL byte variants incl. application-cursor
54
+ // \u001bOA and user rebindings). The pi-tui module is resolvable synchronously
55
+ // inside the pi process; under bare `bun test` it isn't, so resolveKb() is
56
+ // guarded and JobPanel falls back to raw-byte matches when it returns null.
57
+ // NOTE: resolve once, at JobPanel construction (handleInput's contract is sync —
58
+ // `handleInput(data): void`, invoked fire-and-forget by the input loop — so an
59
+ // async dynamic import() cannot resolve in time for a keystroke).
60
+ let kbMatcher: { matches: (data: string, action: string) => boolean } | null | undefined;
61
+ function resolveKb(): { matches: (data: string, action: string) => boolean } | null {
62
+ if (kbMatcher !== undefined) return kbMatcher;
63
+ try {
64
+ // createRequire keeps the file dependency-free at import time (no top-level
65
+ // import of @earendil-works/pi-tui) while resolving it synchronously at the
66
+ // JobPanel construction site inside the pi process.
67
+ const { createRequire } = require("node:module") as typeof import("node:module");
68
+ const req = createRequire(import.meta.url);
69
+ const mod = req("@earendil-works/pi-tui") as {
70
+ getKeybindings?: () => { matches: (data: string, action: string) => boolean };
71
+ };
72
+ kbMatcher = mod.getKeybindings?.() ?? null;
73
+ } catch {
74
+ kbMatcher = null;
75
+ }
76
+ return kbMatcher;
77
+ }
78
+ /** Raw-byte fallbacks for when pi-tui is unavailable (tests, non-TUI harness). */
79
+ const RAW = {
80
+ up: (d: string) => d === "k" || d === "\u001b[A" || d === "\u001bOA",
81
+ down: (d: string) => d === "j" || d === "\u001b[B" || d === "\u001bOB",
82
+ left: (d: string) => d === "h" || d === "\u001b[D" || d === "\u001bOD",
83
+ right: (d: string) => d === "l" || d === "\u001b[C" || d === "\u001bOC",
84
+ confirm: (d: string) => d === "\r" || d === "\n",
85
+ cancel: (d: string) => d === "\u001b" || d === "\u0003", // Esc, Ctrl+C
86
+ };
87
+
88
+ const STATUS_KEY = "background-tasks";
89
+ const WAKE_CUSTOM_TYPE = "background-tasks:wake";
90
+ const MAX_TAIL_CHARS = 6_000; // hard cap on anything sent back to the model
91
+ const MAX_BUFFER_CHARS = 200_000; // rolling in-memory buffer per job
92
+ const DEFAULT_MONITOR_INTERVAL_S = 10;
93
+ const DEFAULT_MONITOR_TIMEOUT_S = 600;
94
+ const MIN_MONITOR_INTERVAL_S = 1; // floor; sub-second polls flood commands
95
+ const MONITOR_POLL_FAIL_THRESHOLD = 3; // consecutive failed polls -> early diagnostic timeout
96
+ const DEFAULT_TAIL_LINES = 40;
97
+ const CANCEL_GRACE_MS = 4_000; // SIGTERM grace before SIGKILL
98
+ const KILL_GRACE_MS = 2_000; // post-SIGKILL reap window before declaring kill_failed
99
+ const MAX_RETAINED_JOBS = 50; // prune oldest terminal jobs above this count
100
+ const PAGING_TAIL_LINES = 200; // lines of output shown per job in the view panel
101
+
102
+ // --- Session-start discoverability nudge --------------------------------
103
+ //
104
+ // A short, agent-facing explainer appended to the system prompt every turn so
105
+ // the agent reaches for background/monitor (and distinguishes them from
106
+ // peeragent/subagent delegation) instead of reflexively blocking on `bash`.
107
+ // Header is also the idempotency sentinel.
108
+ const SYSTEM_PROMPT_EXPLAINER_HEADER = "## Long-Running & Concurrent Work";
109
+ const SYSTEM_PROMPT_EXPLAINER = `${SYSTEM_PROMPT_EXPLAINER_HEADER}
110
+
111
+ This harness wakes you asynchronously. When you launch work that runs detached, the point is to STOP BLOCKING on it: **either keep working on something else in parallel while it runs, or — if there's genuinely nothing else to do — end the turn** and the harness starts a new one for you when it finishes. Never sit blocked waiting for it.
112
+
113
+ ### Do
114
+ - **\`background\`** — run a long shell command detached and keep working; you're woken on exit. Use for anything that may run more than a few seconds (test suites, builds, deploys, watch/serve, CI runs) AND for **launching multiple instances in parallel** (fan out N jobs, keep doing other work, harvest results via \`jobs\` as each finishes). The whole point: long-running async work you step away from while you produce in parallel.
115
+ - **\`monitor\`** — the SANCTIONED poller. Polls a command on an interval until a *condition* holds, then wakes you. Use it over \`background\` when you're waiting on a state, not a single exit: CI going green, PR reviewer status, a file/port/log line, a \`peeragent --async\` job flipping to done.
116
+ - After a wake, read output with \`jobs\` (action=tail) — it is never auto-delivered.
117
+
118
+ ### Don't
119
+ - **Do NOT hand-roll sleep/poll loops** (\`sleep N\` in bash then \`jobs list\`, over and over). That re-implements the wake the harness already gives you AND blocks the turn you were trying to free up. After launching a background job: **keep working on something else, or end the turn** — you will be woken on exit. (Ending the turn is the *fallback* when there's nothing else to do, not the primary instruction.)
120
+ - **Do NOT use \`background\` for a single quick command** (a few seconds). That's what \`bash\` is for. \`background\` is for *long-running async* and *parallel fan-out*.
121
+ - **Do NOT sleep in \`bash\` to wait for a condition.** That's exactly what \`monitor\` is for, and it's non-blocking.
122
+
123
+ ### Delegation vs. backgrounding (conditional — only if your harness has these)
124
+ - If you have a **cross-harness peer** tool (e.g. peeragent's \/peer\`), it delegates a focused pass (implement/review/research) to a *different* model. It can run \`--async\`; watch its job with \`monitor\` while you keep working.
125
+ - If you have an **internal sub-agent** tool, use THAT (not a cross-harness peer) for parallel work that stays inside this harness.
126
+ - Backgrounding a SHELL command (this plugin) is neither of those — it runs a process, not an agent. If you're unsure which exists in your harness, check before delegating.`;
127
+
128
+ // --- Tiny JSON-Schema builders (no external deps) -------------------------
129
+
130
+ type Schema = Record<string, unknown>;
131
+ const str = (description?: string): Schema => ({ type: "string", ...(description ? { description } : {}) });
132
+ const num = (description?: string): Schema => ({ type: "number", ...(description ? { description } : {}) });
133
+ const strEnum = (values: string[], description?: string): Schema => ({
134
+ type: "string",
135
+ enum: values,
136
+ ...(description ? { description } : {}),
137
+ });
138
+ const strRecord = (description?: string): Schema => ({
139
+ type: "object",
140
+ additionalProperties: { type: "string" },
141
+ ...(description ? { description } : {}),
142
+ });
143
+ const obj = (properties: Record<string, Schema>, required: string[] = []): Schema => ({
144
+ type: "object",
145
+ properties,
146
+ required,
147
+ });
148
+
149
+ // --- Locally-typed pi api slice -------------------------------------------
150
+
151
+ type ExecResult = { stdout?: string; stderr?: string; code?: number | null; killed?: boolean };
152
+
153
+ type UiContext = {
154
+ notify?: (message: string, level?: "info" | "warning" | "error" | "success") => void;
155
+ setStatus?: (key: string, message: string | undefined) => void;
156
+ custom?: (component: unknown, options?: { overlay?: boolean; overlayOptions?: unknown }) => unknown;
157
+ };
158
+
159
+ type Keybindings = unknown;
160
+
161
+ type ToolContext = {
162
+ cwd?: string;
163
+ signal?: AbortSignal;
164
+ ui?: UiContext;
165
+ mode?: "tui" | "rpc" | "json" | "print";
166
+ };
167
+
168
+ type ToolUpdate = {
169
+ content?: Array<{ type: "text"; text: string }>;
170
+ details?: Record<string, unknown>;
171
+ };
172
+
173
+ type ToolResult = {
174
+ content: Array<{ type: "text"; text: string }>;
175
+ details?: Record<string, unknown>;
176
+ isError?: boolean;
177
+ };
178
+
179
+ type ToolExecute = (
180
+ toolCallId: string,
181
+ params: Record<string, unknown>,
182
+ signal: AbortSignal | undefined,
183
+ onUpdate: ((u: ToolUpdate) => void) | undefined,
184
+ ctx: ToolContext,
185
+ ) => Promise<ToolResult>;
186
+
187
+ type ToolDefinition = {
188
+ name: string;
189
+ label?: string;
190
+ description: string;
191
+ promptSnippet?: string;
192
+ promptGuidelines?: string[];
193
+ parameters: unknown;
194
+ execute: ToolExecute;
195
+ };
196
+
197
+ type PiApi = {
198
+ exec?: (
199
+ command: string,
200
+ args: string[],
201
+ options?: { signal?: AbortSignal; timeout?: number; cwd?: string },
202
+ ) => Promise<ExecResult>;
203
+ sendMessage?: (
204
+ message: {
205
+ customType: string;
206
+ content: string;
207
+ display: boolean;
208
+ details?: unknown;
209
+ },
210
+ options?: { triggerTurn?: boolean; deliverAs?: "steer" | "followUp" | "nextTurn" },
211
+ ) => void | Promise<void>;
212
+ appendEntry?: (customType: string, data?: unknown) => void;
213
+ registerTool?: (def: ToolDefinition) => void;
214
+ registerCommand?: (name: string, options: { description: string; handler: (args: string | undefined, ctx: ToolContext) => void }) => void;
215
+ on?: (
216
+ event: string,
217
+ handler: (event: unknown, ctx: ToolContext) => Promise<void> | void,
218
+ ) => void;
219
+ };
220
+
221
+ // --- Job registry ---------------------------------------------------------
222
+
223
+ type JobKind = "background" | "monitor";
224
+ type JobStatus =
225
+ | "running"
226
+ | "cancelling" // SIGTERM sent; awaiting exit or grace-expiry SIGKILL
227
+ | "completed"
228
+ | "failed"
229
+ | "cancelled"
230
+ | "satisfied"
231
+ | "timeout"
232
+ | "kill_failed"; // SIGKILL did not reap the group within the grace window
233
+
234
+ type Job = {
235
+ id: number;
236
+ kind: JobKind;
237
+ label: string;
238
+ command: string;
239
+ status: JobStatus;
240
+ startedAt: number;
241
+ endedAt?: number;
242
+ exitCode?: number | null;
243
+ buffer: string;
244
+ // background
245
+ child?: ChildProcess;
246
+ pid?: number;
247
+ wakeOnPattern?: RegExp;
248
+ patternSource?: string;
249
+ patternFired?: boolean;
250
+ // monitor
251
+ intervalSeconds?: number;
252
+ timeoutSeconds?: number;
253
+ deadline?: number;
254
+ satisfyOn?: string;
255
+ pattern?: string;
256
+ polling?: boolean; // in-flight guard so monitor polls never overlap
257
+ pollFailures?: number; // consecutive polls with empty stdout or non-zero exit
258
+ timer?: ReturnType<typeof setTimeout>;
259
+ };
260
+
261
+ // --- Helpers --------------------------------------------------------------
262
+
263
+ /** Hard cap: marker length is computed first so total never exceeds max. */
264
+ function truncate(text: string, max = MAX_TAIL_CHARS): string {
265
+ if (text.length <= max) return text;
266
+ const marker = `\n…[truncated, showing last ${max} of ${text.length} chars]`;
267
+ const budget = max - marker.length;
268
+ return `${text.slice(Math.max(0, text.length - budget))}${marker}`;
269
+ }
270
+
271
+ function tailLines(text: string, lines = DEFAULT_TAIL_LINES): string {
272
+ const all = text.split("\n");
273
+ if (all.length <= lines) return text;
274
+ return `…[+${all.length - lines} earlier lines]\n${all.slice(-lines).join("\n")}`;
275
+ }
276
+
277
+ function slugify(command: string): string {
278
+ const s = command.replace(/\s+/g, " ").trim().split(" ")[0] ?? "job";
279
+ const base = s.replace(/[^a-zA-Z0-9._-]/g, "").slice(0, 24);
280
+ return base || "job";
281
+ }
282
+
283
+ function appendBuffer(job: Job, chunk: string): void {
284
+ job.buffer += chunk;
285
+ if (job.buffer.length > MAX_BUFFER_CHARS) {
286
+ job.buffer = job.buffer.slice(job.buffer.length - MAX_BUFFER_CHARS);
287
+ }
288
+ }
289
+
290
+ function elapseMs(job: Job): number {
291
+ return (job.endedAt ?? Date.now()) - job.startedAt;
292
+ }
293
+
294
+ function fmtDuration(ms: number): string {
295
+ const s = Math.round(ms / 1000);
296
+ if (s < 60) return `${s}s`;
297
+ const m = Math.floor(s / 60);
298
+ return `${m}m${s % 60}s`;
299
+ }
300
+
301
+ function formatJobLine(job: Job): string {
302
+ const mark =
303
+ job.status === "running" || job.status === "cancelling"
304
+ ? "●"
305
+ : job.status === "completed" || job.status === "satisfied"
306
+ ? "✓"
307
+ : job.status === "failed" || job.status === "timeout" || job.status === "kill_failed"
308
+ ? "✗"
309
+ : "⊘";
310
+ const exit = job.exitCode != null ? ` exit ${job.exitCode}` : "";
311
+ return `#${job.id} ${mark} [${job.status}${exit}] ${job.kind} "${job.label}" (${fmtDuration(elapseMs(job))})`;
312
+ }
313
+
314
+ // --- Extension ------------------------------------------------------------
315
+
316
+ export default function backgroundTasksExtension(pi: PiApi): void {
317
+ const jobs = new Map<number, Job>();
318
+ let nextId = 1;
319
+ let shuttingDown = false;
320
+
321
+ function snapshot(): void {
322
+ pi.appendEntry?.("background-tasks", {
323
+ jobs: Array.from(jobs.values()).map((j) => ({
324
+ id: j.id,
325
+ kind: j.kind,
326
+ label: j.label,
327
+ command: j.command,
328
+ status: j.status,
329
+ })),
330
+ });
331
+ }
332
+
333
+ /** Prune oldest terminal jobs so memory stays bounded across a long session. */
334
+ function pruneTerminal(): void {
335
+ const terminal = Array.from(jobs.values())
336
+ .filter((j) => j.status !== "running" && j.status !== "cancelling")
337
+ .sort((a, b) => (a.endedAt ?? 0) - (b.endedAt ?? 0));
338
+ const excess = terminal.length - MAX_RETAINED_JOBS;
339
+ for (let i = 0; i < excess; i++) jobs.delete(terminal[i].id);
340
+ }
341
+
342
+ function updateStatus(ui?: UiContext): void {
343
+ if (!ui?.setStatus) return;
344
+ const active = Array.from(jobs.values()).filter((j) => j.status === "running" || j.status === "cancelling");
345
+ if (active.length === 0) {
346
+ ui.setStatus(STATUS_KEY, undefined);
347
+ return;
348
+ }
349
+ const labels = active.map((j) => `#${j.id} ${j.label}`).slice(0, 3).join(", ");
350
+ const more = active.length > 3 ? ` +${active.length - 3}` : "";
351
+ ui.setStatus(STATUS_KEY, `⏳ ${active.length} job${active.length === 1 ? "" : "s"}: ${labels}${more}`);
352
+ }
353
+
354
+ /** The last ctx.ui seen by any tool call — used to refresh visuals from async callbacks. */
355
+ let lastUi: UiContext | undefined;
356
+
357
+ function refreshVisuals(): void {
358
+ updateStatus(lastUi);
359
+ }
360
+
361
+ /**
362
+ * Wake the agent with a TRUSTED, hardcoded custom message. Only the numeric
363
+ * job id and an exit/status word are interpolated — never command output,
364
+ * which is attacker-controlled. The agent reads the actual output on demand
365
+ * via the jobs tool (tail/view). Returns void; the wake is best-effort.
366
+ */
367
+ function wake(message: string, details: Record<string, unknown> = {}): void {
368
+ if (shuttingDown) return; // don't trigger turns during/after shutdown
369
+ const tail = message.split("\n")[0];
370
+ const wakeDetails = { source: "background-tasks", trusted: true, ...details };
371
+ try {
372
+ if (pi.sendMessage) {
373
+ // Best-effort: catch BOTH a rejected promise and a synchronous throw
374
+ // from sendMessage (older runtimes may throw instead of rejecting).
375
+ // deliverAs:"steer" injects the custom wake as soon as the current
376
+ // tool-call batch finishes (before the next LLM call) rather than
377
+ // waiting for the agent to wind down the whole turn ("followUp"). When
378
+ // idle, triggerTurn starts a fresh turn immediately.
379
+ void Promise.resolve(
380
+ pi.sendMessage(
381
+ {
382
+ customType: WAKE_CUSTOM_TYPE,
383
+ content: message,
384
+ display: true,
385
+ details: wakeDetails,
386
+ },
387
+ { triggerTurn: true, deliverAs: "steer" },
388
+ ),
389
+ ).catch((err) => {
390
+ console.error(`[background-tasks] wake failed: ${(err as Error).message}`);
391
+ });
392
+ } else if (lastUi?.notify) {
393
+ lastUi.notify(`${tail} (auto-wake unavailable: pi.sendMessage missing)`, "info");
394
+ } else {
395
+ console.error(`[background-tasks] wake (no channel): ${tail}`);
396
+ }
397
+ } catch (err) {
398
+ console.error(`[background-tasks] wake threw: ${(err as Error).message}`);
399
+ }
400
+ }
401
+
402
+ function notify(level: "info" | "success" | "warning" | "error", message: string): void {
403
+ lastUi?.notify?.(message, level);
404
+ }
405
+
406
+ function finalize(job: Job): void {
407
+ job.endedAt = Date.now();
408
+ snapshot();
409
+ pruneTerminal();
410
+ refreshVisuals();
411
+ }
412
+
413
+ /**
414
+ * Stop a running job: SIGTERM its process group, wait for exit within a grace
415
+ * window, then SIGKILL the group if it survived, waiting up to a second short
416
+ * window for reaping. Records the HONEST outcome — cancelled (clean exit on
417
+ * SIGTERM or reaped after SIGKILL) or kill_failed (still alive after SIGKILL).
418
+ * Routes every terminal transition through finalize() so pruning/visuals fire.
419
+ * Idempotent for an already-terminal job. Resolves once terminal.
420
+ */
421
+ async function cancelJob(job: Job): Promise<void> {
422
+ if (job.status !== "running" && job.status !== "cancelling") return;
423
+ if (job.timer) {
424
+ clearTimeout(job.timer);
425
+ job.timer = undefined;
426
+ }
427
+ if (!job.child || !job.pid) {
428
+ // monitor (no child process) — terminal immediately.
429
+ job.status = "cancelled";
430
+ finalize(job);
431
+ return;
432
+ }
433
+ job.status = "cancelling";
434
+ const pid = job.pid;
435
+ const child = job.child;
436
+ const tryKill = (sig: NodeJS.Signals): boolean => {
437
+ try {
438
+ process.kill(-pid, sig); // negative pid = the whole process group
439
+ return true;
440
+ } catch {
441
+ try {
442
+ child.kill(sig);
443
+ return true;
444
+ } catch {
445
+ return false; // already dead
446
+ }
447
+ }
448
+ };
449
+ const waitForExit = (ms: number): Promise<boolean> =>
450
+ new Promise((resolve) => {
451
+ const deadline = Date.now() + ms;
452
+ const tick = () => {
453
+ if (job.status !== "cancelling") return resolve(true); // exit handler reaped it
454
+ if (Date.now() >= deadline) return resolve(false);
455
+ // NOTE: do NOT unref this timer. Once the child exits it becomes the
456
+ // only ref'd handle; an unref'd poll would let the loop drain and the
457
+ // next tick would never fire, hanging the await indefinitely.
458
+ setTimeout(tick, 50);
459
+ };
460
+ tick();
461
+ });
462
+
463
+ tryKill("SIGTERM");
464
+ if (await waitForExit(CANCEL_GRACE_MS)) {
465
+ if (job.status === "cancelling") {
466
+ job.status = "cancelled";
467
+ finalize(job);
468
+ }
469
+ return;
470
+ }
471
+ if (job.status !== "cancelling") return; // reaped mid-window
472
+ // Still alive after SIGTERM grace — escalate to SIGKILL and wait for reaping.
473
+ const killed = tryKill("SIGKILL");
474
+ if (!killed) {
475
+ // Group was already gone (race with exit). Treat as cancelled.
476
+ job.status = "cancelled";
477
+ finalize(job);
478
+ return;
479
+ }
480
+ if (await waitForExit(KILL_GRACE_MS)) {
481
+ if (job.status === "cancelling") {
482
+ job.status = "cancelled";
483
+ finalize(job);
484
+ }
485
+ return;
486
+ }
487
+ // SIGKILL did not reap the group within the window — record honestly.
488
+ if (job.status === "cancelling") {
489
+ job.status = "kill_failed";
490
+ finalize(job);
491
+ }
492
+ }
493
+
494
+ // --- background tool ----------------------------------------------------
495
+
496
+ const backgroundExecute: ToolExecute = async (_id, params, _signal, _onUpdate, ctx) => {
497
+ lastUi = ctx.ui;
498
+ const command = String(params.command ?? "").trim();
499
+ if (!command) {
500
+ return { content: [{ type: "text", text: "command is required." }], isError: true };
501
+ }
502
+ const cwd = params.cwd ? String(params.cwd) : ctx.cwd ?? process.cwd();
503
+ const label = params.label ? String(params.label) : slugify(command);
504
+ const wakePatternRaw = params.wake_on_pattern ? String(params.wake_on_pattern) : undefined;
505
+ const envAdd = (params.env ?? {}) as Record<string, string>;
506
+
507
+ let wakeOnPattern: RegExp | undefined;
508
+ if (wakePatternRaw) {
509
+ try {
510
+ wakeOnPattern = new RegExp(wakePatternRaw);
511
+ } catch (err) {
512
+ return {
513
+ content: [{ type: "text", text: `Invalid wake_on_pattern regexp: ${(err as Error).message}` }],
514
+ isError: true,
515
+ };
516
+ }
517
+ }
518
+
519
+ const job: Job = {
520
+ id: nextId++,
521
+ kind: "background",
522
+ label,
523
+ command,
524
+ status: "running",
525
+ startedAt: Date.now(),
526
+ buffer: "",
527
+ wakeOnPattern,
528
+ patternSource: wakePatternRaw,
529
+ };
530
+
531
+ const child = spawn(command, {
532
+ shell: "/bin/sh",
533
+ cwd,
534
+ env: { ...process.env, ...envAdd },
535
+ detached: true,
536
+ stdio: ["ignore", "pipe", "pipe"],
537
+ });
538
+ job.child = child;
539
+ job.pid = child.pid;
540
+
541
+ const handleChunk = (data: Buffer | string): void => {
542
+ const text = typeof data === "string" ? data : data.toString("utf8");
543
+ appendBuffer(job, text);
544
+ if (wakeOnPattern && !job.patternFired && wakeOnPattern.test(text)) {
545
+ job.patternFired = true;
546
+ // Trusted wake: no command output, just id + the matched fact.
547
+ wake(
548
+ `[background job #${job.id} "${label}" matched its wake_on_pattern — still running]. Read output with the jobs tool (action=tail, jobId=${job.id}).`,
549
+ );
550
+ }
551
+ };
552
+ child.stdout?.on("data", handleChunk);
553
+ child.stderr?.on("data", handleChunk);
554
+
555
+ child.on("exit", (code, signal) => {
556
+ if (job.status === "cancelled" || job.status === "kill_failed") return; // cancellation owns terminal state
557
+ if (job.status === "cancelling") {
558
+ // Reaped during cancellation (SIGTERM or SIGKILL worked) — mark cancelled.
559
+ job.status = "cancelled";
560
+ job.exitCode = code ?? null;
561
+ finalize(job);
562
+ return;
563
+ }
564
+ if (job.status !== "running") return; // already finalized (double-fire guard)
565
+ job.exitCode = code;
566
+ const ok = code === 0;
567
+ job.status = ok ? "completed" : "failed";
568
+ const reason = signal ? `signal ${signal}` : `exit ${code ?? "?"}`;
569
+ notify(ok ? "success" : "error", `background job #${job.id} "${label}" finished: ${reason}`);
570
+ // Trusted wake: only id, label, and the status word. NO command output.
571
+ wake(
572
+ `[background job #${job.id} "${label}" finished: ${reason}]. Read its output with the jobs tool (action=tail, jobId=${job.id}).`,
573
+ );
574
+ finalize(job);
575
+ });
576
+ child.on("error", (err) => {
577
+ if (job.status !== "running" && job.status !== "cancelling") return;
578
+ job.status = "failed";
579
+ notify("error", `background job #${job.id} "${label}" failed to spawn: ${err.message}`);
580
+ wake(
581
+ `[background job #${job.id} "${label}" failed to spawn: ${err.message}]. No command output was produced.`,
582
+ );
583
+ finalize(job);
584
+ });
585
+
586
+ jobs.set(job.id, job);
587
+ snapshot();
588
+ refreshVisuals();
589
+
590
+ const patternNote = wakeOnPattern
591
+ ? `, or earlier the first time output matches /${wakePatternRaw}/`
592
+ : "";
593
+ return {
594
+ content: [
595
+ {
596
+ type: "text",
597
+ text: `Started background job #${job.id} "${label}". I'll be woken with the result when it exits${patternNote}; read the output with the jobs tool. Use jobs (action=cancel, jobId=${job.id}) to stop it.`,
598
+ },
599
+ ],
600
+ details: { jobId: job.id, status: "running", pid: job.pid },
601
+ };
602
+ };
603
+
604
+ // --- monitor tool -------------------------------------------------------
605
+
606
+ const monitorExecute: ToolExecute = async (_id, params, _signal, _onUpdate, ctx) => {
607
+ lastUi = ctx.ui;
608
+ const command = String(params.command ?? "").trim();
609
+ if (!command) {
610
+ return { content: [{ type: "text", text: "command is required." }], isError: true };
611
+ }
612
+ if (!pi.exec) {
613
+ return {
614
+ content: [{ type: "text", text: "monitor needs pi.exec, which is unavailable in this runtime." }],
615
+ isError: true,
616
+ };
617
+ }
618
+ const label = params.label ? String(params.label) : slugify(command);
619
+ const rawInterval = Number(params.interval_seconds ?? DEFAULT_MONITOR_INTERVAL_S);
620
+ const intervalSeconds = Number.isFinite(rawInterval) && rawInterval >= MIN_MONITOR_INTERVAL_S
621
+ ? rawInterval
622
+ : DEFAULT_MONITOR_INTERVAL_S;
623
+ const rawTimeout = Number(params.timeout_seconds ?? DEFAULT_MONITOR_TIMEOUT_S);
624
+ const timeoutSeconds = Number.isFinite(rawTimeout) && rawTimeout > 0 ? rawTimeout : DEFAULT_MONITOR_TIMEOUT_S;
625
+ // satisfy_on is schema-required; no defensive default (L2 fix).
626
+ const satisfyOn = String(params.satisfy_on);
627
+ const patternRaw = params.pattern ? String(params.pattern) : undefined;
628
+
629
+ if ((satisfyOn === "stdout_matches" || satisfyOn === "stdout_not_matches") && !patternRaw) {
630
+ return {
631
+ content: [{ type: "text", text: `satisfy_on=${satisfyOn} requires a pattern.` }],
632
+ isError: true,
633
+ };
634
+ }
635
+ let pattern: RegExp | undefined;
636
+ if (patternRaw) {
637
+ try {
638
+ pattern = new RegExp(patternRaw);
639
+ } catch (err) {
640
+ return {
641
+ content: [{ type: "text", text: `Invalid pattern regexp: ${(err as Error).message}` }],
642
+ isError: true,
643
+ };
644
+ }
645
+ }
646
+
647
+ const job: Job = {
648
+ id: nextId++,
649
+ kind: "monitor",
650
+ label,
651
+ command,
652
+ status: "running",
653
+ startedAt: Date.now(),
654
+ buffer: "",
655
+ intervalSeconds,
656
+ timeoutSeconds,
657
+ deadline: Date.now() + timeoutSeconds * 1000,
658
+ satisfyOn,
659
+ pattern: patternRaw,
660
+ };
661
+ jobs.set(job.id, job);
662
+ snapshot();
663
+ refreshVisuals();
664
+
665
+ const evaluate = (out: string, code: number | null | undefined): boolean => {
666
+ switch (satisfyOn) {
667
+ case "exit_zero":
668
+ return code === 0;
669
+ case "exit_nonzero":
670
+ return code !== 0 && code != null;
671
+ case "stdout_matches":
672
+ return pattern ? pattern.test(out) : false;
673
+ case "stdout_not_matches":
674
+ return pattern ? !pattern.test(out) : false;
675
+ default:
676
+ return false;
677
+ }
678
+ };
679
+
680
+ // Recursive setTimeout AFTER each poll completes, plus an in-flight guard,
681
+ // so polls can never overlap regardless of how long pi.exec takes.
682
+ const tick = async (): Promise<void> => {
683
+ if (job.status !== "running" || job.polling) return;
684
+ job.polling = true;
685
+ let result: ExecResult;
686
+ try {
687
+ // Route through /bin/sh -c explicitly. pi.exec uses spawn() with
688
+ // shell:false, so passing the raw command as the program name only
689
+ // works for bare binaries (true/false); anything with shell syntax
690
+ // (echo X, test -f X && echo Y, pipelines, redirects) ENOENTs and
691
+ // yields empty stdout — which silently breaks stdout_matches and
692
+ // starved exit-based polls of real output. Mirrors the background
693
+ // tool's `spawn(command, { shell: "/bin/sh" })`.
694
+ result = await pi.exec!("/bin/sh", ["-c", command], {
695
+ timeout: Math.max(5, intervalSeconds) * 1000,
696
+ cwd: ctx.cwd ?? process.cwd(),
697
+ });
698
+ } catch (err) {
699
+ result = { stderr: (err as Error).message, code: null };
700
+ }
701
+ job.polling = false;
702
+ if (job.status !== "running") return; // cancelled/timed out mid-poll
703
+
704
+ const out = `${result.stdout ?? ""}${result.stderr ?? ""}`;
705
+ appendBuffer(job, out);
706
+
707
+ // Poll-failure visibility: catch a STRUCTURALLY-BROKEN poll — one whose
708
+ // command can never succeed — and bail early with a diagnostic instead of
709
+ // running it silently to the full deadline. The discriminator is narrow
710
+ // on purpose: a `command not found` / `not found` error in stderr means
711
+ // /bin/sh couldn't run the command at all (typo'd binary, missing tool,
712
+ // or a bogus command inside a pipeline — note a pipeline still exits 0
713
+ // via its last stage, so code alone is NOT a reliable signal). Legit
714
+ // pending polls (test -f, nc -z, curl -fsS, grep -q) fail with a non-zero
715
+ // exit and EMPTY or non-"not found" stderr until the condition holds, so
716
+ // they must NOT be classified as broken — they're the tool's core use
717
+ // case (local-pr-reviewer finding on PR #24: a broader `code !== 0 ||
718
+ // empty stdout` heuristic false-aborted exactly these). After
719
+ // MONITOR_POLL_FAIL_THRESHOLD consecutive "not found" polls, abort with
720
+ // a diagnostic. A poll without that error resets the counter.
721
+ const notFound = /(?:command not found|not found|No such file or directory)/i.test(result.stderr ?? "");
722
+ job.pollFailures = notFound ? (job.pollFailures ?? 0) + 1 : 0;
723
+ if ((job.pollFailures ?? 0) >= MONITOR_POLL_FAIL_THRESHOLD) {
724
+ job.exitCode = result.code ?? undefined;
725
+ job.status = "timeout";
726
+ const hint = `every poll failed to run its command (command not found in stderr). The poll command likely references a missing/typo'd binary or tool`;
727
+ notify("error", `monitor #${job.id} "${label}" aborting: ${hint}. Check the poll command.`);
728
+ wake(
729
+ `[monitor #${job.id} "${label}" aborted after ${job.pollFailures} consecutive broken polls: ${hint}. Read the last poll with the jobs tool (action=tail, jobId=${job.id}) and fix the command.`,
730
+ );
731
+ finalize(job);
732
+ return;
733
+ }
734
+
735
+ if (evaluate(result.stdout ?? "", result.code)) {
736
+ job.exitCode = result.code ?? undefined;
737
+ job.status = "satisfied";
738
+ notify("success", `monitor #${job.id} "${label}" satisfied (${satisfyOn})`);
739
+ // Trusted wake: no command output.
740
+ wake(
741
+ `[monitor #${job.id} "${label}" satisfied: ${satisfyOn}, exit ${result.code ?? "?"}]. Read the result with the jobs tool (action=tail, jobId=${job.id}).`,
742
+ );
743
+ finalize(job);
744
+ return;
745
+ }
746
+ if (Date.now() >= (job.deadline ?? 0)) {
747
+ job.exitCode = result.code ?? undefined;
748
+ job.status = "timeout";
749
+ notify("warning", `monitor #${job.id} "${label}" timed out after ${timeoutSeconds}s`);
750
+ wake(
751
+ `[monitor #${job.id} "${label}" timed out after ${timeoutSeconds}s without satisfying ${satisfyOn}]. Read the last poll with the jobs tool (action=tail, jobId=${job.id}).`,
752
+ );
753
+ finalize(job);
754
+ return;
755
+ }
756
+ // Schedule the NEXT poll only after this one finished -> no overlap.
757
+ job.timer = setTimeout(() => void tick(), intervalSeconds * 1000);
758
+ };
759
+
760
+ // First tick immediately so short conditions resolve fast.
761
+ void tick();
762
+
763
+ return {
764
+ content: [
765
+ {
766
+ type: "text",
767
+ text: `Started monitor #${job.id} "${label}" — polling every ${intervalSeconds}s (timeout ${timeoutSeconds}s) until ${satisfyOn}${patternRaw ? ` matching /${patternRaw}/` : ""}. I'll be woken when it's satisfied or times out; read the result with the jobs tool. Cancel with jobs (action=cancel, jobId=${job.id}).`,
768
+ },
769
+ ],
770
+ details: { jobId: job.id, status: "running", satisfyOn, intervalSeconds, timeoutSeconds },
771
+ };
772
+ };
773
+
774
+ // --- jobs tool ----------------------------------------------------------
775
+
776
+ const jobsExecute: ToolExecute = async (_id, params, _signal, _onUpdate, ctx) => {
777
+ lastUi = ctx.ui;
778
+ // action is schema-required; no defensive default (L2 fix).
779
+ const action = String(params.action);
780
+
781
+ if (action === "list") {
782
+ const list = Array.from(jobs.values()).sort((a, b) => a.id - b.id);
783
+ if (list.length === 0) {
784
+ return { content: [{ type: "text", text: "No background jobs or monitors registered." }] };
785
+ }
786
+ return {
787
+ content: [{ type: "text", text: list.map(formatJobLine).join("\n") }],
788
+ details: { count: list.length },
789
+ };
790
+ }
791
+
792
+ const jobId = Number(params.jobId);
793
+ const job = Number.isFinite(jobId) ? jobs.get(jobId) : undefined;
794
+
795
+ if (action === "status") {
796
+ if (!job) return { content: [{ type: "text", text: `No job #${jobId}.` }], isError: true };
797
+ return {
798
+ content: [
799
+ {
800
+ type: "text",
801
+ text: `${formatJobLine(job)}\ncommand: ${job.command}\nstarted: ${new Date(job.startedAt).toISOString()}`,
802
+ },
803
+ ],
804
+ };
805
+ }
806
+
807
+ if (action === "tail") {
808
+ if (!job) return { content: [{ type: "text", text: `No job #${jobId}.` }], isError: true };
809
+ const lines = Number(params.lines ?? DEFAULT_TAIL_LINES) || DEFAULT_TAIL_LINES;
810
+ return { content: [{ type: "text", text: truncate(tailLines(job.buffer, lines)) }] };
811
+ }
812
+
813
+ if (action === "cancel") {
814
+ if (!job) return { content: [{ type: "text", text: `No job #${jobId}.` }], isError: true };
815
+ if (job.status !== "running" && job.status !== "cancelling") {
816
+ return {
817
+ content: [{ type: "text", text: `Job #${job.id} is already ${job.status} (only running jobs can be cancelled).` }],
818
+ };
819
+ }
820
+ const was = job.status;
821
+ await cancelJob(job);
822
+ // Re-read into a wide-typed local: cancelJob mutated job.status across
823
+ // the await, but TS narrowed it above and won't model the mutation.
824
+ const status: JobStatus = job.status;
825
+ const outcome =
826
+ status === "kill_failed"
827
+ ? `could not be killed within ${KILL_GRACE_MS / 1000}s of SIGKILL (reported as kill_failed — it may still be running as an orphan)`
828
+ : `cancelled (was ${was})`;
829
+ return {
830
+ content: [{ type: "text", text: `Job #${job.id} "${job.label}" ${outcome}.` }],
831
+ details: { jobId: job.id, status },
832
+ };
833
+ }
834
+
835
+ if (action === "view") {
836
+ // Open the focusable overlay panel (interactive). Requires real TUI mode.
837
+ // In rpc/json/print modes ctx.ui.custom may exist but no-op, so gating on
838
+ // its presence would falsely report "Opened".
839
+ if (ctx.mode !== "tui" || !ctx.ui?.custom) {
840
+ return {
841
+ content: [{ type: "text", text: "Interactive view is only available in TUI mode. Use action=list and action=tail instead." }],
842
+ isError: true,
843
+ };
844
+ }
845
+ openJobPanel(ctx.ui);
846
+ return { content: [{ type: "text", text: "Opened the background jobs panel. Use arrows/j-k to move, enter to page a job's output, q or Esc to close." }] };
847
+ }
848
+
849
+ return { content: [{ type: "text", text: `Unknown action "${action}". Use list, status, tail, cancel, or view.` }], isError: true };
850
+ };
851
+
852
+ // --- Focusable overlay panel (jobs view) --------------------------------
853
+
854
+ function openJobPanel(ui: NonNullable<ToolContext["ui"]>): void {
855
+ if (!ui.custom) return;
856
+ // The component is built fresh on each open (overlays dispose on close).
857
+ // pi ALWAYS passes the live KeybindingsManager as the factory's 3rd arg
858
+ // (interactive-mode.js: `factory(this.ui, theme, this.keybindings, close)`),
859
+ // so thread it straight into JobPanel rather than re-deriving the same
860
+ // object via a fragile createRequire("@earendil-works/pi-tui") of an
861
+ // undeclared dependency (opus review W1). Tests construct JobPanel
862
+ // without a factory, so the param is optional there and resolveKb()
863
+ // remains as a test-only fallback.
864
+ ui.custom(
865
+ (tui: unknown, theme: ThemeLike, keybindings: Keybindings, done: () => void) =>
866
+ new JobPanel(
867
+ () => Array.from(jobs.values()).sort((a, b) => a.id - b.id),
868
+ theme,
869
+ done,
870
+ keybindings,
871
+ ),
872
+ { overlay: true, overlayOptions: { width: "70%", maxHeight: "80%", anchor: "center" } },
873
+ );
874
+ }
875
+
876
+ // --- register -----------------------------------------------------------
877
+
878
+ pi.registerTool?.({
879
+ name: "background",
880
+ label: "Background",
881
+ description:
882
+ "Run a long-running shell command in the background and return immediately with a job id. The agent is automatically woken (new turn) when the command exits; if wake_on_pattern is set, it also wakes the first time output matches that regexp. The wake carries only the job id and exit code — never command output, which the agent reads on demand with the jobs tool. Use this instead of the bash tool for anything long-running (test suites, builds, deploys, CI runs) so the turn doesn't block.",
883
+ promptSnippet: "Run a long command in the background; get woken on completion",
884
+ promptGuidelines: [
885
+ "Use background for any command that may take more than a few seconds (test suites, builds, deploys, watch/serve, CI) instead of the bash tool, which blocks the turn. Also use it to launch multiple instances in parallel (fan out N jobs, harvest results with the jobs tool).",
886
+ "After launching a background job, do NOT block waiting for it — either keep working on something else in parallel, or end the turn if there's nothing else to do. Never sleep or poll for it (no `sleep N` then `jobs list` loops): you are woken automatically on exit, and re-implementing the wake blocks the turn you were freeing up.",
887
+ "Prefer the monitor tool over background when you need to wait for a CONDITION (e.g. CI going green, a file appearing, a log line) rather than a single command's exit.",
888
+ "Command output is never auto-delivered: after a wake, read it with the jobs tool (action=tail) rather than expecting it in the wake message.",
889
+ ],
890
+ parameters: obj({
891
+ command: str("Shell command to run in the background under /bin/sh."),
892
+ cwd: str("Working directory. Defaults to the current project."),
893
+ env: strRecord("Extra environment variables, merged over the inherited environment."),
894
+ wake_on_pattern: str("Regexp. If set, wake early (before exit) the first time any stdout/stderr line matches it; the job keeps running and you'll still be woken on exit."),
895
+ label: str("Short human label for the job. Defaults to a slug of the command."),
896
+ }, ["command"]),
897
+ execute: backgroundExecute,
898
+ });
899
+
900
+ pi.registerTool?.({
901
+ name: "monitor",
902
+ label: "Monitor",
903
+ description:
904
+ "Poll a shell command on an interval until a condition is satisfied (or a timeout fires), then wake the agent. satisfy_on picks the condition: exit_zero, exit_nonzero, stdout_matches (pattern), or stdout_not_matches (pattern). Use this to wait on a state rather than a single run — e.g. watch CI until green (gh run list + stdout_matches on success), wait for a file/port, or wait for a log line. Returns immediately with a monitor id; the agent is woken on satisfy or timeout. Polls never overlap and the interval is floored at 1s.",
905
+ promptSnippet: "Poll a command until a condition holds (CI green, file appears, log line)",
906
+ promptGuidelines: [
907
+ "Use monitor (not background, and NEVER a hand-rolled `sleep N` + check loop) when you are waiting for a STATE/condition to become true by re-checking a command. Monitor is the sanctioned, non-blocking poller.",
908
+ "After launching a monitor, do NOT block waiting for it — keep working on something else, or end the turn. You are woken on satisfy or timeout; never sleep or poll for it.",
909
+ "Set a sensible timeout_seconds so a never-satisfied condition wakes you with a timeout rather than polling forever.",
910
+ ],
911
+ parameters: obj({
912
+ command: str("Shell command polled on each tick under /bin/sh."),
913
+ satisfy_on: strEnum(["exit_zero", "exit_nonzero", "stdout_matches", "stdout_not_matches"], "Condition that satisfies the monitor. stdout_matches/stdout_not_matches require pattern."),
914
+ pattern: str("Regexp used by stdout_matches / stdout_not_matches."),
915
+ interval_seconds: num(`Poll interval in seconds (floored at ${MIN_MONITOR_INTERVAL_S}). Default ${DEFAULT_MONITOR_INTERVAL_S}.`),
916
+ timeout_seconds: num(`Give up after this many seconds. Default ${DEFAULT_MONITOR_TIMEOUT_S}.`),
917
+ label: str("Short human label. Defaults to a slug of the command."),
918
+ }, ["command", "satisfy_on"]),
919
+ execute: monitorExecute,
920
+ });
921
+
922
+ pi.registerTool?.({
923
+ name: "jobs",
924
+ label: "Jobs",
925
+ description:
926
+ "Manage the background-task / monitor registry. action=list shows every job with status, kind, label, and runtime; status/tail/cancel/view operate on one jobId (view opens a focusable, keyboard-navigable panel — arrows/j-k to move, enter to page a job's output, q/Esc to close). Use this to check on jobs, read their output, cancel one, or open the jobs panel.",
927
+ promptSnippet: "List, tail, status, cancel, or view background jobs and monitors",
928
+ promptGuidelines: [
929
+ "Use jobs with action=list to check on background/monitor jobs before assuming completion, and action=cancel to stop a job you no longer need (a cancelled job does not wake you).",
930
+ "Use action=tail (or action=view) to read a job's output — it is never delivered automatically in the wake message.",
931
+ ],
932
+ parameters: obj({
933
+ action: strEnum(["list", "status", "tail", "cancel", "view"], "What to do. view opens the interactive panel."),
934
+ jobId: num("Required for status, tail, and cancel."),
935
+ lines: num("Number of trailing lines for tail. Default 40."),
936
+ }, ["action"]),
937
+ execute: jobsExecute,
938
+ });
939
+
940
+ // Convenience command mirroring the view action.
941
+ pi.registerCommand?.("jobs", {
942
+ description: "Open the background-jobs panel (focusable overlay; TUI mode only)",
943
+ handler: (_args, ctx) => {
944
+ lastUi = ctx.ui;
945
+ if (ctx.mode === "tui" && ctx.ui?.custom) openJobPanel(ctx.ui);
946
+ else ctx.ui?.notify?.("Interactive panel is TUI-only; use the jobs tool instead.", "warning");
947
+ },
948
+ });
949
+
950
+ // --- Session-start system-prompt nudge ---------------------------------
951
+ //
952
+ // Append the explainer every turn. Why every turn rather than a one-shot
953
+ // `session_start` user message: the session rebuilds the system prompt from
954
+ // the base each turn, so a one-shot message would be summarized away on the
955
+ // first compaction and never return. Re-appending per turn is compaction-
956
+ // immune, and the token cost is comparable to the per-turn promptGuidelines
957
+ // already attached to each tool definition.
958
+ //
959
+ // The runner wholesale-replaces the prompt with whatever we return and threads
960
+ // `currentSystemPrompt` through chained handlers, so we MUST preserve
961
+ // event.systemPrompt (append to it) — returning only our block would wipe
962
+ // the entire prompt. `event.systemPrompt` starts from the base prompt every
963
+ // turn, so this never sees our own prior append under normal single
964
+ // registration; the header check is a cheap double-registration guard.
965
+ pi.on?.("before_agent_start", (event) => {
966
+ const base = event.systemPrompt ?? "";
967
+ if (base.includes(SYSTEM_PROMPT_EXPLAINER_HEADER)) return;
968
+ return { systemPrompt: `${base}\n\n${SYSTEM_PROMPT_EXPLAINER}` };
969
+ });
970
+
971
+ // Clean up every spawned child / timer on shutdown so we never leak processes.
972
+ // Await cancellations so SIGTERM/SIGKILL escalation actually completes before
973
+ // the process tears down (a fire-and-forget timer could be killed mid-escalate).
974
+ pi.on?.("session_shutdown", async () => {
975
+ shuttingDown = true;
976
+ await Promise.all(
977
+ Array.from(jobs.values())
978
+ .filter((j) => j.status === "running" || j.status === "cancelling")
979
+ .map((j) => cancelJob(j)),
980
+ );
981
+ });
982
+ }
983
+
984
+ export { MAX_RETAINED_JOBS, clipToWidth, JobPanel };
985
+
986
+ // --- Theme shim (avoids importing the real Theme type) -------------------
987
+
988
+ type ThemeLike = {
989
+ fg?: (name: string, text: string) => string;
990
+ bold?: (text: string) => string;
991
+ };
992
+
993
+ /**
994
+ * Clip a string to a visible column width, ignoring ANSI escapes. The TUI
995
+ * appends a full SGR reset per rendered line, so any trailing style is safe.
996
+ * Used by JobPanel.render() to guarantee no line exceeds `width`.
997
+ *
998
+ * Note: width is counted in UTF-16 code units, not display columns; a wide
999
+ * CJK/emoji glyph may overrun by one column. Acceptable for status marks and
1000
+ * typical labels — documented here rather than pulling in East-Asian-Width.
1001
+ */
1002
+ function clipToWidth(text: string, width: number): string {
1003
+ if (width <= 0) return "";
1004
+ let visible = 0;
1005
+ let out = "";
1006
+ let i = 0;
1007
+ while (i < text.length) {
1008
+ const rest = text.slice(i);
1009
+ const m = rest.match(/^\x1b\[[0-9;]*m/);
1010
+ if (m) {
1011
+ out += m[0];
1012
+ i += m[0].length;
1013
+ continue;
1014
+ }
1015
+ if (visible >= width) break;
1016
+ out += text[i];
1017
+ visible++;
1018
+ i++;
1019
+ }
1020
+ // Strip a dangling incomplete escape (e.g. clip landed mid-sequence).
1021
+ return out.replace(/\x1b\[[0-9;]*$/, "");
1022
+ }
1023
+
1024
+ // --- Focusable overlay panel component -----------------------------------
1025
+
1026
+ /**
1027
+ * A keyboard-navigable job board: one line per job with status mark / kind /
1028
+ * label / runtime; enter pages the selected job's buffered output; q/Esc
1029
+ * closes. Implements the pi-tui Component interface (render/handleInput) by
1030
+ * duck-typing; the real @earendil-works/pi-tui Component type is not imported
1031
+ * to keep the file dependency-free.
1032
+ */
1033
+ class JobPanel {
1034
+ private theme: ThemeLike;
1035
+ private onClose: () => void;
1036
+ private kb: { matches: (data: string, action: string) => boolean } | null;
1037
+ private selected = 0;
1038
+ private paging: { jobId: number } | null = null;
1039
+ private getJobs: () => Job[];
1040
+
1041
+ constructor(
1042
+ getJobs: () => Job[],
1043
+ theme: ThemeLike,
1044
+ onClose: () => void,
1045
+ // pi hands the live KeybindingsManager to the ui.custom factory (3rd arg)
1046
+ // and we thread it through openJobPanel. Optional so tests can construct
1047
+ // JobPanel directly without a factory (opus review W1: prefer this over a
1048
+ // createRequire lookup of an undeclared dependency).
1049
+ keybindings?: { matches: (data: string, action: string) => boolean },
1050
+ ) {
1051
+ this.getJobs = getJobs;
1052
+ this.theme = theme;
1053
+ this.onClose = onClose;
1054
+ this.kb = keybindings ?? resolveKb();
1055
+ }
1056
+
1057
+ private fg(name: string, text: string): string {
1058
+ return this.theme.fg ? this.theme.fg(name, text) : text;
1059
+ }
1060
+
1061
+ /** Match input against a pi-tui action, falling back to raw bytes. */
1062
+ private is(data: string, action: "up" | "down" | "left" | "right" | "confirm" | "cancel"): boolean {
1063
+ const actionId =
1064
+ action === "left" || action === "right"
1065
+ ? `tui.editor.cursor${action[0].toUpperCase()}${action.slice(1)}`
1066
+ : `tui.select.${action}`;
1067
+ if (this.kb?.matches(data, actionId)) return true;
1068
+ return RAW[action](data);
1069
+ }
1070
+
1071
+ handleInput(data: string): void {
1072
+ const jobs = this.getJobs();
1073
+ // Clamp selection up-front in case the list shrank since the last render.
1074
+ this.selected = jobs.length === 0 ? 0 : Math.min(this.selected, jobs.length - 1);
1075
+ if (this.paging) {
1076
+ // In paging mode: left/Esc/enter/"q"/back-to-list all return to the list.
1077
+ if (this.is(data, "cancel") || this.is(data, "confirm") || this.is(data, "left") || data === "q") this.paging = null;
1078
+ return;
1079
+ }
1080
+ if (jobs.length === 0) {
1081
+ if (this.is(data, "cancel") || data === "q") this.onClose();
1082
+ return;
1083
+ }
1084
+ if (this.is(data, "cancel") || data === "q") {
1085
+ this.onClose();
1086
+ } else if (this.is(data, "down")) {
1087
+ this.selected = Math.min(jobs.length - 1, this.selected + 1);
1088
+ } else if (this.is(data, "up")) {
1089
+ this.selected = Math.max(0, this.selected - 1);
1090
+ } else if (this.is(data, "confirm") || this.is(data, "right")) {
1091
+ const job = jobs[this.selected];
1092
+ if (job) this.paging = { jobId: job.id };
1093
+ }
1094
+ }
1095
+
1096
+ render(width: number): string[] {
1097
+ if (this.paging) return this.renderPaging(width);
1098
+ const jobs = this.getJobs();
1099
+ const lines: string[] = [];
1100
+ const w = Math.max(1, width);
1101
+ // Clamp selection if the list shrank (jobs pruned/added between renders).
1102
+ const sel = jobs.length === 0 ? 0 : Math.min(this.selected, jobs.length - 1);
1103
+ this.selected = sel;
1104
+ const rule = "─".repeat(w);
1105
+ lines.push(clipToWidth(this.fg("borderMuted", rule), w));
1106
+ const header = this.fg("accent", ` Background jobs (${jobs.length}) `) + this.fg("dim", " — ↑/↓ move · enter page output · q/Esc close");
1107
+ lines.push(clipToWidth(header, w));
1108
+ lines.push(clipToWidth(this.fg("borderMuted", rule), w));
1109
+ if (jobs.length === 0) {
1110
+ lines.push("");
1111
+ lines.push(clipToWidth(this.fg("dim", " No background jobs or monitors."), w));
1112
+ }
1113
+ jobs.forEach((job, i) => {
1114
+ const marker = i === sel ? this.fg("accent", "▸ ") : " ";
1115
+ lines.push(clipToWidth(`${marker}${formatJobLine(job)}`, w));
1116
+ });
1117
+ lines.push("");
1118
+ lines.push(clipToWidth(this.fg("borderMuted", rule), w));
1119
+ return lines;
1120
+ }
1121
+
1122
+ private renderPaging(width: number): string[] {
1123
+ const job = this.paging ? this.getJobs().find((j) => j.id === this.paging!.jobId) : undefined;
1124
+ const lines: string[] = [];
1125
+ const w = Math.max(1, width);
1126
+ const rule = "─".repeat(w);
1127
+ lines.push(clipToWidth(this.fg("borderMuted", rule), w));
1128
+ if (!job) {
1129
+ lines.push(clipToWidth(this.fg("warning", " Job no longer in the registry."), w));
1130
+ } else {
1131
+ lines.push(clipToWidth(this.fg("accent", ` Job #${job.id} "${job.label}" — output `), w));
1132
+ lines.push(clipToWidth(this.fg("dim", ` ${formatJobLine(job)}`), w));
1133
+ lines.push(clipToWidth(this.fg("borderMuted", rule), w));
1134
+ // Bound the paged output to a sane number of lines (the buffer is already
1135
+ // size-capped; tailLines never gets a 0 argument which would return it all).
1136
+ const body = tailLines(job.buffer, PAGING_TAIL_LINES) || "(no output captured)";
1137
+ for (const ln of body.split("\n")) lines.push(clipToWidth(ln, w));
1138
+ }
1139
+ lines.push(clipToWidth(this.fg("borderMuted", rule), w));
1140
+ lines.push(clipToWidth(this.fg("dim", " ←/q/Esc/enter — back to list"), w));
1141
+ return lines;
1142
+ }
1143
+ }