@pellux/goodvibes-sdk 0.25.10 → 0.25.11

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 (211) hide show
  1. package/dist/_internal/contracts/artifacts/operator-contract.json +178 -6
  2. package/dist/_internal/contracts/generated/foundation-client-types.d.ts +16 -1
  3. package/dist/_internal/contracts/generated/foundation-client-types.d.ts.map +1 -1
  4. package/dist/_internal/contracts/generated/foundation-metadata.d.ts +2 -2
  5. package/dist/_internal/contracts/generated/foundation-metadata.js +2 -2
  6. package/dist/_internal/contracts/generated/operator-contract.d.ts.map +1 -1
  7. package/dist/_internal/contracts/generated/operator-contract.js +178 -6
  8. package/dist/_internal/contracts/generated/operator-method-ids.d.ts +1 -1
  9. package/dist/_internal/contracts/generated/operator-method-ids.d.ts.map +1 -1
  10. package/dist/_internal/contracts/generated/operator-method-ids.js +1 -0
  11. package/dist/_internal/daemon/context.d.ts +1 -0
  12. package/dist/_internal/daemon/context.d.ts.map +1 -1
  13. package/dist/_internal/daemon/integration-route-types.d.ts +1 -0
  14. package/dist/_internal/daemon/integration-route-types.d.ts.map +1 -1
  15. package/dist/_internal/daemon/integration-routes.d.ts +1 -1
  16. package/dist/_internal/daemon/integration-routes.d.ts.map +1 -1
  17. package/dist/_internal/daemon/integration-routes.js +3 -0
  18. package/dist/_internal/daemon/operator.d.ts +1 -1
  19. package/dist/_internal/daemon/operator.d.ts.map +1 -1
  20. package/dist/_internal/daemon/operator.js +2 -0
  21. package/dist/_internal/daemon/runtime-route-types.d.ts +1 -1
  22. package/dist/_internal/daemon/runtime-route-types.d.ts.map +1 -1
  23. package/dist/_internal/platform/adapters/discord/index.d.ts.map +1 -1
  24. package/dist/_internal/platform/adapters/discord/index.js +4 -5
  25. package/dist/_internal/platform/adapters/github/index.d.ts.map +1 -1
  26. package/dist/_internal/platform/adapters/github/index.js +4 -5
  27. package/dist/_internal/platform/adapters/google-chat/index.d.ts.map +1 -1
  28. package/dist/_internal/platform/adapters/google-chat/index.js +7 -5
  29. package/dist/_internal/platform/adapters/helpers.d.ts +2 -1
  30. package/dist/_internal/platform/adapters/helpers.d.ts.map +1 -1
  31. package/dist/_internal/platform/adapters/helpers.js +3 -34
  32. package/dist/_internal/platform/adapters/homeassistant/index.d.ts +3 -0
  33. package/dist/_internal/platform/adapters/homeassistant/index.d.ts.map +1 -0
  34. package/dist/_internal/platform/adapters/homeassistant/index.js +177 -0
  35. package/dist/_internal/platform/adapters/index.d.ts +1 -0
  36. package/dist/_internal/platform/adapters/index.d.ts.map +1 -1
  37. package/dist/_internal/platform/adapters/index.js +1 -0
  38. package/dist/_internal/platform/adapters/mattermost/index.d.ts.map +1 -1
  39. package/dist/_internal/platform/adapters/mattermost/index.js +6 -2
  40. package/dist/_internal/platform/adapters/slack/index.d.ts.map +1 -1
  41. package/dist/_internal/platform/adapters/slack/index.js +4 -5
  42. package/dist/_internal/platform/adapters/telegram/index.d.ts.map +1 -1
  43. package/dist/_internal/platform/adapters/telegram/index.js +7 -5
  44. package/dist/_internal/platform/adapters/types.d.ts +1 -1
  45. package/dist/_internal/platform/adapters/types.d.ts.map +1 -1
  46. package/dist/_internal/platform/adapters/webhook/index.d.ts.map +1 -1
  47. package/dist/_internal/platform/adapters/webhook/index.js +4 -1
  48. package/dist/_internal/platform/automation/types.d.ts +1 -1
  49. package/dist/_internal/platform/automation/types.d.ts.map +1 -1
  50. package/dist/_internal/platform/channels/builtin/accounts.d.ts.map +1 -1
  51. package/dist/_internal/platform/channels/builtin/accounts.js +22 -0
  52. package/dist/_internal/platform/channels/builtin/contracts.d.ts.map +1 -1
  53. package/dist/_internal/platform/channels/builtin/contracts.js +9 -0
  54. package/dist/_internal/platform/channels/builtin/descriptors.d.ts.map +1 -1
  55. package/dist/_internal/platform/channels/builtin/descriptors.js +9 -2
  56. package/dist/_internal/platform/channels/builtin/homeassistant.d.ts +64 -0
  57. package/dist/_internal/platform/channels/builtin/homeassistant.d.ts.map +1 -0
  58. package/dist/_internal/platform/channels/builtin/homeassistant.js +380 -0
  59. package/dist/_internal/platform/channels/builtin/plugins.d.ts.map +1 -1
  60. package/dist/_internal/platform/channels/builtin/plugins.js +2 -1
  61. package/dist/_internal/platform/channels/builtin/presentation.d.ts.map +1 -1
  62. package/dist/_internal/platform/channels/builtin/presentation.js +4 -0
  63. package/dist/_internal/platform/channels/builtin/setup-schema.d.ts.map +1 -1
  64. package/dist/_internal/platform/channels/builtin/setup-schema.js +46 -0
  65. package/dist/_internal/platform/channels/builtin/shared.d.ts +1 -1
  66. package/dist/_internal/platform/channels/builtin/shared.d.ts.map +1 -1
  67. package/dist/_internal/platform/channels/builtin/shared.js +2 -0
  68. package/dist/_internal/platform/channels/builtin/surfaces.d.ts.map +1 -1
  69. package/dist/_internal/platform/channels/builtin/surfaces.js +1 -0
  70. package/dist/_internal/platform/channels/builtin/targets.d.ts.map +1 -1
  71. package/dist/_internal/platform/channels/builtin/targets.js +24 -0
  72. package/dist/_internal/platform/channels/builtin-runtime.d.ts.map +1 -1
  73. package/dist/_internal/platform/channels/builtin-runtime.js +6 -0
  74. package/dist/_internal/platform/channels/delivery/strategies-core.d.ts +1 -0
  75. package/dist/_internal/platform/channels/delivery/strategies-core.d.ts.map +1 -1
  76. package/dist/_internal/platform/channels/delivery/strategies-core.js +41 -1
  77. package/dist/_internal/platform/channels/delivery-router.d.ts.map +1 -1
  78. package/dist/_internal/platform/channels/delivery-router.js +2 -1
  79. package/dist/_internal/platform/channels/reply-pipeline.d.ts.map +1 -1
  80. package/dist/_internal/platform/channels/reply-pipeline.js +9 -0
  81. package/dist/_internal/platform/channels/route-manager.d.ts.map +1 -1
  82. package/dist/_internal/platform/channels/route-manager.js +1 -0
  83. package/dist/_internal/platform/channels/surface-registry.d.ts.map +1 -1
  84. package/dist/_internal/platform/channels/surface-registry.js +4 -0
  85. package/dist/_internal/platform/channels/types.d.ts +1 -1
  86. package/dist/_internal/platform/channels/types.d.ts.map +1 -1
  87. package/dist/_internal/platform/cloudflare/manager.d.ts +1 -1
  88. package/dist/_internal/platform/cloudflare/manager.d.ts.map +1 -1
  89. package/dist/_internal/platform/cloudflare/manager.js +27 -24
  90. package/dist/_internal/platform/cloudflare/types.d.ts +5 -0
  91. package/dist/_internal/platform/cloudflare/types.d.ts.map +1 -1
  92. package/dist/_internal/platform/cloudflare/utils.d.ts.map +1 -1
  93. package/dist/_internal/platform/cloudflare/utils.js +4 -10
  94. package/dist/_internal/platform/companion/companion-chat-manager.d.ts +24 -4
  95. package/dist/_internal/platform/companion/companion-chat-manager.d.ts.map +1 -1
  96. package/dist/_internal/platform/companion/companion-chat-manager.js +128 -78
  97. package/dist/_internal/platform/config/schema-domain-surfaces.d.ts +11 -0
  98. package/dist/_internal/platform/config/schema-domain-surfaces.d.ts.map +1 -1
  99. package/dist/_internal/platform/config/schema-domain-surfaces.js +59 -0
  100. package/dist/_internal/platform/config/schema-types.d.ts +14 -2
  101. package/dist/_internal/platform/config/schema-types.d.ts.map +1 -1
  102. package/dist/_internal/platform/control-plane/gateway-utils.d.ts +37 -0
  103. package/dist/_internal/platform/control-plane/gateway-utils.d.ts.map +1 -0
  104. package/dist/_internal/platform/control-plane/gateway-utils.js +97 -0
  105. package/dist/_internal/platform/control-plane/gateway.d.ts +4 -9
  106. package/dist/_internal/platform/control-plane/gateway.d.ts.map +1 -1
  107. package/dist/_internal/platform/control-plane/gateway.js +26 -61
  108. package/dist/_internal/platform/control-plane/method-catalog-runtime.d.ts.map +1 -1
  109. package/dist/_internal/platform/control-plane/method-catalog-runtime.js +11 -1
  110. package/dist/_internal/platform/control-plane/operator-contract-schemas-admin.d.ts.map +1 -1
  111. package/dist/_internal/platform/control-plane/operator-contract-schemas-admin.js +3 -2
  112. package/dist/_internal/platform/control-plane/operator-contract-schemas-control.d.ts +1 -0
  113. package/dist/_internal/platform/control-plane/operator-contract-schemas-control.d.ts.map +1 -1
  114. package/dist/_internal/platform/control-plane/operator-contract-schemas-control.js +26 -0
  115. package/dist/_internal/platform/control-plane/routes/operator.d.ts +1 -1
  116. package/dist/_internal/platform/control-plane/routes/operator.d.ts.map +1 -1
  117. package/dist/_internal/platform/control-plane/routes/operator.js +2 -0
  118. package/dist/_internal/platform/control-plane/types.d.ts +1 -1
  119. package/dist/_internal/platform/control-plane/types.d.ts.map +1 -1
  120. package/dist/_internal/platform/daemon/control-plane.d.ts.map +1 -1
  121. package/dist/_internal/platform/daemon/control-plane.js +50 -6
  122. package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
  123. package/dist/_internal/platform/daemon/facade-composition.js +30 -2
  124. package/dist/_internal/platform/daemon/facade-types.d.ts +1 -1
  125. package/dist/_internal/platform/daemon/facade-types.d.ts.map +1 -1
  126. package/dist/_internal/platform/daemon/http/router.d.ts +2 -2
  127. package/dist/_internal/platform/daemon/http/router.d.ts.map +1 -1
  128. package/dist/_internal/platform/daemon/http/router.js +7 -16
  129. package/dist/_internal/platform/daemon/http/runtime-route-types.d.ts +1 -1
  130. package/dist/_internal/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
  131. package/dist/_internal/platform/daemon/http-listener.d.ts.map +1 -1
  132. package/dist/_internal/platform/daemon/http-listener.js +4 -8
  133. package/dist/_internal/platform/daemon/surface-actions.d.ts +1 -1
  134. package/dist/_internal/platform/daemon/surface-actions.d.ts.map +1 -1
  135. package/dist/_internal/platform/daemon/surface-delivery.d.ts +1 -1
  136. package/dist/_internal/platform/daemon/surface-delivery.d.ts.map +1 -1
  137. package/dist/_internal/platform/daemon/surface-delivery.js +1 -0
  138. package/dist/_internal/platform/daemon/surface-policy.d.ts +1 -1
  139. package/dist/_internal/platform/daemon/surface-policy.d.ts.map +1 -1
  140. package/dist/_internal/platform/daemon/surface-policy.js +8 -0
  141. package/dist/_internal/platform/daemon/types.d.ts +2 -2
  142. package/dist/_internal/platform/daemon/types.d.ts.map +1 -1
  143. package/dist/_internal/platform/integrations/homeassistant.d.ts +58 -0
  144. package/dist/_internal/platform/integrations/homeassistant.d.ts.map +1 -0
  145. package/dist/_internal/platform/integrations/homeassistant.js +174 -0
  146. package/dist/_internal/platform/integrations/index.d.ts +2 -0
  147. package/dist/_internal/platform/integrations/index.d.ts.map +1 -1
  148. package/dist/_internal/platform/integrations/index.js +1 -0
  149. package/dist/_internal/platform/runtime/events/control-plane.d.ts +1 -1
  150. package/dist/_internal/platform/runtime/events/control-plane.d.ts.map +1 -1
  151. package/dist/_internal/platform/runtime/events/control-plane.js +1 -0
  152. package/dist/_internal/platform/runtime/events/routes.d.ts +1 -1
  153. package/dist/_internal/platform/runtime/events/routes.d.ts.map +1 -1
  154. package/dist/_internal/platform/runtime/events/routes.js +1 -0
  155. package/dist/_internal/platform/runtime/feature-flags/flags.d.ts.map +1 -1
  156. package/dist/_internal/platform/runtime/feature-flags/flags.js +9 -0
  157. package/dist/_internal/platform/runtime/feature-flags/gates.d.ts.map +1 -1
  158. package/dist/_internal/platform/runtime/feature-flags/gates.js +2 -0
  159. package/dist/_internal/platform/runtime/index.d.ts +2 -0
  160. package/dist/_internal/platform/runtime/index.d.ts.map +1 -1
  161. package/dist/_internal/platform/runtime/index.js +1 -0
  162. package/dist/_internal/platform/runtime/integration/helpers.d.ts +4 -0
  163. package/dist/_internal/platform/runtime/integration/helpers.d.ts.map +1 -1
  164. package/dist/_internal/platform/runtime/integration/helpers.js +4 -0
  165. package/dist/_internal/platform/runtime/security-settings.d.ts +19 -0
  166. package/dist/_internal/platform/runtime/security-settings.d.ts.map +1 -0
  167. package/dist/_internal/platform/runtime/security-settings.js +187 -0
  168. package/dist/_internal/platform/runtime/services.d.ts.map +1 -1
  169. package/dist/_internal/platform/runtime/services.js +1 -0
  170. package/dist/_internal/platform/security/user-auth.d.ts +1 -1
  171. package/dist/_internal/platform/security/user-auth.d.ts.map +1 -1
  172. package/dist/_internal/platform/security/user-auth.js +18 -3
  173. package/dist/_internal/platform/tools/edit/core.d.ts.map +1 -1
  174. package/dist/_internal/platform/tools/edit/core.js +4 -47
  175. package/dist/_internal/platform/tools/exec/runtime.d.ts.map +1 -1
  176. package/dist/_internal/platform/tools/exec/runtime.js +7 -1
  177. package/dist/_internal/platform/tools/exec/schema.d.ts +1 -0
  178. package/dist/_internal/platform/tools/exec/schema.d.ts.map +1 -1
  179. package/dist/_internal/platform/tools/exec/schema.js +1 -0
  180. package/dist/_internal/platform/tools/fetch/runtime.d.ts.map +1 -1
  181. package/dist/_internal/platform/tools/fetch/runtime.js +140 -19
  182. package/dist/_internal/platform/tools/fetch/schema.d.ts +1 -0
  183. package/dist/_internal/platform/tools/fetch/schema.d.ts.map +1 -1
  184. package/dist/_internal/platform/tools/fetch/schema.js +1 -0
  185. package/dist/_internal/platform/tools/find/executor.d.ts.map +1 -1
  186. package/dist/_internal/platform/tools/find/executor.js +7 -1
  187. package/dist/_internal/platform/tools/find/schema.d.ts.map +1 -1
  188. package/dist/_internal/platform/tools/find/schema.js +2 -0
  189. package/dist/_internal/platform/tools/read/index.d.ts.map +1 -1
  190. package/dist/_internal/platform/tools/read/index.js +7 -1
  191. package/dist/_internal/platform/tools/read/schema.d.ts +1 -0
  192. package/dist/_internal/platform/tools/read/schema.d.ts.map +1 -1
  193. package/dist/_internal/platform/tools/read/schema.js +1 -0
  194. package/dist/_internal/platform/tools/shared/process-manager.d.ts +2 -0
  195. package/dist/_internal/platform/tools/shared/process-manager.d.ts.map +1 -1
  196. package/dist/_internal/platform/tools/shared/process-manager.js +67 -5
  197. package/dist/_internal/platform/tools/write/index.d.ts.map +1 -1
  198. package/dist/_internal/platform/tools/write/index.js +3 -36
  199. package/dist/_internal/platform/utils/concurrency.d.ts +3 -0
  200. package/dist/_internal/platform/utils/concurrency.d.ts.map +1 -0
  201. package/dist/_internal/platform/utils/concurrency.js +17 -0
  202. package/dist/_internal/platform/utils/logger.d.ts.map +1 -1
  203. package/dist/_internal/platform/utils/logger.js +19 -1
  204. package/dist/_internal/platform/utils/request-body.d.ts +4 -0
  205. package/dist/_internal/platform/utils/request-body.d.ts.map +1 -0
  206. package/dist/_internal/platform/utils/request-body.js +45 -0
  207. package/dist/_internal/platform/version.js +1 -1
  208. package/dist/workers.d.ts +6 -0
  209. package/dist/workers.d.ts.map +1 -1
  210. package/dist/workers.js +55 -3
  211. package/package.json +1 -1
