@narumitw/pi-subagents 2.0.6 → 2.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 (178) hide show
  1. package/README.md +152 -50
  2. package/dist/chunks/{auto-transport-SY2VHUFH.ts → auto-transport-FUUKFDIG.ts} +6 -6
  3. package/dist/chunks/{capability-grant-CGEWOEKE.ts → capability-grant-PR72SWWS.ts} +4 -4
  4. package/dist/chunks/{chunk-DPPVEQAM.ts → chunk-4AQSF7AS.ts} +1 -1
  5. package/dist/chunks/chunk-4AQSF7AS.ts.map +7 -0
  6. package/dist/chunks/chunk-6H6TBBED.ts +108 -0
  7. package/dist/chunks/chunk-6H6TBBED.ts.map +7 -0
  8. package/dist/chunks/{chunk-DSOOH73Y.ts → chunk-7AAJEUSL.ts} +3 -3
  9. package/dist/chunks/{chunk-DSOOH73Y.ts.map → chunk-7AAJEUSL.ts.map} +2 -2
  10. package/dist/chunks/{chunk-7QPPBBXZ.ts → chunk-D4CR7T73.ts} +21 -3
  11. package/dist/chunks/chunk-D4CR7T73.ts.map +7 -0
  12. package/dist/chunks/{chunk-434NII74.ts → chunk-DIHBUR2E.ts} +54 -8
  13. package/dist/chunks/chunk-DIHBUR2E.ts.map +7 -0
  14. package/dist/chunks/{chunk-NIF42QMF.ts → chunk-FEVPWRMU.ts} +7 -4
  15. package/dist/chunks/chunk-FEVPWRMU.ts.map +7 -0
  16. package/dist/chunks/{chunk-YBUWBRF7.ts → chunk-FXI45N3J.ts} +5 -5
  17. package/dist/chunks/{chunk-S2IWVK3J.ts → chunk-ILEQ27AL.ts} +3 -2
  18. package/dist/chunks/chunk-ILEQ27AL.ts.map +7 -0
  19. package/dist/chunks/{chunk-DQMN4OYM.ts → chunk-ITVWPNU4.ts} +12 -106
  20. package/dist/chunks/chunk-ITVWPNU4.ts.map +7 -0
  21. package/dist/chunks/{chunk-QDVGH2X7.ts → chunk-IWC32VPY.ts} +2 -1
  22. package/dist/chunks/{chunk-QDVGH2X7.ts.map → chunk-IWC32VPY.ts.map} +2 -2
  23. package/dist/chunks/{chunk-I2FAK44T.ts → chunk-JSZIP73U.ts} +48 -10
  24. package/dist/chunks/chunk-JSZIP73U.ts.map +7 -0
  25. package/dist/chunks/{chunk-ZHTNCZIA.ts → chunk-JU6LUNLP.ts} +2 -2
  26. package/dist/chunks/{chunk-PSK43Y6A.ts → chunk-LASD73CM.ts} +2 -2
  27. package/dist/chunks/{chunk-C4L6P266.ts → chunk-LEOYDZI3.ts} +1 -1
  28. package/dist/chunks/{chunk-C4L6P266.ts.map → chunk-LEOYDZI3.ts.map} +2 -2
  29. package/dist/chunks/{chunk-H3BFJ7HJ.ts → chunk-LL4LP2T7.ts} +5 -5
  30. package/dist/chunks/chunk-N2T5IN4X.ts +18 -0
  31. package/dist/chunks/chunk-N2T5IN4X.ts.map +7 -0
  32. package/dist/chunks/{chunk-G3RSMSXJ.ts → chunk-NTRPLF46.ts} +1 -1
  33. package/dist/chunks/chunk-NTRPLF46.ts.map +7 -0
  34. package/dist/chunks/{chunk-CBP76ARQ.ts → chunk-PABJJYP6.ts} +174 -47
  35. package/dist/chunks/chunk-PABJJYP6.ts.map +7 -0
  36. package/dist/chunks/{chunk-EFBPISNT.ts → chunk-PBZMBTNJ.ts} +104 -103
  37. package/dist/chunks/chunk-PBZMBTNJ.ts.map +7 -0
  38. package/dist/chunks/{chunk-SCZ33MYW.ts → chunk-PGLSFLYW.ts} +2 -2
  39. package/dist/chunks/{chunk-O4VO6JUJ.ts → chunk-TM2R67J3.ts} +3 -3
  40. package/dist/chunks/{chunk-QBORTI4W.ts → chunk-TMZRHIIK.ts} +32 -3
  41. package/dist/chunks/chunk-TMZRHIIK.ts.map +7 -0
  42. package/dist/chunks/chunk-TZ34IQ3M.ts +59 -0
  43. package/dist/chunks/chunk-TZ34IQ3M.ts.map +7 -0
  44. package/dist/chunks/chunk-VBDGNNLM.ts +214 -0
  45. package/dist/chunks/chunk-VBDGNNLM.ts.map +7 -0
  46. package/dist/chunks/{chunk-7OBINKFM.ts → chunk-VDG7LTYE.ts} +11 -11
  47. package/dist/chunks/chunk-VDG7LTYE.ts.map +7 -0
  48. package/dist/chunks/{chunk-AEUYS7JC.ts → chunk-X4NMONPE.ts} +1 -1
  49. package/dist/chunks/chunk-X4NMONPE.ts.map +7 -0
  50. package/dist/chunks/{chunk-HKC4ES4B.ts → chunk-YPJEN6NU.ts} +2 -2
  51. package/dist/chunks/{completion-delivery-YPOWSSV3.ts → completion-delivery-JVLNQRWX.ts} +5 -4
  52. package/dist/chunks/{config-status-J4GPWP46.ts → config-status-FKGDECZ3.ts} +7 -6
  53. package/dist/chunks/{config-ui-2YUCUEBM.ts → config-ui-DDKERQHI.ts} +297 -231
  54. package/dist/chunks/config-ui-DDKERQHI.ts.map +7 -0
  55. package/dist/chunks/{consult-IV7UBNQQ.ts → consult-PQ6PRAKC.ts} +14 -13
  56. package/dist/chunks/consult-PQ6PRAKC.ts.map +7 -0
  57. package/dist/chunks/{create-stateful-transport-ZP3IXNV3.ts → create-stateful-transport-JWC2EFYL.ts} +6 -6
  58. package/dist/chunks/{delegation-contract-WJPT4FVS.ts → delegation-contract-LA56I5DT.ts} +2 -2
  59. package/dist/chunks/{discovery-K25T3SH4.ts → discovery-MIFB2U4Y.ts} +3 -3
  60. package/dist/chunks/{execution-LA7HN5YF.ts → execution-Q2JZLKJA.ts} +19 -16
  61. package/dist/chunks/execution-Q2JZLKJA.ts.map +7 -0
  62. package/dist/chunks/{in-process-transport-4RF3J6XK.ts → in-process-transport-HJ6TZXC3.ts} +9 -9
  63. package/dist/chunks/{inspect-XV2QALMR.ts → inspect-UH2TKH6E.ts} +25 -10
  64. package/dist/chunks/inspect-UH2TKH6E.ts.map +7 -0
  65. package/dist/chunks/{persistence-VSGXAW4P.ts → persistence-XHPJBZL7.ts} +11 -7
  66. package/dist/chunks/persistence-XHPJBZL7.ts.map +7 -0
  67. package/dist/chunks/{registry-E6XPJB7L.ts → registry-XDXPECWF.ts} +136 -15
  68. package/dist/chunks/registry-XDXPECWF.ts.map +7 -0
  69. package/dist/chunks/{retained-semantic-state-7WXSGRJU.ts → retained-semantic-state-GM75FZGE.ts} +3 -3
  70. package/dist/chunks/{rpc-transport-NEHBHWX4.ts → rpc-transport-7R7DVCEB.ts} +12 -16
  71. package/dist/chunks/rpc-transport-7R7DVCEB.ts.map +7 -0
  72. package/dist/chunks/{spawn-idempotency-QGHO2WKC.ts → spawn-idempotency-BNHOSMZW.ts} +2 -2
  73. package/dist/chunks/{subprocess-transport-NSHOGDC4.ts → subprocess-transport-VHZJRBTW.ts} +15 -14
  74. package/dist/chunks/subprocess-transport-VHZJRBTW.ts.map +7 -0
  75. package/dist/chunks/usage-recording-store-CW3EH2SZ.ts +164 -0
  76. package/dist/chunks/usage-recording-store-CW3EH2SZ.ts.map +7 -0
  77. package/dist/index.ts +427 -30
  78. package/dist/index.ts.map +3 -3
  79. package/docs/async-runtime-protocol.md +69 -0
  80. package/docs/implementation-notes/pi-subagents-capability-matrix.md +62 -0
  81. package/docs/implementation-notes/pi-subagents-current-direction.md +99 -0
  82. package/docs/implementation-notes/pi-subagents-rpc-v1.md +153 -0
  83. package/docs/pi-subagents-diagrams.md +183 -0
  84. package/package.json +9 -8
  85. package/src/agents/types.ts +2 -0
  86. package/src/async-subagent-benchmark.ts +532 -0
  87. package/src/completion-delivery.ts +71 -4
  88. package/src/completion-render.ts +1 -0
  89. package/src/completion-requirement.ts +308 -0
  90. package/src/config-registration.ts +5 -5
  91. package/src/config-status.ts +66 -70
  92. package/src/config-ui.ts +244 -150
  93. package/src/consult-resources.ts +1 -1
  94. package/src/consult.ts +3 -8
  95. package/src/delegation-contract.ts +55 -9
  96. package/src/execution-plan.ts +1 -1
  97. package/src/execution-ui.ts +40 -29
  98. package/src/execution.ts +2 -3
  99. package/src/inspect.ts +24 -1
  100. package/src/orchestration-metrics.ts +1 -1
  101. package/src/panel-execution.ts +2 -3
  102. package/src/panel-failure.ts +1 -1
  103. package/src/panel-render.ts +1 -1
  104. package/src/parallel-limit-ui.ts +6 -5
  105. package/src/params.ts +2 -1
  106. package/src/persistence.ts +9 -0
  107. package/src/process-control.ts +43 -0
  108. package/src/registry-types.ts +5 -0
  109. package/src/registry.ts +162 -18
  110. package/src/render.ts +2 -1
  111. package/src/rpc-transport.ts +1 -1
  112. package/src/runner-outcome.ts +1 -1
  113. package/src/runner-result.ts +1 -1
  114. package/src/runner-types.ts +102 -0
  115. package/src/runner.ts +11 -192
  116. package/src/settings/inspection.ts +27 -0
  117. package/src/settings/schema.ts +9 -0
  118. package/src/settings-reader.ts +7 -0
  119. package/src/settings.ts +20 -0
  120. package/src/spawn-idempotency.ts +5 -0
  121. package/src/stateful-agent-view.ts +15 -19
  122. package/src/stateful-guidance.ts +14 -4
  123. package/src/stateful-limit-ui.ts +23 -20
  124. package/src/stateful-limits.ts +10 -10
  125. package/src/stateful-registration.ts +126 -9
  126. package/src/stateful-render.ts +27 -2
  127. package/src/subagent-details.ts +43 -0
  128. package/src/subagents-extension.ts +66 -8
  129. package/src/subagents.ts +2 -0
  130. package/src/subprocess-transport.ts +2 -1
  131. package/src/supervision.ts +2 -1
  132. package/src/timeout-finalization.ts +1 -1
  133. package/src/tool-schema-compatibility.ts +73 -0
  134. package/src/transport-types.ts +6 -0
  135. package/src/transport-ui.ts +18 -46
  136. package/src/usage-recording-config.ts +13 -0
  137. package/src/usage-recording-store.ts +183 -0
  138. package/src/usage-recording.ts +478 -0
  139. package/src/verification-harness.ts +1 -1
  140. package/src/workflow-ui.ts +17 -9
  141. package/dist/chunks/chunk-434NII74.ts.map +0 -7
  142. package/dist/chunks/chunk-7OBINKFM.ts.map +0 -7
  143. package/dist/chunks/chunk-7QPPBBXZ.ts.map +0 -7
  144. package/dist/chunks/chunk-AEUYS7JC.ts.map +0 -7
  145. package/dist/chunks/chunk-CBP76ARQ.ts.map +0 -7
  146. package/dist/chunks/chunk-DPPVEQAM.ts.map +0 -7
  147. package/dist/chunks/chunk-DQMN4OYM.ts.map +0 -7
  148. package/dist/chunks/chunk-EFBPISNT.ts.map +0 -7
  149. package/dist/chunks/chunk-G3RSMSXJ.ts.map +0 -7
  150. package/dist/chunks/chunk-I2FAK44T.ts.map +0 -7
  151. package/dist/chunks/chunk-NIF42QMF.ts.map +0 -7
  152. package/dist/chunks/chunk-QBORTI4W.ts.map +0 -7
  153. package/dist/chunks/chunk-S2IWVK3J.ts.map +0 -7
  154. package/dist/chunks/config-ui-2YUCUEBM.ts.map +0 -7
  155. package/dist/chunks/consult-IV7UBNQQ.ts.map +0 -7
  156. package/dist/chunks/execution-LA7HN5YF.ts.map +0 -7
  157. package/dist/chunks/inspect-XV2QALMR.ts.map +0 -7
  158. package/dist/chunks/persistence-VSGXAW4P.ts.map +0 -7
  159. package/dist/chunks/registry-E6XPJB7L.ts.map +0 -7
  160. package/dist/chunks/rpc-transport-NEHBHWX4.ts.map +0 -7
  161. package/dist/chunks/subprocess-transport-NSHOGDC4.ts.map +0 -7
  162. /package/dist/chunks/{auto-transport-SY2VHUFH.ts.map → auto-transport-FUUKFDIG.ts.map} +0 -0
  163. /package/dist/chunks/{capability-grant-CGEWOEKE.ts.map → capability-grant-PR72SWWS.ts.map} +0 -0
  164. /package/dist/chunks/{chunk-YBUWBRF7.ts.map → chunk-FXI45N3J.ts.map} +0 -0
  165. /package/dist/chunks/{chunk-ZHTNCZIA.ts.map → chunk-JU6LUNLP.ts.map} +0 -0
  166. /package/dist/chunks/{chunk-PSK43Y6A.ts.map → chunk-LASD73CM.ts.map} +0 -0
  167. /package/dist/chunks/{chunk-H3BFJ7HJ.ts.map → chunk-LL4LP2T7.ts.map} +0 -0
  168. /package/dist/chunks/{chunk-SCZ33MYW.ts.map → chunk-PGLSFLYW.ts.map} +0 -0
  169. /package/dist/chunks/{chunk-O4VO6JUJ.ts.map → chunk-TM2R67J3.ts.map} +0 -0
  170. /package/dist/chunks/{chunk-HKC4ES4B.ts.map → chunk-YPJEN6NU.ts.map} +0 -0
  171. /package/dist/chunks/{completion-delivery-YPOWSSV3.ts.map → completion-delivery-JVLNQRWX.ts.map} +0 -0
  172. /package/dist/chunks/{config-status-J4GPWP46.ts.map → config-status-FKGDECZ3.ts.map} +0 -0
  173. /package/dist/chunks/{create-stateful-transport-ZP3IXNV3.ts.map → create-stateful-transport-JWC2EFYL.ts.map} +0 -0
  174. /package/dist/chunks/{delegation-contract-WJPT4FVS.ts.map → delegation-contract-LA56I5DT.ts.map} +0 -0
  175. /package/dist/chunks/{discovery-K25T3SH4.ts.map → discovery-MIFB2U4Y.ts.map} +0 -0
  176. /package/dist/chunks/{in-process-transport-4RF3J6XK.ts.map → in-process-transport-HJ6TZXC3.ts.map} +0 -0
  177. /package/dist/chunks/{retained-semantic-state-7WXSGRJU.ts.map → retained-semantic-state-GM75FZGE.ts.map} +0 -0
  178. /package/dist/chunks/{spawn-idempotency-QGHO2WKC.ts.map → spawn-idempotency-BNHOSMZW.ts.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/delegation-contract.ts"],
4
+ "sourcesContent": ["import { StringEnum } from \"@earendil-works/pi-ai\";\nimport { Type } from \"typebox\";\nimport { redactPrivateText } from \"./context.js\";\nimport { DEFAULT_MAX_CONTEXT_BYTES, MAX_SUBAGENT_TIMEOUT_MS, truncateUtf8 } from \"./limits.js\";\n\nexport const DELEGATION_CONTRACT_VERSION = \"pi-subagents:delegation:v2\" as const;\nexport const DELEGATION_CONTRACT_LEVELS = [\"minimal\", \"full\"] as const;\nexport const DELEGATION_ENFORCEMENT_MODES = [\"audit\", \"enforce\"] as const;\nexport const AUTHORITY_REQUIREMENTS = [\"unspecified\", \"denied\", \"required\"] as const;\nexport const DELEGATION_SIDE_EFFECT_POLICIES = [\"read-only\", \"idempotent\", \"mutating\"] as const;\n\nconst MAX_IDENTIFIER_BYTES = 256;\nconst MAX_TEXT_BYTES = 16 * 1024;\nconst MAX_ITEM_BYTES = 4 * 1024;\nconst MAX_ITEMS = 50;\nconst MAX_TURNS_OR_TOOLS = 1_000_000;\n\nconst BoundedString = Type.String({ maxLength: MAX_TEXT_BYTES });\nconst BoundedItem = Type.String({ maxLength: MAX_ITEM_BYTES });\nconst BoundedItems = Type.Array(BoundedItem, { maxItems: MAX_ITEMS });\nconst DependencySchema = Type.Object(\n\t{\n\t\ttaskId: Type.String({ minLength: 1, maxLength: MAX_IDENTIFIER_BYTES }),\n\t\tartifactId: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_IDENTIFIER_BYTES })),\n\t\tversion: Type.Optional(Type.String({ minLength: 1, maxLength: MAX_IDENTIFIER_BYTES })),\n\t},\n\t{ additionalProperties: false },\n);\n\nexport const DelegationContractSchema = Type.Object(\n\t{\n\t\tversion: Type.Literal(DELEGATION_CONTRACT_VERSION),\n\t\tlevel: StringEnum(DELEGATION_CONTRACT_LEVELS),\n\t\ttaskId: Type.String({ minLength: 1, maxLength: MAX_IDENTIFIER_BYTES }),\n\t\tobjective: BoundedString,\n\t\tnonGoals: Type.Optional(BoundedItems),\n\t\tdependencies: Type.Optional(Type.Array(DependencySchema, { maxItems: MAX_ITEMS })),\n\t\trequiredInputs: Type.Optional(BoundedItems),\n\t\trequestedAuthority: Type.Optional(\n\t\t\tType.Object(\n\t\t\t\t{\n\t\t\t\t\tcapabilities: Type.Optional(\n\t\t\t\t\t\tType.Array(BoundedItem, {\n\t\t\t\t\t\t\tmaxItems: MAX_ITEMS,\n\t\t\t\t\t\t\tdescription: \"Capabilities requested from the selected agent manifest.\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\ttools: Type.Optional(\n\t\t\t\t\t\tType.Array(BoundedItem, {\n\t\t\t\t\t\t\tmaxItems: MAX_ITEMS,\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\"Tools that enforcement may narrow to the selected agent's available set.\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\treadPaths: Type.Optional(\n\t\t\t\t\t\tType.Array(BoundedItem, {\n\t\t\t\t\t\t\tmaxItems: MAX_ITEMS,\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t'Audit metadata only; enforcement \"enforce\" rejects non-empty readPaths because path scope is unsupported.',\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\twritePaths: Type.Optional(\n\t\t\t\t\t\tType.Array(BoundedItem, {\n\t\t\t\t\t\t\tmaxItems: MAX_ITEMS,\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t'Audit metadata only; enforcement \"enforce\" rejects non-empty writePaths because path scope is unsupported.',\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\tnetwork: Type.Optional(\n\t\t\t\t\t\tStringEnum(AUTHORITY_REQUIREMENTS, {\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t'Audit metadata only; enforcement \"enforce\" rejects denied or required network guarantees as unsupported.',\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t\tsecrets: Type.Optional(\n\t\t\t\t\t\tStringEnum(AUTHORITY_REQUIREMENTS, {\n\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t'Audit metadata only; enforcement \"enforce\" rejects denied or required secret guarantees as unsupported.',\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"Only capabilities and tools have executor enforcement; readPaths, writePaths, network, and secrets are unsupported guarantees.\",\n\t\t\t\t},\n\t\t\t),\n\t\t),\n\t\tacceptanceCriteria: Type.Optional(BoundedItems),\n\t\trequiredEvidence: Type.Optional(BoundedItems),\n\t\tbudget: Type.Optional(\n\t\t\tType.Object(\n\t\t\t\t{\n\t\t\t\t\ttimeoutMs: Type.Optional(Type.Integer({ minimum: 1, maximum: MAX_SUBAGENT_TIMEOUT_MS })),\n\t\t\t\t\tmaxTurns: Type.Optional(Type.Integer({ minimum: 1, maximum: MAX_TURNS_OR_TOOLS })),\n\t\t\t\t\tmaxToolCalls: Type.Optional(Type.Integer({ minimum: 1, maximum: MAX_TURNS_OR_TOOLS })),\n\t\t\t\t},\n\t\t\t\t{ additionalProperties: false },\n\t\t\t),\n\t\t),\n\t\tadmission: Type.Optional(\n\t\t\tType.Object(\n\t\t\t\t{\n\t\t\t\t\tcontextPressure: StringEnum([\"low\", \"medium\", \"high\"] as const),\n\t\t\t\t\tindependentWorkItems: Type.Integer({ minimum: 1, maximum: 2 }),\n\t\t\t\t\tcoupling: StringEnum([\"dense\", \"sparse\"] as const),\n\t\t\t\t\tverificationRequired: Type.Boolean(),\n\t\t\t\t\tverificationAvailable: Type.Boolean(),\n\t\t\t\t\tbudgetAllowsChildren: Type.Boolean(),\n\t\t\t\t\trequirementsComplete: Type.Boolean(),\n\t\t\t\t},\n\t\t\t\t{ additionalProperties: false },\n\t\t\t),\n\t\t),\n\t\tsideEffectPolicy: Type.Optional(StringEnum(DELEGATION_SIDE_EFFECT_POLICIES)),\n\t\tenforcement: Type.Optional(\n\t\t\tStringEnum(DELEGATION_ENFORCEMENT_MODES, {\n\t\t\t\tdescription:\n\t\t\t\t\t\"Defaults to audit; enforce rejects unsupported requestedAuthority guarantees before child launch.\",\n\t\t\t}),\n\t\t),\n\t},\n\t{\n\t\tadditionalProperties: false,\n\t\tdescription:\n\t\t\t\"Advanced delegation contract. For ordinary delegation omit this object; use it only for explicit acceptance, authority, evidence, or admission semantics.\",\n\t},\n);\n\nexport interface DelegationDependency {\n\ttaskId: string;\n\tartifactId?: string;\n\tversion?: string;\n}\n\nexport interface DelegationAuthorityRequest {\n\tcapabilities?: string[];\n\ttools?: string[];\n\treadPaths?: string[];\n\twritePaths?: string[];\n\tnetwork?: (typeof AUTHORITY_REQUIREMENTS)[number];\n\tsecrets?: (typeof AUTHORITY_REQUIREMENTS)[number];\n}\n\nexport interface DelegationBudgetRequest {\n\ttimeoutMs?: number;\n\tmaxTurns?: number;\n\tmaxToolCalls?: number;\n}\n\nexport interface DelegationAdmissionRequest {\n\tcontextPressure: \"low\" | \"medium\" | \"high\";\n\tindependentWorkItems: number;\n\tcoupling: \"dense\" | \"sparse\";\n\tverificationRequired: boolean;\n\tverificationAvailable: boolean;\n\tbudgetAllowsChildren: boolean;\n\trequirementsComplete: boolean;\n}\n\nexport interface DelegationContract {\n\tversion: typeof DELEGATION_CONTRACT_VERSION;\n\tlevel: (typeof DELEGATION_CONTRACT_LEVELS)[number];\n\ttaskId: string;\n\tobjective: string;\n\tnonGoals: string[];\n\tdependencies: DelegationDependency[];\n\trequiredInputs: string[];\n\trequestedAuthority?: DelegationAuthorityRequest;\n\tacceptanceCriteria: string[];\n\trequiredEvidence: string[];\n\tbudget?: DelegationBudgetRequest;\n\tadmission?: DelegationAdmissionRequest;\n\tsideEffectPolicy: (typeof DELEGATION_SIDE_EFFECT_POLICIES)[number];\n\tenforcement: (typeof DELEGATION_ENFORCEMENT_MODES)[number];\n}\n\nexport interface AppendedDelegationContract {\n\ttext: string;\n\tcontract?: DelegationContract;\n\ttruncated: boolean;\n}\n\nexport function normalizeDelegationContract(value: unknown): DelegationContract | undefined {\n\tif (!isPlainObject(value)) return undefined;\n\tif (\n\t\t!hasOnlyKeys(value, [\n\t\t\t\"version\",\n\t\t\t\"level\",\n\t\t\t\"taskId\",\n\t\t\t\"objective\",\n\t\t\t\"nonGoals\",\n\t\t\t\"dependencies\",\n\t\t\t\"requiredInputs\",\n\t\t\t\"requestedAuthority\",\n\t\t\t\"acceptanceCriteria\",\n\t\t\t\"requiredEvidence\",\n\t\t\t\"budget\",\n\t\t\t\"admission\",\n\t\t\t\"sideEffectPolicy\",\n\t\t\t\"enforcement\",\n\t\t])\n\t) {\n\t\treturn undefined;\n\t}\n\tif (\n\t\tvalue.version !== DELEGATION_CONTRACT_VERSION ||\n\t\ttypeof value.level !== \"string\" ||\n\t\t!DELEGATION_CONTRACT_LEVELS.includes(\n\t\t\tvalue.level as (typeof DELEGATION_CONTRACT_LEVELS)[number],\n\t\t) ||\n\t\ttypeof value.taskId !== \"string\" ||\n\t\t!value.taskId.trim() ||\n\t\ttypeof value.objective !== \"string\"\n\t) {\n\t\treturn undefined;\n\t}\n\tconst taskId = bounded(value.taskId, MAX_IDENTIFIER_BYTES);\n\tconst objective = bounded(value.objective, MAX_TEXT_BYTES);\n\tif (!taskId || !objective) return undefined;\n\tconst nonGoals = normalizeStrings(value.nonGoals);\n\tconst requiredInputs = normalizeStrings(value.requiredInputs);\n\tconst acceptanceCriteria = normalizeStrings(value.acceptanceCriteria);\n\tconst requiredEvidence = normalizeStrings(value.requiredEvidence);\n\tif (!nonGoals || !requiredInputs || !acceptanceCriteria || !requiredEvidence) return undefined;\n\tconst dependencies = normalizeDependencies(value.dependencies);\n\tif (!dependencies) return undefined;\n\tconst authority = normalizeAuthority(value.requestedAuthority);\n\tif (authority === false) return undefined;\n\tconst budget = normalizeBudget(value.budget);\n\tif (budget === false) return undefined;\n\tconst admission = normalizeAdmission(value.admission);\n\tif (admission === false) return undefined;\n\tconst sideEffectPolicy = value.sideEffectPolicy ?? \"mutating\";\n\tif (\n\t\ttypeof sideEffectPolicy !== \"string\" ||\n\t\t!DELEGATION_SIDE_EFFECT_POLICIES.includes(\n\t\t\tsideEffectPolicy as (typeof DELEGATION_SIDE_EFFECT_POLICIES)[number],\n\t\t)\n\t) {\n\t\treturn undefined;\n\t}\n\tconst enforcement = value.enforcement ?? \"audit\";\n\tif (\n\t\ttypeof enforcement !== \"string\" ||\n\t\t!DELEGATION_ENFORCEMENT_MODES.includes(\n\t\t\tenforcement as (typeof DELEGATION_ENFORCEMENT_MODES)[number],\n\t\t)\n\t) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tversion: DELEGATION_CONTRACT_VERSION,\n\t\tlevel: value.level as DelegationContract[\"level\"],\n\t\ttaskId,\n\t\tobjective,\n\t\tnonGoals,\n\t\tdependencies,\n\t\trequiredInputs,\n\t\t...(authority === undefined ? {} : { requestedAuthority: authority }),\n\t\tacceptanceCriteria,\n\t\trequiredEvidence,\n\t\t...(budget === undefined ? {} : { budget }),\n\t\t...(admission === undefined ? {} : { admission }),\n\t\tsideEffectPolicy: sideEffectPolicy as DelegationContract[\"sideEffectPolicy\"],\n\t\tenforcement: enforcement as DelegationContract[\"enforcement\"],\n\t};\n}\n\nexport function appendDelegationContract(\n\tprompt: string,\n\tvalue: unknown,\n\tmaxBytes = DEFAULT_MAX_CONTEXT_BYTES,\n): AppendedDelegationContract {\n\tconst contract = normalizeDelegationContract(value);\n\tif (!contract) return { text: prompt, truncated: false };\n\tconst suffix = [\n\t\t\"\",\n\t\t\"Delegation contract:\",\n\t\tJSON.stringify(contract),\n\t\t\"The requested authority is advisory until an executor-owned ExecutionPlan confirms which controls are enforceable and effective.\",\n\t\t\"Acknowledge missing inputs, authority, capabilities, or verification instead of guessing.\",\n\t].join(\"\\n\");\n\tconst suffixBytes = Buffer.byteLength(suffix, \"utf8\");\n\tconst boundedPrompt = truncateUtf8(\n\t\tredactPrivateText(prompt),\n\t\tMath.max(0, maxBytes - suffixBytes),\n\t);\n\tconst text = truncateUtf8(`${boundedPrompt.text}${suffix}`, maxBytes);\n\treturn {\n\t\ttext: text.text,\n\t\tcontract,\n\t\ttruncated: boundedPrompt.truncated || text.truncated,\n\t};\n}\n\nfunction normalizeAdmission(value: unknown): DelegationAdmissionRequest | undefined | false {\n\tif (value === undefined) return undefined;\n\tif (!isPlainObject(value)) return false;\n\tif (\n\t\t!hasOnlyKeys(value, [\n\t\t\t\"contextPressure\",\n\t\t\t\"independentWorkItems\",\n\t\t\t\"coupling\",\n\t\t\t\"verificationRequired\",\n\t\t\t\"verificationAvailable\",\n\t\t\t\"budgetAllowsChildren\",\n\t\t\t\"requirementsComplete\",\n\t\t]) ||\n\t\t![\"low\", \"medium\", \"high\"].includes(String(value.contextPressure)) ||\n\t\t!Number.isSafeInteger(value.independentWorkItems) ||\n\t\tNumber(value.independentWorkItems) < 1 ||\n\t\tNumber(value.independentWorkItems) > 2 ||\n\t\t![\"dense\", \"sparse\"].includes(String(value.coupling)) ||\n\t\ttypeof value.verificationRequired !== \"boolean\" ||\n\t\ttypeof value.verificationAvailable !== \"boolean\" ||\n\t\ttypeof value.budgetAllowsChildren !== \"boolean\" ||\n\t\ttypeof value.requirementsComplete !== \"boolean\"\n\t) {\n\t\treturn false;\n\t}\n\treturn {\n\t\tcontextPressure: value.contextPressure as DelegationAdmissionRequest[\"contextPressure\"],\n\t\tindependentWorkItems: Number(value.independentWorkItems),\n\t\tcoupling: value.coupling as DelegationAdmissionRequest[\"coupling\"],\n\t\tverificationRequired: value.verificationRequired,\n\t\tverificationAvailable: value.verificationAvailable,\n\t\tbudgetAllowsChildren: value.budgetAllowsChildren,\n\t\trequirementsComplete: value.requirementsComplete,\n\t};\n}\n\nfunction normalizeDependencies(value: unknown): DelegationDependency[] | undefined {\n\tif (value === undefined) return [];\n\tif (!Array.isArray(value) || value.length > MAX_ITEMS) return undefined;\n\tconst result: DelegationDependency[] = [];\n\tconst seen = new Set<string>();\n\tfor (const item of value) {\n\t\tif (\n\t\t\t!isPlainObject(item) ||\n\t\t\t!hasOnlyKeys(item, [\"taskId\", \"artifactId\", \"version\"]) ||\n\t\t\ttypeof item.taskId !== \"string\"\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst taskId = bounded(item.taskId, MAX_IDENTIFIER_BYTES);\n\t\tif (!taskId || seen.has(taskId)) return undefined;\n\t\tseen.add(taskId);\n\t\tconst artifactId = optionalString(item.artifactId, MAX_IDENTIFIER_BYTES);\n\t\tconst version = optionalString(item.version, MAX_IDENTIFIER_BYTES);\n\t\tif (artifactId === false || version === false) return undefined;\n\t\tresult.push({\n\t\t\ttaskId,\n\t\t\t...(artifactId === undefined ? {} : { artifactId }),\n\t\t\t...(version === undefined ? {} : { version }),\n\t\t});\n\t}\n\treturn result;\n}\n\nfunction normalizeAuthority(value: unknown): DelegationAuthorityRequest | undefined | false {\n\tif (value === undefined) return undefined;\n\tif (!isPlainObject(value)) return false;\n\tif (\n\t\t!hasOnlyKeys(value, [\"capabilities\", \"tools\", \"readPaths\", \"writePaths\", \"network\", \"secrets\"])\n\t) {\n\t\treturn false;\n\t}\n\tconst capabilities = normalizeOptionalStrings(value.capabilities);\n\tconst tools = normalizeOptionalStrings(value.tools);\n\tconst readPaths = normalizeOptionalStrings(value.readPaths);\n\tconst writePaths = normalizeOptionalStrings(value.writePaths);\n\tif (capabilities === false || tools === false || readPaths === false || writePaths === false) {\n\t\treturn false;\n\t}\n\tconst network = normalizeAuthorityRequirement(value.network);\n\tconst secrets = normalizeAuthorityRequirement(value.secrets);\n\tif (network === false || secrets === false) return false;\n\treturn {\n\t\t...(capabilities === undefined ? {} : { capabilities }),\n\t\t...(tools === undefined ? {} : { tools }),\n\t\t...(readPaths === undefined ? {} : { readPaths }),\n\t\t...(writePaths === undefined ? {} : { writePaths }),\n\t\t...(network === undefined ? {} : { network }),\n\t\t...(secrets === undefined ? {} : { secrets }),\n\t};\n}\n\nfunction normalizeBudget(value: unknown): DelegationBudgetRequest | undefined | false {\n\tif (value === undefined) return undefined;\n\tif (!isPlainObject(value) || !hasOnlyKeys(value, [\"timeoutMs\", \"maxTurns\", \"maxToolCalls\"])) {\n\t\treturn false;\n\t}\n\tconst timeoutMs = optionalInteger(value.timeoutMs, MAX_SUBAGENT_TIMEOUT_MS);\n\tconst maxTurns = optionalInteger(value.maxTurns, MAX_TURNS_OR_TOOLS);\n\tconst maxToolCalls = optionalInteger(value.maxToolCalls, MAX_TURNS_OR_TOOLS);\n\tif (timeoutMs === false || maxTurns === false || maxToolCalls === false) return false;\n\treturn {\n\t\t...(timeoutMs === undefined ? {} : { timeoutMs }),\n\t\t...(maxTurns === undefined ? {} : { maxTurns }),\n\t\t...(maxToolCalls === undefined ? {} : { maxToolCalls }),\n\t};\n}\n\nfunction normalizeStrings(value: unknown): string[] | undefined {\n\tif (value === undefined) return [];\n\tconst normalized = normalizeOptionalStrings(value);\n\treturn normalized === false ? undefined : normalized;\n}\n\nfunction normalizeOptionalStrings(value: unknown): string[] | undefined | false {\n\tif (value === undefined) return undefined;\n\tif (!Array.isArray(value) || value.length > MAX_ITEMS) return false;\n\tconst result: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const item of value) {\n\t\tif (typeof item !== \"string\") return false;\n\t\tconst normalized = bounded(item, MAX_ITEM_BYTES);\n\t\tif (!normalized || seen.has(normalized)) continue;\n\t\tseen.add(normalized);\n\t\tresult.push(normalized);\n\t}\n\treturn result;\n}\n\nfunction normalizeAuthorityRequirement(\n\tvalue: unknown,\n): (typeof AUTHORITY_REQUIREMENTS)[number] | undefined | false {\n\tif (value === undefined) return undefined;\n\tif (\n\t\ttypeof value !== \"string\" ||\n\t\t!AUTHORITY_REQUIREMENTS.includes(value as (typeof AUTHORITY_REQUIREMENTS)[number])\n\t) {\n\t\treturn false;\n\t}\n\treturn value as (typeof AUTHORITY_REQUIREMENTS)[number];\n}\n\nfunction optionalString(value: unknown, maxBytes: number): string | undefined | false {\n\tif (value === undefined) return undefined;\n\tif (typeof value !== \"string\") return false;\n\tconst normalized = bounded(value, maxBytes);\n\treturn normalized || false;\n}\n\nfunction optionalInteger(value: unknown, max: number): number | undefined | false {\n\tif (value === undefined) return undefined;\n\tif (!Number.isSafeInteger(value) || (value as number) < 1 || (value as number) > max)\n\t\treturn false;\n\treturn value as number;\n}\n\nfunction bounded(value: string, maxBytes: number): string {\n\treturn truncateUtf8(redactPrivateText(value), maxBytes).text.trim();\n}\n\nfunction hasOnlyKeys(value: Record<string, unknown>, allowed: readonly string[]): boolean {\n\treturn Object.keys(value).every((key) => allowed.includes(key));\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n\treturn Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -328,7 +328,7 @@ function stringList(value) {
328
328
  // src/inspect-registration.ts
329
329
  function registerSubagentInspect(pi, runtime, dependencies = {}) {
330
330
  const loadExecution = cachedModuleLoader(
331
- dependencies.loadExecution ?? (() => import("./inspect-XV2QALMR.ts"))
331
+ dependencies.loadExecution ?? (() => import("./inspect-UH2TKH6E.ts"))
332
332
  );
333
333
  let lifecycleGeneration = 0;
334
334
  pi.on("session_start", () => {
@@ -377,4 +377,4 @@ export {
377
377
  SubagentInspectParams,
378
378
  registerSubagentInspect
379
379
  };
380
- //# sourceMappingURL=chunk-ZHTNCZIA.ts.map
380
+ //# sourceMappingURL=chunk-JU6LUNLP.ts.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-RSUXZD6S.ts";
6
6
  import {
7
7
  isThinkingLevel
8
- } from "./chunk-DPPVEQAM.ts";
8
+ } from "./chunk-4AQSF7AS.ts";
9
9
 
10
10
  // src/agents/discovery.ts
11
11
  import * as fs from "node:fs";
@@ -336,4 +336,4 @@ export {
336
336
  BUILT_IN_AGENTS,
337
337
  discoverAgents
338
338
  };
339
- //# sourceMappingURL=chunk-PSK43Y6A.ts.map
339
+ //# sourceMappingURL=chunk-LASD73CM.ts.map
@@ -19,4 +19,4 @@ export {
19
19
  PI_SUBAGENTS_RPC_PROTOCOL,
20
20
  emptyTransportUsage
21
21
  };
22
- //# sourceMappingURL=chunk-C4L6P266.ts.map
22
+ //# sourceMappingURL=chunk-LEOYDZI3.ts.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/transport-types.ts"],
4
- "sourcesContent": ["import type { SubagentThinkingLevel } from \"./agents/types.js\";\n\nexport const PI_SUBAGENTS_RPC_PROTOCOL = \"pi-subagents:v1\" as const;\n\nexport type EffectiveSubagentTransportKind = \"subprocess\" | \"in-process\" | \"rpc\";\n\nexport type TransportProgressPhase =\n\t| \"queued\"\n\t| \"starting\"\n\t| \"ready\"\n\t| \"accepted\"\n\t| \"running\"\n\t| \"finalizing\"\n\t| \"retrying\"\n\t| \"compacting\"\n\t| \"settled\"\n\t| \"failed\"\n\t| \"interrupted\";\n\nexport interface TransportUsage {\n\tinput: number;\n\toutput: number;\n\tcacheRead: number;\n\tcacheWrite: number;\n\ttotalTokens: number;\n\tcost: number;\n\tturns: number;\n}\n\nexport interface TransportTiming {\n\tqueuedAt?: number;\n\tstartedAt?: number;\n\ttransportStartedAt?: number;\n\treadyAt?: number;\n\tpromptAcceptedAt?: number;\n\tfirstActivityAt?: number;\n\tsettledAt?: number;\n\tcompletionDeliveredAt?: number;\n}\n\nexport interface TransportTelemetry {\n\ttransport?: EffectiveSubagentTransportKind;\n\tselectionReason?: string;\n\tprotocol?: typeof PI_SUBAGENTS_RPC_PROTOCOL;\n\tphase: TransportProgressPhase;\n\tqueuePosition?: number;\n\tupdatedAt: number;\n\ttiming: TransportTiming;\n\tprovider?: string;\n\tmodel?: string;\n\tthinkingLevel?: SubagentThinkingLevel;\n\tusage?: TransportUsage;\n\tfailurePhase?: TransportProgressPhase;\n}\n\nexport type TransportProgressCallback = (progress: TransportTelemetry) => void;\n\nexport function emptyTransportUsage(): TransportUsage {\n\treturn {\n\t\tinput: 0,\n\t\toutput: 0,\n\t\tcacheRead: 0,\n\t\tcacheWrite: 0,\n\t\ttotalTokens: 0,\n\t\tcost: 0,\n\t\tturns: 0,\n\t};\n}\n"],
5
- "mappings": ";;;;AAEO,IAAM,4BAA4B;AAuDlC,SAAS,sBAAsC;AACrD,SAAO;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AACD;",
4
+ "sourcesContent": ["import type { SubagentThinkingLevel } from \"./agents/types.js\";\n\nexport const PI_SUBAGENTS_RPC_PROTOCOL = \"pi-subagents:v1\" as const;\n\nexport type EffectiveSubagentTransportKind = \"subprocess\" | \"in-process\" | \"rpc\";\n\nexport type TransportProgressPhase =\n\t| \"queued\"\n\t| \"starting\"\n\t| \"ready\"\n\t| \"accepted\"\n\t| \"running\"\n\t| \"finalizing\"\n\t| \"retrying\"\n\t| \"compacting\"\n\t| \"settled\"\n\t| \"failed\"\n\t| \"interrupted\";\n\nexport interface TransportUsage {\n\tinput: number;\n\toutput: number;\n\tcacheRead: number;\n\tcacheWrite: number;\n\ttotalTokens: number;\n\tcost: number;\n\tturns: number;\n}\n\nexport interface TransportTiming {\n\tqueuedAt?: number;\n\tstartedAt?: number;\n\ttransportStartedAt?: number;\n\treadyAt?: number;\n\tpromptAcceptedAt?: number;\n\tfirstActivityAt?: number;\n\tsettledAt?: number;\n\tcompletionDeliveredAt?: number;\n}\n\nexport interface TransportTelemetry {\n\ttransport?: EffectiveSubagentTransportKind;\n\tselectionReason?: string;\n\tprotocol?: typeof PI_SUBAGENTS_RPC_PROTOCOL;\n\tphase: TransportProgressPhase;\n\tqueuePosition?: number;\n\tupdatedAt: number;\n\ttiming: TransportTiming;\n\tprovider?: string;\n\tmodel?: string;\n\tthinkingLevel?: SubagentThinkingLevel;\n\tusage?: TransportUsage;\n\tbudgetSource?: {\n\t\ttimeout: \"runtime\" | \"explicit\";\n\t\tidleTimeout: \"runtime\" | \"explicit\";\n\t\tturnLimit: \"runtime\" | \"explicit\";\n\t\ttoolCallLimit: \"runtime\" | \"explicit\";\n\t};\n\tfailurePhase?: TransportProgressPhase;\n}\n\nexport type TransportProgressCallback = (progress: TransportTelemetry) => void;\n\nexport function emptyTransportUsage(): TransportUsage {\n\treturn {\n\t\tinput: 0,\n\t\toutput: 0,\n\t\tcacheRead: 0,\n\t\tcacheWrite: 0,\n\t\ttotalTokens: 0,\n\t\tcost: 0,\n\t\tturns: 0,\n\t};\n}\n"],
5
+ "mappings": ";;;;AAEO,IAAM,4BAA4B;AA6DlC,SAAS,sBAAsC;AACrD,SAAO;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AACD;",
6
6
  "names": []
7
7
  }
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  buildTimeoutFinalizationPrompt,
12
12
  resolveTimeoutFinalizationMs
13
- } from "./chunk-G3RSMSXJ.ts";
13
+ } from "./chunk-NTRPLF46.ts";
14
14
  import {
15
15
  TURN_TERMINATION_VERSION,
16
16
  TimeoutProgressJournal,
@@ -26,19 +26,19 @@ import {
26
26
  } from "./chunk-5DGRMKNV.ts";
27
27
  import {
28
28
  discoverAgents
29
- } from "./chunk-PSK43Y6A.ts";
29
+ } from "./chunk-LASD73CM.ts";
30
30
  import {
31
31
  appendResultInstruction
32
32
  } from "./chunk-RSUXZD6S.ts";
33
33
  import {
34
34
  readSubagentSettings
35
- } from "./chunk-QBORTI4W.ts";
35
+ } from "./chunk-TMZRHIIK.ts";
36
36
  import {
37
37
  safeTerminalLine
38
38
  } from "./chunk-SWGQLFSD.ts";
