instar 1.3.485 → 1.3.487

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 (133) hide show
  1. package/dist/commands/reflect.d.ts.map +1 -1
  2. package/dist/commands/reflect.js +4 -0
  3. package/dist/commands/reflect.js.map +1 -1
  4. package/dist/commands/route.d.ts.map +1 -1
  5. package/dist/commands/route.js +3 -0
  6. package/dist/commands/route.js.map +1 -1
  7. package/dist/commands/server.d.ts.map +1 -1
  8. package/dist/commands/server.js +14 -0
  9. package/dist/commands/server.js.map +1 -1
  10. package/dist/core/CircuitBreakingIntelligenceProvider.d.ts +7 -0
  11. package/dist/core/CircuitBreakingIntelligenceProvider.d.ts.map +1 -1
  12. package/dist/core/CircuitBreakingIntelligenceProvider.js +50 -0
  13. package/dist/core/CircuitBreakingIntelligenceProvider.js.map +1 -1
  14. package/dist/core/ClaudeCliIntelligenceProvider.d.ts +5 -0
  15. package/dist/core/ClaudeCliIntelligenceProvider.d.ts.map +1 -1
  16. package/dist/core/ClaudeCliIntelligenceProvider.js +6 -1
  17. package/dist/core/ClaudeCliIntelligenceProvider.js.map +1 -1
  18. package/dist/core/CodexCliIntelligenceProvider.d.ts +58 -0
  19. package/dist/core/CodexCliIntelligenceProvider.d.ts.map +1 -1
  20. package/dist/core/CodexCliIntelligenceProvider.js +293 -27
  21. package/dist/core/CodexCliIntelligenceProvider.js.map +1 -1
  22. package/dist/core/GeminiCliIntelligenceProvider.d.ts +8 -0
  23. package/dist/core/GeminiCliIntelligenceProvider.d.ts.map +1 -1
  24. package/dist/core/GeminiCliIntelligenceProvider.js +8 -0
  25. package/dist/core/GeminiCliIntelligenceProvider.js.map +1 -1
  26. package/dist/core/MessagingToneGate.d.ts +23 -2
  27. package/dist/core/MessagingToneGate.d.ts.map +1 -1
  28. package/dist/core/MessagingToneGate.js +15 -1
  29. package/dist/core/MessagingToneGate.js.map +1 -1
  30. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  31. package/dist/core/PostUpdateMigrator.js +61 -0
  32. package/dist/core/PostUpdateMigrator.js.map +1 -1
  33. package/dist/core/SafeGitExecutor.d.ts.map +1 -1
  34. package/dist/core/SafeGitExecutor.js +79 -1
  35. package/dist/core/SafeGitExecutor.js.map +1 -1
  36. package/dist/core/SessionManager.d.ts.map +1 -1
  37. package/dist/core/SessionManager.js +22 -0
  38. package/dist/core/SessionManager.js.map +1 -1
  39. package/dist/core/TelegramRelay.d.ts +1 -0
  40. package/dist/core/TelegramRelay.d.ts.map +1 -1
  41. package/dist/core/TelegramRelay.js +9 -1
  42. package/dist/core/TelegramRelay.js.map +1 -1
  43. package/dist/core/componentCategories.d.ts.map +1 -1
  44. package/dist/core/componentCategories.js +10 -0
  45. package/dist/core/componentCategories.js.map +1 -1
  46. package/dist/core/intelligenceProviderFactory.d.ts +8 -0
  47. package/dist/core/intelligenceProviderFactory.d.ts.map +1 -1
  48. package/dist/core/intelligenceProviderFactory.js +1 -0
  49. package/dist/core/intelligenceProviderFactory.js.map +1 -1
  50. package/dist/core/raw-file-path.d.ts +33 -0
  51. package/dist/core/raw-file-path.d.ts.map +1 -0
  52. package/dist/core/raw-file-path.js +105 -0
  53. package/dist/core/raw-file-path.js.map +1 -0
  54. package/dist/core/types.d.ts +17 -9
  55. package/dist/core/types.d.ts.map +1 -1
  56. package/dist/core/types.js.map +1 -1
  57. package/dist/messaging/OutboundAdvisory.d.ts +152 -0
  58. package/dist/messaging/OutboundAdvisory.d.ts.map +1 -0
  59. package/dist/messaging/OutboundAdvisory.js +453 -0
  60. package/dist/messaging/OutboundAdvisory.js.map +1 -0
  61. package/dist/messaging/TelegramAdapter.d.ts +6 -0
  62. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  63. package/dist/messaging/TelegramAdapter.js +4 -1
  64. package/dist/messaging/TelegramAdapter.js.map +1 -1
  65. package/dist/messaging/pending-relay-store.d.ts +7 -0
  66. package/dist/messaging/pending-relay-store.d.ts.map +1 -1
  67. package/dist/messaging/pending-relay-store.js +9 -3
  68. package/dist/messaging/pending-relay-store.js.map +1 -1
  69. package/dist/messaging/slack/SlackAdapter.d.ts +3 -0
  70. package/dist/messaging/slack/SlackAdapter.d.ts.map +1 -1
  71. package/dist/messaging/slack/SlackAdapter.js +8 -1
  72. package/dist/messaging/slack/SlackAdapter.js.map +1 -1
  73. package/dist/monitoring/FeatureMetricsLedger.d.ts +123 -1
  74. package/dist/monitoring/FeatureMetricsLedger.d.ts.map +1 -1
  75. package/dist/monitoring/FeatureMetricsLedger.js +211 -25
  76. package/dist/monitoring/FeatureMetricsLedger.js.map +1 -1
  77. package/dist/monitoring/delivery-failure-sentinel.d.ts +6 -1
  78. package/dist/monitoring/delivery-failure-sentinel.d.ts.map +1 -1
  79. package/dist/monitoring/delivery-failure-sentinel.js +15 -3
  80. package/dist/monitoring/delivery-failure-sentinel.js.map +1 -1
  81. package/dist/providers/adapters/anthropic-interactive-pool/index.d.ts.map +1 -1
  82. package/dist/providers/adapters/anthropic-interactive-pool/index.js +1 -0
  83. package/dist/providers/adapters/anthropic-interactive-pool/index.js.map +1 -1
  84. package/dist/providers/adapters/openai-codex/transport/codexSpawn.d.ts +93 -0
  85. package/dist/providers/adapters/openai-codex/transport/codexSpawn.d.ts.map +1 -1
  86. package/dist/providers/adapters/openai-codex/transport/codexSpawn.js +339 -0
  87. package/dist/providers/adapters/openai-codex/transport/codexSpawn.js.map +1 -1
  88. package/dist/providers/adapters/openai-codex/transport/codexUsageParser.d.ts +84 -0
  89. package/dist/providers/adapters/openai-codex/transport/codexUsageParser.d.ts.map +1 -0
  90. package/dist/providers/adapters/openai-codex/transport/codexUsageParser.js +208 -0
  91. package/dist/providers/adapters/openai-codex/transport/codexUsageParser.js.map +1 -0
  92. package/dist/providers/uxConfirm/OverrideDetector.d.ts.map +1 -1
  93. package/dist/providers/uxConfirm/OverrideDetector.js +1 -0
  94. package/dist/providers/uxConfirm/OverrideDetector.js.map +1 -1
  95. package/dist/providers/uxConfirm/TaskClassifier.d.ts.map +1 -1
  96. package/dist/providers/uxConfirm/TaskClassifier.js +1 -0
  97. package/dist/providers/uxConfirm/TaskClassifier.js.map +1 -1
  98. package/dist/scaffold/templates.d.ts.map +1 -1
  99. package/dist/scaffold/templates.js +10 -3
  100. package/dist/scaffold/templates.js.map +1 -1
  101. package/dist/scheduler/JobScheduler.d.ts.map +1 -1
  102. package/dist/scheduler/JobScheduler.js +8 -0
  103. package/dist/scheduler/JobScheduler.js.map +1 -1
  104. package/dist/security/LLMSanitizer.d.ts.map +1 -1
  105. package/dist/security/LLMSanitizer.js +7 -1
  106. package/dist/security/LLMSanitizer.js.map +1 -1
  107. package/dist/server/AgentServer.d.ts +1 -0
  108. package/dist/server/AgentServer.d.ts.map +1 -1
  109. package/dist/server/AgentServer.js +22 -0
  110. package/dist/server/AgentServer.js.map +1 -1
  111. package/dist/server/CapabilityIndex.js +1 -1
  112. package/dist/server/CapabilityIndex.js.map +1 -1
  113. package/dist/server/routes.d.ts +12 -0
  114. package/dist/server/routes.d.ts.map +1 -1
  115. package/dist/server/routes.js +226 -4
  116. package/dist/server/routes.js.map +1 -1
  117. package/dist/threadline/PipeSessionSpawner.d.ts.map +1 -1
  118. package/dist/threadline/PipeSessionSpawner.js +2 -0
  119. package/dist/threadline/PipeSessionSpawner.js.map +1 -1
  120. package/dist/threadline/WarrantsReplyGate.d.ts.map +1 -1
  121. package/dist/threadline/WarrantsReplyGate.js +5 -1
  122. package/dist/threadline/WarrantsReplyGate.js.map +1 -1
  123. package/package.json +4 -2
  124. package/scripts/lint-llm-attribution.js +418 -0
  125. package/scripts/lint-no-direct-destructive.js +4 -0
  126. package/scripts/pre-push-gate.js +24 -0
  127. package/src/data/builtin-manifest.json +67 -67
  128. package/src/scaffold/templates.ts +10 -3
  129. package/src/templates/scripts/telegram-reply.sh +202 -10
  130. package/upgrades/1.3.486.md +38 -0
  131. package/upgrades/1.3.487.md +39 -0
  132. package/upgrades/side-effects/outbound-advisory-inform-only.md +252 -0
  133. package/upgrades/side-effects/token-audit-completeness.md +84 -0