@@ -0,0 +1,187 @@
1
+ import { FEATURE_FLAG_MAP } from './feature-flags/flags.js';
2
+ const SECURITY_FEATURE_SETTINGS = [
3
+ {
4
+ key: 'featureFlags.fetch-sanitization',
5
+ type: 'feature-flag',
6
+ defaultState: FEATURE_FLAG_MAP.get('fetch-sanitization')?.defaultState ?? 'disabled',
7
+ securityRelevant: true,
8
+ summary: 'Controls fetch response sanitization and host trust-tier checks for the fetch tool.',
9
+ insecureWhen: 'When disabled, fetch preserves legacy behavior: responses are returned without SDK sanitization and SSRF-risk hosts are not blocked by this feature gate.',
10
+ enablementEffect: 'When enabled, unknown hosts are sanitized by default, explicitly blocked hosts are denied, and localhost/private/metadata targets are denied before request or redirect follow.',
11
+ enablementRequirements: [
12
+ 'Enable featureFlags.fetch-sanitization in SDK/TUI configuration.',
13
+ 'Add trusted_hosts only for hosts whose raw content is safe to expose to the model.',
14
+ 'Keep sanitize_mode at safe-text or strict unless the target host is explicitly trusted.',
15
+ ],
16
+ compatibilityNotes: [
17
+ 'Requests to localhost, private IPs, link-local metadata endpoints, and encoded private IP forms are blocked when the feature is enabled.',
18
+ 'Redirect chains are validated hop-by-hop when the feature is enabled.',
19
+ ],
20
+ },
21
+ {
22
+ key: 'featureFlags.permissions-policy-engine',
23
+ type: 'feature-flag',
24
+ defaultState: FEATURE_FLAG_MAP.get('permissions-policy-engine')?.defaultState ?? 'disabled',
25
+ securityRelevant: true,
26
+ summary: 'Controls the redesigned layered permission evaluator for tool execution.',
27
+ insecureWhen: 'When disabled, the SDK uses the baseline permission manager and does not enforce layered path/tool policy bundles.',
28
+ enablementEffect: 'When enabled, tool calls can be evaluated against granular runtime policy rules before execution.',
29
+ enablementRequirements: [
30
+ 'Provide or load a valid permission policy.',
31
+ 'Validate policy behavior in prompt/custom modes before using enforce-heavy deployments.',
32
+ ],
33
+ compatibilityNotes: [
34
+ 'Startup-only flag; consumers should set it before constructing runtime services.',
35
+ ],
36
+ },
37
+ {
38
+ key: 'featureFlags.policy-signing',
39
+ type: 'feature-flag',
40
+ defaultState: FEATURE_FLAG_MAP.get('policy-signing')?.defaultState ?? 'disabled',
41
+ securityRelevant: true,
42
+ summary: 'Controls HMAC signature validation for managed permission policy bundles.',
43
+ insecureWhen: 'When disabled, managed policy bundles are not cryptographically verified by this gate.',
44
+ enablementEffect: 'When enabled, managed mode rejects policy bundles with invalid or missing signatures.',
45
+ enablementRequirements: [
46
+ 'Provision the policy signing secret in the runtime environment or secret store.',
47
+ 'Sign policy bundles before loading them in managed mode.',
48
+ ],
49
+ compatibilityNotes: [
50
+ 'Unsigned local development bundles may need a non-managed mode or explicit signing during rollout.',
51
+ ],
52
+ },
53
+ {
54
+ key: 'featureFlags.permissions-simulation',
55
+ type: 'feature-flag',
56
+ defaultState: FEATURE_FLAG_MAP.get('permissions-simulation')?.defaultState ?? 'disabled',
57
+ securityRelevant: true,
58
+ summary: 'Runs the candidate permission evaluator beside the active evaluator without changing enforcement.',
59
+ insecureWhen: 'When disabled, operators do not receive divergence telemetry before moving to stricter permission policy enforcement.',
60
+ enablementEffect: 'When enabled, the SDK records evaluator divergence so clients can validate a stricter permission policy before enforcing it.',
61
+ enablementRequirements: [
62
+ 'Enable alongside permissions-policy-engine during policy rollout.',
63
+ 'Review divergence diagnostics before switching enforcement modes.',
64
+ ],
65
+ compatibilityNotes: [
66
+ 'Simulation should not block tool execution by itself; it is an observability step for permission hardening.',
67
+ ],
68
+ },
69
+ {
70
+ key: 'featureFlags.permission-divergence-dashboard',
71
+ type: 'feature-flag',
72
+ defaultState: FEATURE_FLAG_MAP.get('permission-divergence-dashboard')?.defaultState ?? 'disabled',
73
+ securityRelevant: true,
74
+ summary: 'Surfaces permission evaluator divergence and gates enforce-mode rollout.',
75
+ insecureWhen: 'When disabled, clients may lack a first-class view of permission divergence before enabling stricter enforcement.',
76
+ enablementEffect: 'When enabled, divergence by command class, prefix, and mode is exposed for diagnostics and can block unsafe enforce-mode transitions.',
77
+ enablementRequirements: [
78
+ 'Enable permissions-simulation first so divergence data exists.',
79
+ 'Configure an acceptable divergence threshold for the host surface.',
80
+ ],
81
+ compatibilityNotes: [
82
+ 'This is a rollout-control feature; it may prevent policy promotion until divergence is resolved.',
83
+ ],
84
+ },
85
+ {
86
+ key: 'featureFlags.policy-as-code',
87
+ type: 'feature-flag',
88
+ defaultState: FEATURE_FLAG_MAP.get('policy-as-code')?.defaultState ?? 'disabled',
89
+ securityRelevant: true,
90
+ summary: 'Controls versioned permission policy bundle promotion and rollback.',
91
+ insecureWhen: 'When disabled, permission policy changes are not managed through SDK-level promote/rollback controls.',
92
+ enablementEffect: 'When enabled, policy bundles can be loaded, diffed, simulated, promoted, and rolled back with recorded evidence.',
93
+ enablementRequirements: [
94
+ 'Define a policy bundle source and promotion flow.',
95
+ 'Use permissions-simulation and policy-signing for high-assurance managed deployments.',
96
+ ],
97
+ compatibilityNotes: [
98
+ 'Operational clients need to handle policy promotion failures and rollback states.',
99
+ ],
100
+ },
101
+ {
102
+ key: 'featureFlags.runtime-tools-budget-enforcement',
103
+ type: 'feature-flag',
104
+ defaultState: FEATURE_FLAG_MAP.get('runtime-tools-budget-enforcement')?.defaultState ?? 'disabled',
105
+ securityRelevant: true,
106
+ summary: 'Controls runtime budget enforcement for tool execution pipelines.',
107
+ insecureWhen: 'When disabled, tool phases do not fail closed on SDK-level wall-clock, token, or cost budget breaches.',
108
+ enablementEffect: 'When enabled, tools can be interrupted at phase boundaries when configured budgets are exceeded.',
109
+ enablementRequirements: [
110
+ 'Configure appropriate budget limits for the host surface.',
111
+ 'Ensure callers handle budget-exceeded tool errors as normal failures.',
112
+ ],
113
+ compatibilityNotes: [
114
+ 'Long-running tools or large batch operations may fail earlier once budgets are enforced.',
115
+ ],
116
+ },
117
+ {
118
+ key: 'featureFlags.token-scope-rotation-audit',
119
+ type: 'feature-flag',
120
+ defaultState: FEATURE_FLAG_MAP.get('token-scope-rotation-audit')?.defaultState ?? 'disabled',
121
+ securityRelevant: true,
122
+ summary: 'Audits API tokens for excessive scopes and stale rotation cadence.',
123
+ insecureWhen: 'When disabled, token scope and age findings are advisory only and are not enforced by this gate.',
124
+ enablementEffect: 'When enabled in managed mode, tokens with excess scopes or expired rotation windows can be blocked from use.',
125
+ enablementRequirements: [
126
+ 'Define expected token scopes for the deployed integrations.',
127
+ 'Configure rotation cadence and managed-mode policy before relying on blocking behavior.',
128
+ ],
129
+ compatibilityNotes: [
130
+ 'Tokens that currently work may be blocked if they are over-scoped or overdue for rotation.',
131
+ ],
132
+ },
133
+ {
134
+ key: 'featureFlags.tool-contract-verification',
135
+ type: 'feature-flag',
136
+ defaultState: FEATURE_FLAG_MAP.get('tool-contract-verification')?.defaultState ?? 'enabled',
137
+ securityRelevant: true,
138
+ summary: 'Validates registered tool contracts, timeout behavior, permission class mapping, and output policy compatibility.',
139
+ insecureWhen: 'When disabled, malformed or under-declared tools can register without SDK contract verification.',
140
+ enablementEffect: 'When enabled, invalid tool contracts fail closed with actionable diagnostics before normal execution.',
141
+ enablementRequirements: [
142
+ 'Keep tool definitions accurate, including side effects and permission classes.',
143
+ 'Fix contract diagnostics in custom tool plugins before enabling in strict deployments.',
144
+ ],
145
+ compatibilityNotes: [
146
+ 'This flag defaults to enabled; disabling it is a compatibility escape hatch for legacy/custom tools.',
147
+ ],
148
+ },
149
+ {
150
+ key: 'featureFlags.shell-ast-normalization',
151
+ type: 'feature-flag',
152
+ defaultState: FEATURE_FLAG_MAP.get('shell-ast-normalization')?.defaultState ?? 'disabled',
153
+ securityRelevant: true,
154
+ summary: 'Controls AST-aware shell command normalization for exec permission review.',
155
+ insecureWhen: 'When disabled, exec command review falls back to baseline flat segmentation and may provide less precise command verdicts.',
156
+ enablementEffect: 'When enabled, compound shell commands are decomposed into per-segment verdicts with more specific denial explanations.',
157
+ enablementRequirements: [
158
+ 'Enable the flag where bash-language-server/parser support is available.',
159
+ 'Review compatibility with host command allow/deny policy.',
160
+ ],
161
+ compatibilityNotes: [
162
+ 'Complex shell syntax can receive stricter or more granular verdicts when enabled.',
163
+ ],
164
+ },
165
+ ];
166
+ export function getSecuritySettingsReport(reporter) {
167
+ return SECURITY_FEATURE_SETTINGS.map((setting) => {
168
+ const flagId = setting.key.replace(/^featureFlags\./, '');
169
+ const currentState = reporter?.getState
170
+ ? safeGetState(reporter, flagId, setting.defaultState)
171
+ : reporter?.isEnabled?.(flagId)
172
+ ? 'enabled'
173
+ : setting.defaultState;
174
+ return {
175
+ ...setting,
176
+ currentState,
177
+ };
178
+ });
179
+ }
180
+ function safeGetState(reporter, flagId, fallback) {
181
+ try {
182
+ return reporter.getState?.(flagId) ?? fallback;
183
+ }
184
+ catch {
185
+ return fallback;
186
+ }
187
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/services.ts"],"names":[],"mappings":"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"}
@@ -336,6 +336,7 @@ export function createRuntimeServices(options) {
336
336
  runtimeStore: options.runtimeStore,
337
337
  runtimeBus: options.runtimeBus,
338
338
  configManager,
339
+ featureFlags,
339
340
  getConversationTitle: options.getConversationTitle,
340
341
  automationManager,
341
342
  approvalBroker,
@@ -19,7 +19,7 @@ export interface AuthUserRecord {
19
19
  readonly roles: readonly string[];
20
20
  }
21
21
  export interface AuthSessionRecord {
22
- readonly token: string;
22
+ readonly tokenFingerprint: string;
23
23
  readonly username: string;
24
24
  readonly expiresAt: number;
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-auth.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/security/user-auth.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAUD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACjD;AAgKD,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,MAAM,EAAE,cAAc;IAqBlC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAMjE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAShD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAY5C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAUlD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAW/C,SAAS,IAAI,cAAc,EAAE;IAS7B,YAAY,IAAI,iBAAiB,EAAE;IAOnC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAAc,GAAG,cAAc;IAejG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAarC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAgB5D,OAAO,IAAI,iBAAiB;IAc5B,4BAA4B,IAAI,OAAO;IAMvC,0BAA0B,IAAI,MAAM;IAIpC,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,OAAO;CAIhB"}
1
+ {"version":3,"file":"user-auth.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/security/user-auth.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAUD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACjD;AAoKD,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,MAAM,EAAE,cAAc;IAqBlC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAMjE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAShD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAY5C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAUlD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAWrC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAW/C,SAAS,IAAI,cAAc,EAAE;IAS7B,YAAY,IAAI,iBAAiB,EAAE;IAWnC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAAc,GAAG,cAAc;IAejG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAarC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAgB5D,OAAO,IAAI,iBAAiB;IAc5B,4BAA4B,IAAI,OAAO;IAMvC,0BAA0B,IAAI,MAAM;IAIpC,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,OAAO;CAIhB"}
@@ -1,4 +1,4 @@
1
- import { randomBytes, scryptSync, timingSafeEqual } from 'crypto';
1
+ import { createHash, randomBytes, scryptSync, timingSafeEqual } from 'crypto';
2
2
  import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from 'node:fs';
3
3
  import { dirname, join } from 'node:path';
4
4
  import { logger } from '../utils/logger.js';
@@ -30,6 +30,9 @@ function verifyPassword(password, passwordHash) {
30
30
  return false;
31
31
  return timingSafeEqual(actual, expected);
32
32
  }
33
+ function fingerprintToken(token) {
34
+ return createHash('sha256').update(token).digest('hex').slice(0, 16);
35
+ }
33
36
  function readBootstrapUsers(filePath) {
34
37
  try {
35
38
  if (!existsSync(filePath))
@@ -214,7 +217,15 @@ export class UserAuthManager {
214
217
  return session;
215
218
  }
216
219
  revokeSession(token) {
217
- return this.sessions.delete(token);
220
+ if (this.sessions.delete(token))
221
+ return true;
222
+ for (const sessionToken of this.sessions.keys()) {
223
+ if (fingerprintToken(sessionToken) === token) {
224
+ this.sessions.delete(sessionToken);
225
+ return true;
226
+ }
227
+ }
228
+ return false;
218
229
  }
219
230
  revokeSessionsForUser(username) {
220
231
  let removed = 0;
@@ -237,7 +248,11 @@ export class UserAuthManager {
237
248
  listSessions() {
238
249
  this.pruneExpiredSessions();
239
250
  return [...this.sessions.values()]
240
- .map((session) => ({ ...session }))
251
+ .map((session) => ({
252
+ tokenFingerprint: fingerprintToken(session.token),
253
+ username: session.username,
254
+ expiresAt: session.expiresAt,
255
+ }))
241
256
  .sort((a, b) => a.username.localeCompare(b.username) || a.expiresAt - b.expiresAt);
242
257
  }
243
258
  addUser(username, password, roles = ['admin']) {
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/edit/core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAe,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAoiBxD,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,qBAAqB,CAAC,CAAC;IACnE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;CAC5D;AAaD,wBAAgB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CA4CzF"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/edit/core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAe,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAkfxD,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,qBAAqB,CAAC,CAAC;IACnE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;CAC5D;AAaD,wBAAgB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CA4CzF"}
@@ -11,55 +11,12 @@ import { buildFailedEditResult, classifyEditFailure, computeAstEdit, computeAstP
11
11
  import { executeNotebookEdit } from './notebook.js';
12
12
  import { summarizeError } from '../../utils/error-display.js';
13
13
  import { toRecord } from '../../utils/record-coerce.js';
14
+ import { runValidators as runSharedValidators, formatValidatorFailure, } from '../shared/validators.js';
14
15
  const DIFF_TRUNCATE_THRESHOLD = 5000;
15
16
  const DIFF_PREVIEW_LENGTH = 500;
16
- const VALIDATOR_COMMANDS = {
17
- typecheck: ['npx', 'tsc', '--noEmit'],
18
- lint: ['npx', 'eslint', '--no-error-on-unmatched-pattern'],
19
- test: ['bun', 'test'],
20
- build: ['bun', 'run', 'build'],
21
- };
22
- async function runValidator(name, cwd) {
23
- const cmd = VALIDATOR_COMMANDS[name];
24
- const TIMEOUT_MS = 30_000;
25
- const proc = Bun.spawn(cmd, { cwd, stdout: 'pipe', stderr: 'pipe' });
26
- let timedOut = false;
27
- const timeoutHandle = setTimeout(() => {
28
- timedOut = true;
29
- proc.kill();
30
- }, TIMEOUT_MS);
31
- const [exitCode, stdoutBuf, stderrBuf] = await Promise.all([
32
- proc.exited,
33
- new Response(proc.stdout).text(),
34
- new Response(proc.stderr).text(),
35
- ]);
36
- clearTimeout(timeoutHandle);
37
- if (timedOut) {
38
- return {
39
- validator: name,
40
- passed: false,
41
- stdout: '',
42
- stderr: `Validator '${name}' timed out after ${TIMEOUT_MS}ms`,
43
- exitCode: -1,
44
- };
45
- }
46
- return { validator: name, passed: exitCode === 0, stdout: stdoutBuf, stderr: stderrBuf, exitCode };
47
- }
48
17
  async function runValidators(validators, cwd) {
49
- for (const name of validators) {
50
- const result = await runValidator(name, cwd);
51
- if (!result.passed)
52
- return result;
53
- }
54
- return null;
55
- }
56
- function formatValidatorFailure(result) {
57
- const parts = [`Validator '${result.validator}' failed (exit ${result.exitCode}):`];
58
- if (result.stderr.trim())
59
- parts.push(result.stderr.trim());
60
- if (result.stdout.trim())
61
- parts.push(result.stdout.trim());
62
- return parts.join('\n');
18
+ const failures = await runSharedValidators(validators, cwd);
19
+ return failures[0] ?? null;
63
20
  }
64
21
  function prepareTextEditInput(input, env, transactionMode) {
65
22
  const resolvedPaths = new Map();
@@ -167,7 +124,7 @@ async function buildImportGraphWarning(cwd, writtenPaths) {
167
124
  if (affectedSet.size === 0)
168
125
  return undefined;
169
126
  const affectedList = Array.from(affectedSet);
170
- const proc = Bun.spawn(['/bin/sh', '-c', `npx tsc --noEmit ${affectedList.join(' ')}`], {
127
+ const proc = Bun.spawn(['npx', 'tsc', '--noEmit', ...affectedList], {
171
128
  cwd,
172
129
  stdout: 'pipe',
173
130
  stderr: 'pipe',
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/exec/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAqB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAA+B,iBAAiB,EAAiB,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAyZ/E;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GAC3D,OAAO,CA2CT;AA2ID,wBAAgB,cAAc,CAC5B,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE;IACP,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;CACvC,GACL,IAAI,CAqEN"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/exec/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAqB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAA+B,iBAAiB,EAAiB,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AA4Z/E;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GAC3D,OAAO,CA2CT;AA4ID,wBAAgB,cAAc,CAC5B,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE;IACP,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;CACvC,GACL,IAAI,CAwEN"}
@@ -6,9 +6,12 @@ import { ProcessManager } from '../shared/process-manager.js';
6
6
  import { guardExecCommand, formatDenialResponse } from './ast-guard.js';
7
7
  import { executeFileOperations } from './file-ops.js';
8
8
  import { DEFAULT_ALLOWED_CLASSES } from '../../runtime/permissions/normalization/verdict.js';
9
+ import { mapWithConcurrency } from '../../utils/concurrency.js';
9
10
  const DEFAULT_TIMEOUT_MS = 120_000;
10
11
  const PROGRESS_AUTO_THRESHOLD_MS = 30_000;
11
12
  const OVERFLOW_SUBDIR = ['.goodvibes', '.overflow'];
13
+ const MAX_EXEC_COMMANDS = 10;
14
+ const MAX_PARALLEL_EXEC_COMMANDS = 3;
12
15
  const DANGEROUS_PATTERNS = [
13
16
  /rm\s+-[a-zA-Z]*r[a-zA-Z]*f?\s+[\/~]/,
14
17
  /rm\s+-[a-zA-Z]*f[a-zA-Z]*r?\s+[\/~]/,
@@ -449,7 +452,7 @@ async function executeResolvedCommand(processManager, overflowHandler, featureFl
449
452
  }
450
453
  async function executeResolvedCommands(processManager, overflowHandler, featureFlags, resolvedCmds, parallel, workingDirectory, globalTimeout, failFast) {
451
454
  if (parallel) {
452
- return Promise.all(resolvedCmds.map(({ cmdStr, cmdInput }) => executeResolvedCommand(processManager, overflowHandler, featureFlags, cmdStr, cmdInput, workingDirectory, globalTimeout)));
455
+ return mapWithConcurrency(resolvedCmds, MAX_PARALLEL_EXEC_COMMANDS, ({ cmdStr, cmdInput }) => executeResolvedCommand(processManager, overflowHandler, featureFlags, cmdStr, cmdInput, workingDirectory, globalTimeout));
453
456
  }
454
457
  const results = [];
455
458
  let stopped = false;
@@ -530,6 +533,9 @@ export function createExecTool(processManager, options = {}) {
530
533
  if (!Array.isArray(args['commands']) || args['commands'].length === 0) {
531
534
  return { success: false, error: 'commands must be a non-empty array' };
532
535
  }
536
+ if (args['commands'].length > MAX_EXEC_COMMANDS) {
537
+ return { success: false, error: `Too many commands: maximum ${MAX_EXEC_COMMANDS} per exec call` };
538
+ }
533
539
  const input = args;
534
540
  const workingDirectory = requireWorkingDirectory(input);
535
541
  const verbosity = input.verbosity ?? 'standard';
@@ -121,6 +121,7 @@ export declare const EXEC_TOOL_SCHEMA: {
121
121
  };
122
122
  };
123
123
  readonly minItems: 1;
124
+ readonly maxItems: 10;
124
125
  };
125
126
  readonly parallel: {
126
127
  readonly type: "boolean";
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/exec/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4MnB,CAAC;AAIX,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC,0EAA0E;IAC1E,EAAE,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/exec/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6MnB,CAAC;AAIX,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC,0EAA0E;IAC1E,EAAE,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -119,6 +119,7 @@ export const EXEC_TOOL_SCHEMA = {
119
119
  // cmd or cmd_base64 required — validated at runtime
120
120
  },
121
121
  minItems: 1,
122
+ maxItems: 10,
122
123
  },
123
124
  parallel: {
124
125
  type: 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/fetch/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAsF,MAAM,aAAa,CAAC;AAClI,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAUxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAK/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;CACtE;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAMD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,eAAe,CAAK;IAE5B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAOtE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAiBxC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;CA8DpF;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAE5G;AA+UD,wBAAgB,eAAe,CAC7B,IAAI,GAAE,gBAAqB,EAC3B,OAAO,sBAA4B,GAClC,IAAI,CAiCN"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/tools/fetch/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAkB,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAsF,MAAM,aAAa,CAAC;AAClI,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAUxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAM/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;CACtE;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AASD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,eAAe,CAAK;IAE5B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAOtE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAiBxC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;CAkFpF;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAE5G;AA8dD,wBAAgB,eAAe,CAC7B,IAAI,GAAE,gBAAqB,EAC3B,OAAO,sBAA4B,GAClC,IAAI,CAiCN"}