39
39
  import {
40
40
  appendDelegationContract
41
- } from "./chunk-I2FAK44T.ts";
41
+ } from "./chunk-JSZIP73U.ts";
42
42
  import {
43
43
  DEFAULT_MAX_CONTEXT_BYTES,
44
44
  DEFAULT_MAX_OUTPUT_BYTES,
@@ -734,4 +734,4 @@ export {
734
734
  seedChildSessionManager,
735
735
  buildCurrentTurnPrompt
736
736
  };
737
- //# sourceMappingURL=chunk-H3BFJ7HJ.ts.map
737
+ //# sourceMappingURL=chunk-LL4LP2T7.ts.map
@@ -0,0 +1,18 @@
1
+ // @generated by scripts/build-runtime.mjs; do not edit.
2
+ // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
+
4
+ // src/usage-recording-config.ts
5
+ var USAGE_RECORDING_DIRECTORY = "pi-subagents-usage";
6
+ var USAGE_RECORDING_RETENTION_DAYS = 30;
7
+ var USAGE_RECORDING_STUDY_ID = "pi-subagents-surface-v1";
8
+ function resolveUsageRecordingEnabled(settings) {
9
+ return settings?.enabled === true;
10
+ }
11
+
12
+ export {
13
+ USAGE_RECORDING_DIRECTORY,
14
+ USAGE_RECORDING_RETENTION_DAYS,
15
+ USAGE_RECORDING_STUDY_ID,
16
+ resolveUsageRecordingEnabled
17
+ };
18
+ //# sourceMappingURL=chunk-N2T5IN4X.ts.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/usage-recording-config.ts"],
4
+ "sourcesContent": ["export const USAGE_RECORDING_DIRECTORY = \"pi-subagents-usage\";\nexport const USAGE_RECORDING_RETENTION_DAYS = 30;\nexport const USAGE_RECORDING_STUDY_ID = \"pi-subagents-surface-v1\";\n\nexport interface SubagentUsageRecordingSettings {\n\tenabled?: boolean;\n}\n\nexport function resolveUsageRecordingEnabled(\n\tsettings: SubagentUsageRecordingSettings | undefined,\n): boolean {\n\treturn settings?.enabled === true;\n}\n"],
5
+ "mappings": ";;;;AAAO,IAAM,4BAA4B;AAClC,IAAM,iCAAiC;AACvC,IAAM,2BAA2B;AAMjC,SAAS,6BACf,UACU;AACV,SAAO,UAAU,YAAY;AAC9B;",
6
+ "names": []
7
+ }
@@ -60,4 +60,4 @@ export {
60
60
  resolveTimeoutFinalizationMs,
61
61
  buildTimeoutFinalizationPrompt
62
62
  };