@@ -1 +1 @@
1
- {"version":3,"file":"componentCategories.js","sourceRoot":"","sources":["../../src/core/componentCategories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAqC;IACpE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO;CAChD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,CAAU;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,oBAA0C,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgD;IAC7E,uEAAuE;IACvE,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,UAAU;IACtB,uBAAuB,EAAE,UAAU;IACnC,gBAAgB,EAAE,UAAU;IAC5B,kBAAkB,EAAE,UAAU;IAC9B,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,UAAU;IACzB,eAAe,EAAE,UAAU;IAC3B,mBAAmB,EAAE,UAAU;IAC/B,wBAAwB,EAAE,UAAU;IACpC,mBAAmB,EAAE,UAAU;IAC/B,eAAe,EAAE,UAAU;IAC3B,mBAAmB,EAAE,UAAU;IAE/B,iDAAiD;IACjD,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,MAAM;IACpB,eAAe,EAAE,MAAM;IACvB,qBAAqB,EAAE,MAAM;IAC7B,iBAAiB,EAAE,MAAM;IACzB,mBAAmB,EAAE,MAAM;IAC3B,aAAa,EAAE,MAAM;IACrB,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IAEzB,gEAAgE;IAChE,YAAY,EAAE,WAAW;IACzB,kBAAkB,EAAE,WAAW;IAC/B,iBAAiB,EAAE,WAAW;IAC9B,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,WAAW;IAC5B,mBAAmB,EAAE,WAAW;IAChC,mBAAmB,EAAE,WAAW;IAChC,4BAA4B,EAAE,WAAW;IACzC,kBAAkB,EAAE,WAAW;IAE/B,8BAA8B;IAC9B,kBAAkB,EAAE,KAAK;IACzB,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,+EAA+E;IAC/E,iBAAiB,EAAE,KAAK;IACxB,8EAA8E;IAC9E,gFAAgF;IAChF,gFAAgF;IAChF,sEAAsE;IACtE,4EAA4E;IAC5E,2BAA2B,EAAE,KAAK;CACnC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA6B;IAChE,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;AAC7C,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"componentCategories.js","sourceRoot":"","sources":["../../src/core/componentCategories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAqC;IACpE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO;CAChD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,CAAU;IAC5C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,oBAA0C,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgD;IAC7E,uEAAuE;IACvE,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,UAAU;IACtB,uBAAuB,EAAE,UAAU;IACnC,gBAAgB,EAAE,UAAU;IAC5B,kBAAkB,EAAE,UAAU;IAC9B,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,UAAU;IACzB,eAAe,EAAE,UAAU;IAC3B,mBAAmB,EAAE,UAAU;IAC/B,wBAAwB,EAAE,UAAU;IACpC,mBAAmB,EAAE,UAAU;IAC/B,eAAe,EAAE,UAAU;IAC3B,mBAAmB,EAAE,UAAU;IAC/B,wEAAwE;IACxE,iDAAiD;IACjD,0BAA0B,EAAE,UAAU;IACtC,iEAAiE;IACjE,YAAY,EAAE,UAAU;IAExB,iDAAiD;IACjD,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,MAAM;IACpB,eAAe,EAAE,MAAM;IACvB,qBAAqB,EAAE,MAAM;IAC7B,iBAAiB,EAAE,MAAM;IACzB,mBAAmB,EAAE,MAAM;IAC3B,aAAa,EAAE,MAAM;IACrB,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,MAAM;IACzB,2EAA2E;IAC3E,YAAY,EAAE,MAAM;IACpB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,MAAM;IAEtB,gEAAgE;IAChE,YAAY,EAAE,WAAW;IACzB,kBAAkB,EAAE,WAAW;IAC/B,iBAAiB,EAAE,WAAW;IAC9B,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,WAAW;IAC5B,mBAAmB,EAAE,WAAW;IAChC,mBAAmB,EAAE,WAAW;IAChC,4BAA4B,EAAE,WAAW;IACzC,kBAAkB,EAAE,WAAW;IAE/B,8BAA8B;IAC9B,kBAAkB,EAAE,KAAK;IACzB,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,+EAA+E;IAC/E,iBAAiB,EAAE,KAAK;IACxB,8EAA8E;IAC9E,gFAAgF;IAChF,gFAAgF;IAChF,sEAAsE;IACtE,4EAA4E;IAC5E,2BAA2B,EAAE,KAAK;CACnC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA6B;IAChE,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC;AAC7C,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC"}
@@ -91,6 +91,14 @@ export interface BuildIntelligenceProviderOptions {
91
91
  * Even when true, allowed calls are audit-logged with a cost warning.
92
92
  */
93
93
  piAllowAnthropicProviders?: boolean;
94
+ /**
95
+ * codex-cli only (token-audit-completeness): per-call kill-switch read for
96
+ * exec-json mode. Construction sites with config thread
97
+ * `createCodexExecJsonConfigResolver()`; absent, the provider falls back to
98
+ * env `INSTAR_CODEX_EXEC_JSON !== '0'` so config-less sites keep a working
99
+ * rollback lever.
100
+ */
101
+ resolveExecJson?: () => boolean;
94
102
  }
95
103
  /**
96
104
  * Build an IntelligenceProvider for the given framework. Returns null
@@ -1 +1 @@
1
- {"version":3,"file":"intelligenceProviderFactory.d.ts","sourceRoot":"","sources":["../../src/core/intelligenceProviderFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AAE1G;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE1F,MAAM,WAAW,gCAAgC;IAC/C;;;;OAIG;IACH,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,oBAAoB,CAAC;QAC3B,4EAA4E;QAC5E,WAAW,EAAE,eAAe,CAAC;QAC7B,gEAAgE;QAChE,aAAa,EAAE,MAAM,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;QAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;QAChD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACrD,CAAC;IACF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,gCAAqC,GAC7C,oBAAoB,GAAG,IAAI,CAyG7B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,qBAAqB,GAAG,IAAI,CAOnG"}
1
+ {"version":3,"file":"intelligenceProviderFactory.d.ts","sourceRoot":"","sources":["../../src/core/intelligenceProviderFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AAE1G;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE1F,MAAM,WAAW,gCAAgC;IAC/C;;;;OAIG;IACH,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,oBAAoB,CAAC;QAC3B,4EAA4E;QAC5E,WAAW,EAAE,eAAe,CAAC;QAC7B,gEAAgE;QAChE,aAAa,EAAE,MAAM,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;QAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;QAChD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;KACrD,CAAC;IACF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,gCAAqC,GAC7C,oBAAoB,GAAG,IAAI,CA0G7B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,qBAAqB,GAAG,IAAI,CAOnG"}
@@ -74,6 +74,7 @@ export function buildIntelligenceProvider(options = {}) {
74
74
  return wrapIntelligenceWithCircuitBreaker(new CodexCliIntelligenceProvider({
75
75
  codexPath: path,
76
76
  ...(options.workingDirectory ? { workingDirectory: options.workingDirectory } : {}),
77
+ ...(options.resolveExecJson ? { resolveExecJson: options.resolveExecJson } : {}),
77
78
  }), options.breaker);
78
79
  }
79
80
  case 'gemini-cli': {
@@ -1 +1 @@
1
- {"version":3,"file":"intelligenceProviderFactory.js","sourceRoot":"","sources":["../../src/core/intelligenceProviderFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intelligenceProviderFactory.js","sourceRoot":"","sources":["../../src/core/intelligenceProviderFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * raw-file-path — deterministic detector for literal filesystem paths in
3
+ * user-facing messages.
4
+ *
5
+ * Sibling of `localhost-link.ts`, held to the same linear-regex discipline —
6
+ * but unlike the localhost guard this is a pure SIGNAL, never a block
7
+ * (spec: docs/specs/outbound-jargon-filepath-gap.md §2.3). A literal repo
8
+ * path shown to a user ("/Users/justin/...", ".instar/config.json",
9
+ * "src/core/Foo.ts") is something the user usually can't act on; the
10
+ * existing B2_FILE_PATH judgment belongs to the LLM authority, and on
11
+ * automated sends the preflight advisory informs the SENDER. This detector
12
+ * only surfaces the observation.
13
+ *
14
+ * Hard requirements (r2 convergence):
15
+ * - ReDoS-safe: linear, non-backtracking patterns; bounded segment count
16
+ * and length; an indexOf prescreen so the regex only runs when a path is
17
+ * plausibly present.
18
+ * - Never matches inside an `http(s)://` URL — URLs containing paths are
19
+ * the legitimate form to preserve.
20
+ * - Bounded match echo: the returned match is the regex token (whose char
21
+ * class already stops at whitespace/quote/`?`/`#`/`)`), truncated to
22
+ * 120 chars, so a secret adjacent to a path can never ride into
23
+ * logs/advisories/transcripts.
24
+ * - Callers wrap every call fail-OPEN: a throw skips the signal, never
25
+ * withholds a message and never 500s a route.
26
+ */
27
+ export interface RawFilePathResult {
28
+ detected: boolean;
29
+ /** First offending path, bounded to 120 chars — safe to echo in advisories/audits. */
30
+ match?: string;
31
+ }
32
+ export declare function detectRawFilePath(text: string): RawFilePathResult;
33
+ //# sourceMappingURL=raw-file-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-file-path.d.ts","sourceRoot":"","sources":["../../src/core/raw-file-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAmCH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA2BD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAsBjE"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * raw-file-path — deterministic detector for literal filesystem paths in
3
+ * user-facing messages.
4
+ *
5
+ * Sibling of `localhost-link.ts`, held to the same linear-regex discipline —
6
+ * but unlike the localhost guard this is a pure SIGNAL, never a block
7
+ * (spec: docs/specs/outbound-jargon-filepath-gap.md §2.3). A literal repo
8
+ * path shown to a user ("/Users/justin/...", ".instar/config.json",
9
+ * "src/core/Foo.ts") is something the user usually can't act on; the
10
+ * existing B2_FILE_PATH judgment belongs to the LLM authority, and on
11
+ * automated sends the preflight advisory informs the SENDER. This detector
12
+ * only surfaces the observation.
13
+ *
14
+ * Hard requirements (r2 convergence):
15
+ * - ReDoS-safe: linear, non-backtracking patterns; bounded segment count
16
+ * and length; an indexOf prescreen so the regex only runs when a path is
17
+ * plausibly present.
18
+ * - Never matches inside an `http(s)://` URL — URLs containing paths are
19
+ * the legitimate form to preserve.
20
+ * - Bounded match echo: the returned match is the regex token (whose char
21
+ * class already stops at whitespace/quote/`?`/`#`/`)`), truncated to
22
+ * 120 chars, so a secret adjacent to a path can never ride into
23
+ * logs/advisories/transcripts.
24
+ * - Callers wrap every call fail-OPEN: a throw skips the signal, never
25
+ * withholds a message and never 500s a route.
26
+ */
27
+ /** Truncation cap for the echoed match (privacy bound on adjacent content). */
28
+ const MATCH_ECHO_MAX = 120;
29
+ /** Defensive input cap — callers already cap analyzed text (64KB at the
30
+ * preflight route); this keeps the detector itself bounded regardless. */
31
+ const INPUT_MAX = 64 * 1024;
32
+ /**
33
+ * Path-segment char class: stops at whitespace, quotes, `?`, `#`, `)`,
34
+ * backticks and other prose punctuation by construction. Bounded segment
35
+ * length (1–64) and bounded segment count keep the scan linear.
36
+ *
37
+ * Three alternatives, all anchored on a real separator so prose like
38
+ * "and/or" or "TCP/IP" cannot match:
39
+ * A) absolute or home paths with at least two segments: /Users/justin/x, ~/.config/foo
40
+ * B) dot-directory relative paths: .instar/config.json, .claude/hooks/x
41
+ * C) repo-relative paths under well-known dirs: src/core/Foo.ts, logs/server.log
42
+ */
43
+ const SEG = '[A-Za-z0-9._-]{1,64}';
44
+ const RAW_FILE_PATH_RE = new RegExp(
45
+ // A: "/seg/seg..." or "~/seg/seg..." (>= 2 segments so "/tmp" alone or a
46
+ // lone slash in prose stays legal)
47
+ `(?:(?:~)?/${SEG}(?:/${SEG}){1,12}` +
48
+ // B: ".instar/...", ".claude/...", ".github/...", ".husky/..." (single
49
+ // segment after the dot-dir is enough — ".instar/config.json")
50
+ `|\\.(?:instar|claude|github|husky|vscode|config)/${SEG}(?:/${SEG}){0,12}` +
51
+ // C: repo-relative under well-known top-level dirs; require the word
52
+ // boundary via a non-path char or string start (handled in code, not
53
+ // lookbehind, to keep the pattern simple and linear)
54
+ `|(?:src|docs|tests|scripts|logs|state|upgrades|dist|node_modules)/${SEG}(?:/${SEG}){0,12})`, 'g');
55
+ /**
56
+ * True when `index` sits inside a scheme-bearing URL token: the
57
+ * whitespace-delimited token containing the match start carries "://"
58
+ * before the match. Linear scan-back, bounded by the token itself.
59
+ */
60
+ function insideUrl(text, index) {
61
+ let start = index;
62
+ while (start > 0 && !/\s/.test(text[start - 1]))
63
+ start--;
64
+ const prefix = text.slice(start, index);
65
+ // `://` fully before the match, OR the match starts at the second slash of
66
+ // a scheme separator (prefix ends with `:/` — e.g. match begins at
67
+ // "/example.com/…" inside "https://example.com/…").
68
+ return prefix.includes('://') || /:\/$/.test(prefix);
69
+ }
70
+ /**
71
+ * For alternative C (bare repo-relative prefixes like "src/"), require a
72
+ * word boundary on the left so "missrc/foo" or "RandomLogs/x" can't match.
73
+ * Alternatives A/B self-anchor on '/', '~' or '.'.
74
+ */
75
+ function hasWordBoundaryLeft(text, index) {
76
+ if (index === 0)
77
+ return true;
78
+ return !/[A-Za-z0-9._\-/]/.test(text[index - 1]);
79
+ }
80
+ export function detectRawFilePath(text) {
81
+ if (typeof text !== 'string' || text.length === 0)
82
+ return { detected: false };
83
+ const input = text.length > INPUT_MAX ? text.slice(0, INPUT_MAX) : text;
84
+ // indexOf prescreen — the regex only runs when a path separator exists.
85
+ if (!input.includes('/'))
86
+ return { detected: false };
87
+ RAW_FILE_PATH_RE.lastIndex = 0;
88
+ let m;
89
+ while ((m = RAW_FILE_PATH_RE.exec(input)) !== null) {
90
+ const token = m[0];
91
+ const at = m.index;
92
+ // Never flag a path that lives inside an http(s):// URL.
93
+ if (insideUrl(input, at))
94
+ continue;
95
+ // Bare repo-relative alternative needs a real word boundary.
96
+ const firstChar = token[0];
97
+ if (firstChar !== '/' && firstChar !== '~' && firstChar !== '.') {
98
+ if (!hasWordBoundaryLeft(input, at))
99
+ continue;
100
+ }
101
+ return { detected: true, match: token.slice(0, MATCH_ECHO_MAX) };
102
+ }
103
+ return { detected: false };
104
+ }
105
+ //# sourceMappingURL=raw-file-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-file-path.js","sourceRoot":"","sources":["../../src/core/raw-file-path.ts"],"names":[],"mappings":"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"}
@@ -798,27 +798,35 @@ export interface IntelligenceOptions {
798
798
  };
799
799
  /**
800
800
  * Optional token-usage callback (Iris-audit item 1, spec
801
- * iris-audit-session-observability.md). When the underlying provider can
802
- * surface usage e.g. ClaudeCliIntelligenceProvider parsing `claude -p
803
- * --output-format json` it invokes this exactly once per successful call
804
- * with the token counts. ADDITIVE and OPTIONAL: evaluate() still returns
801
+ * iris-audit-session-observability.md; contract widened by
802
+ * token-audit-completeness). When the underlying provider can surface
803
+ * usagee.g. ClaudeCliIntelligenceProvider parsing `claude -p
804
+ * --output-format json`, or CodexCliIntelligenceProvider parsing the
805
+ * `codex exec --json` event stream — it invokes this EXACTLY ONCE PER CALL
806
+ * WHENEVER USAGE WAS PARSED, INCLUDING CALLS THAT SUBSEQUENTLY REJECT
807
+ * (a timeout-killed call's already-burned tokens must still reach the
808
+ * ledger's error row — under-reporting failed-call cost is the inversion
809
+ * of auditability). `cachedTokens` is an informational SUBSET of
810
+ * `inputTokens` (cache-read tokens; fresh cost = inputTokens −
811
+ * cachedTokens). ADDITIVE and OPTIONAL: evaluate() still returns
805
812
  * Promise<string>, so every existing caller is byte-identical. The wrapper
806
813
  * CircuitBreakingIntelligenceProvider sets it to feed per-feature token
807
- * counts into the metrics ledger (/metrics/features), which previously always
808
- * reported 0 because no usage ever reached the tap.
814
+ * counts into the metrics ledger (/metrics/features).
809
815
  */
810
816
  onUsage?: (usage: {
811
817
  inputTokens: number;
812
818
  outputTokens: number;
819
+ cachedTokens?: number;
813
820
  }) => void;
814
821
  /**
815
822
  * Observable Intelligence standard (docs/specs/observable-intelligence.md):
816
823
  * surface the resolved provider/model so the per-feature metrics funnel can
817
824
  * record WHICH provider + model actually ran on this call. Distinct from
818
825
  * onUsage on purpose — onUsage only fires when a provider can parse token
819
- * counts (Claude can; codex/gemini/pi cannot), so tying model to it would
820
- * leave the exact providers we most need to audit unlabeled. Every provider
821
- * invokes onModel once per call regardless of whether it can report tokens.
826
+ * counts (claude, codex in exec-json mode, and pi can; gemini and the
827
+ * interactive pool cannot), so tying model to it would leave the providers
828
+ * we most need to audit unlabeled. Every provider invokes onModel once per
829
+ * call regardless of whether it can report tokens.
822
830
  * ADDITIVE + OPTIONAL: evaluate() still returns Promise<string>; existing
823
831
  * callers are byte-identical. The wrapper CircuitBreakingIntelligenceProvider
824
832
  * sets it to feed model/framework into the metrics ledger.