63
- //# sourceMappingURL=chunk-G3RSMSXJ.ts.map
63
+ //# sourceMappingURL=chunk-NTRPLF46.ts.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/timeout-finalization.ts"],
4
+ "sourcesContent": ["import { redactPrivateText } from \"./context.js\";\nimport { DEFAULT_MAX_CONTEXT_BYTES, truncateUtf8 } from \"./limits.js\";\nimport { appendResultInstruction, type SubagentResultFormat } from \"./result-contract.js\";\nimport type { RecentActivityItem } from \"./runner-types.js\";\nimport {\n\tformatTimeoutCheckpoint,\n\ttype TimeoutCheckpoint,\n\ttype TurnTerminationReason,\n} from \"./timeout-checkpoint.js\";\n\nexport const DEFAULT_TIMEOUT_FINALIZATION_MS = 45_000;\n\nexport interface TimeoutFinalizationEvidence {\n\ttask: string;\n\tpartialOutput?: string;\n\trecentActivity?: readonly RecentActivityItem[];\n\tcheckpoint?: TimeoutCheckpoint;\n\tterminationReason?: TurnTerminationReason;\n\tresultFormat?: SubagentResultFormat;\n}\n\nexport function resolveTimeoutFinalizationMs(workTimeoutMs: number, override?: number): number {\n\tconst requested = override ?? Math.min(workTimeoutMs, DEFAULT_TIMEOUT_FINALIZATION_MS);\n\tif (!Number.isFinite(requested) || requested < 1) {\n\t\tthrow new Error(\"Timeout finalization deadline must be a positive finite number\");\n\t}\n\treturn Math.min(Math.floor(requested), DEFAULT_TIMEOUT_FINALIZATION_MS);\n}\n\nexport function buildTimeoutFinalizationPrompt(\n\tevidence: TimeoutFinalizationEvidence,\n\tmaxBytes = DEFAULT_MAX_CONTEXT_BYTES,\n): string {\n\tconst activity = (evidence.recentActivity ?? [])\n\t\t.slice(-10)\n\t\t.map((item) =>\n\t\t\titem.type === \"text\"\n\t\t\t\t? `- Assistant note: ${redactPrivateText(item.text)}`\n\t\t\t\t: `- Tool activity: ${redactPrivateText(item.name)}`,\n\t\t)\n\t\t.join(\"\\n\");\n\tconst prompt = [\n\t\tterminationHeading(evidence.terminationReason),\n\t\t\"Do not continue investigating, call tools, modify files, or retry the original task.\",\n\t\t\"Return a concise summary of only verified findings and completed evidence already available.\",\n\t\t\"Explicitly label unfinished or unverified areas.\",\n\t\t`Original task:\\n${redactPrivateText(evidence.task)}`,\n\t\tevidence.partialOutput\n\t\t\t? `Partial assistant output:\\n${redactPrivateText(evidence.partialOutput)}`\n\t\t\t: \"Partial assistant output: (none)\",\n\t\tevidence.checkpoint\n\t\t\t? `Deterministic progress checkpoint:\\n${formatTimeoutCheckpoint(evidence.checkpoint)}`\n\t\t\t: undefined,\n\t\tactivity ? `Recent bounded activity:\\n${activity}` : \"Recent bounded activity: (none)\",\n\t]\n\t\t.filter((value): value is string => Boolean(value))\n\t\t.join(\"\\n\\n\");\n\treturn truncateUtf8(appendResultInstruction(prompt, evidence.resultFormat, maxBytes), maxBytes)\n\t\t.text;\n}\n\nfunction terminationHeading(reason: TurnTerminationReason | undefined): string {\n\tswitch (reason) {\n\t\tcase \"idle_timeout\":\n\t\t\treturn \"The idle deadline expired and the active work was aborted.\";\n\t\tcase \"turn_limit\":\n\t\t\treturn \"The assistant-turn budget was exhausted and the active work was aborted.\";\n\t\tcase \"tool_call_limit\":\n\t\t\treturn \"The tool-call budget was exhausted and the active work was aborted.\";\n\t\tcase \"orchestration_timeout\":\n\t\t\treturn \"The orchestration deadline expired and the active work was aborted.\";\n\t\tdefault:\n\t\t\treturn \"Work deadline expired and the active work was aborted.\";\n\t}\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;AAUO,IAAM,kCAAkC;AAWxC,SAAS,6BAA6B,eAAuB,UAA2B;AAC9F,QAAM,YAAY,YAAY,KAAK,IAAI,eAAe,+BAA+B;AACrF,MAAI,CAAC,OAAO,SAAS,SAAS,KAAK,YAAY,GAAG;AACjD,UAAM,IAAI,MAAM,gEAAgE;AAAA,EACjF;AACA,SAAO,KAAK,IAAI,KAAK,MAAM,SAAS,GAAG,+BAA+B;AACvE;AAEO,SAAS,+BACf,UACA,WAAW,2BACF;AACT,QAAM,YAAY,SAAS,kBAAkB,CAAC,GAC5C,MAAM,GAAG,EACT;AAAA,IAAI,CAAC,SACL,KAAK,SAAS,SACX,qBAAqB,kBAAkB,KAAK,IAAI,CAAC,KACjD,oBAAoB,kBAAkB,KAAK,IAAI,CAAC;AAAA,EACpD,EACC,KAAK,IAAI;AACX,QAAM,SAAS;AAAA,IACd,mBAAmB,SAAS,iBAAiB;AAAA,IAC7C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAmB,kBAAkB,SAAS,IAAI,CAAC;AAAA,IACnD,SAAS,gBACN;AAAA,EAA8B,kBAAkB,SAAS,aAAa,CAAC,KACvE;AAAA,IACH,SAAS,aACN;AAAA,EAAuC,wBAAwB,SAAS,UAAU,CAAC,KACnF;AAAA,IACH,WAAW;AAAA,EAA6B,QAAQ,KAAK;AAAA,EACtD,EACE,OAAO,CAAC,UAA2B,QAAQ,KAAK,CAAC,EACjD,KAAK,MAAM;AACb,SAAO,aAAa,wBAAwB,QAAQ,SAAS,cAAc,QAAQ,GAAG,QAAQ,EAC5F;AACH;AAEA,SAAS,mBAAmB,QAAmD;AAC9E,UAAQ,QAAQ;AAAA,IACf,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR;AACC,aAAO;AAAA,EACT;AACD;",
6
+ "names": []
7
+ }