failproofai 1.0.8-beta.0 → 1.0.8

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 (116) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +4 -4
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  30. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/index.html +1 -1
  33. package/.next/standalone/.next/server/app/index.rsc +14 -14
  34. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
  35. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
  36. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  38. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
  41. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  44. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  47. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  48. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  51. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  54. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +1 -1
  57. package/.next/standalone/.next/server/chunks/_09dz7xv._.js +3 -3
  58. package/.next/standalone/.next/server/chunks/_0tovk6q._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/_0trp3yc._.js +1 -1
  60. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04usis8._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__056wjo4._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n0xg95._.js +2 -2
  64. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rwtwpm._.js +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11mayhe._.js +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13t1zkw._.js +3 -0
  67. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15578wp._.js +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1m_svbe._.js +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pprgri._.js +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1q4p5b8._.js +2 -2
  71. package/.next/standalone/.next/server/chunks/ssr/{_0o4xkpl._.js → _0-vcssj._.js} +1 -1
  72. package/.next/standalone/.next/server/chunks/ssr/_042cgl1._.js +1 -1
  73. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  74. package/.next/standalone/.next/server/chunks/ssr/_0bqoto4._.js +1 -1
  75. package/.next/standalone/.next/server/chunks/ssr/_13kfn90._.js +23 -0
  76. package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
  77. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo.js +2 -2
  78. package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9sni._.js +1 -1
  79. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  80. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  81. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  82. package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h4._.js +1 -1
  83. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_0aiy-os._.js +1 -1
  84. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  85. package/.next/standalone/.next/server/pages/404.html +1 -1
  86. package/.next/standalone/.next/server/pages/500.html +1 -1
  87. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/server-reference-manifest.json +23 -23
  89. package/.next/standalone/.next/static/chunks/{3o3f1ibfci0p7.js → 06dnzbolj00mc.js} +1 -1
  90. package/.next/standalone/.next/static/chunks/{0ahfwmbkpgfw4.js → 0m-9d6yn9hx4j.js} +1 -1
  91. package/.next/standalone/.next/static/chunks/{3bgot5v6f6s3c.js → 0wbjy0zo-m7is.js} +1 -1
  92. package/.next/standalone/.next/static/chunks/16f3fa-lx38hk.js +1 -0
  93. package/.next/standalone/.next/static/chunks/{1v_tp3hm8wyhe.js → 21uv-uusw329x.js} +1 -1
  94. package/.next/standalone/.next/static/chunks/2g2tki08kdhie.js +1 -0
  95. package/.next/standalone/.next/static/chunks/{2vo7qbdbvnc0o.js → 2qdpj67x6ifk_.js} +1 -1
  96. package/.next/standalone/.next/static/chunks/3-nbtkhg9y-1j.js +1 -0
  97. package/.next/standalone/.next/static/chunks/{36uhh9el_oz8e.js → 355km0ihuqo1p.js} +1 -1
  98. package/.next/standalone/.next/static/chunks/{2z7i-yg59w4pn.js → 3c3qbmosdjl6w.js} +1 -1
  99. package/.next/standalone/package.json +5 -5
  100. package/.next/standalone/sdk/typescript/CHANGELOG.md +18 -1
  101. package/.next/standalone/sdk/typescript/integration/fixtures/nextjs/package-lock.json +0 -274
  102. package/.next/standalone/server.js +1 -1
  103. package/dist/cli.mjs +114 -38
  104. package/dist/worker.mjs +109 -33
  105. package/package.json +5 -5
  106. package/src/hooks/semantic/decide.ts +134 -29
  107. package/src/hooks/semantic/facts.ts +91 -2
  108. package/src/hooks/semantic/types.ts +6 -0
  109. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__14o3ek1._.js +0 -3
  110. package/.next/standalone/.next/server/chunks/ssr/_1-7sqrb._.js +0 -23
  111. package/.next/standalone/.next/static/chunks/078gnymqoh3r4.js +0 -1
  112. package/.next/standalone/.next/static/chunks/1bu2-nv59ed6i.js +0 -1
  113. package/.next/standalone/.next/static/chunks/2a405_e1o26ol.js +0 -1
  114. /package/.next/standalone/.next/static/{O_b5R1axf5cb4NxIXq2kS → 5yKM8NoTOpUI0MoQl8eo5}/_buildManifest.js +0 -0
  115. /package/.next/standalone/.next/static/{O_b5R1axf5cb4NxIXq2kS → 5yKM8NoTOpUI0MoQl8eo5}/_clientMiddlewareManifest.js +0 -0
  116. /package/.next/standalone/.next/static/{O_b5R1axf5cb4NxIXq2kS → 5yKM8NoTOpUI0MoQl8eo5}/_ssgManifest.js +0 -0
@@ -1098,263 +1098,6 @@
1098
1098
  }
1099
1099
  }
1100
1100
  },
1101
- "node_modules/@llamaindex/workflow/node_modules/@next/env": {
1102
- "version": "15.5.26",
1103
- "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.26.tgz",
1104
- "integrity": "sha512-NJBz9q10LU9h3KjHLEbdgWIV+ow/x+MYzKBRfqhm9/QmML3tPMhYmXF/UIV9SDVCNtOqFNc5oX7kZqeiigMCEA==",
1105
- "extraneous": true,
1106
- "license": "MIT"
1107
- },
1108
- "node_modules/@llamaindex/workflow/node_modules/@next/swc-darwin-arm64": {
1109
- "version": "15.5.26",
1110
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.26.tgz",
1111
- "integrity": "sha512-So8eoJxIcXw/TexNUvvh3uY72J9nDo5BpJsAwUKx+FK57CrWXg6RqVufV7U9OT3BO+siMzJ2FuAwBhaHoPlLGg==",
1112
- "cpu": [
1113
- "arm64"
1114
- ],
1115
- "extraneous": true,
1116
- "license": "MIT",
1117
- "os": [
1118
- "darwin"
1119
- ],
1120
- "engines": {
1121
- "node": ">= 10"
1122
- }
1123
- },
1124
- "node_modules/@llamaindex/workflow/node_modules/@next/swc-darwin-x64": {
1125
- "version": "15.5.26",
1126
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.26.tgz",
1127
- "integrity": "sha512-jImzLUTClVWKhP91e5sgDumjxCLhaFSt7DuN5cnRYw99Dppxxhhq5jKRyDa2aTv3JE7dQmTSTsY3EFkSOp9Pog==",
1128
- "cpu": [
1129
- "x64"
1130
- ],
1131
- "extraneous": true,
1132
- "license": "MIT",
1133
- "os": [
1134
- "darwin"
1135
- ],
1136
- "engines": {
1137
- "node": ">= 10"
1138
- }
1139
- },
1140
- "node_modules/@llamaindex/workflow/node_modules/@next/swc-linux-arm64-gnu": {
1141
- "version": "15.5.26",
1142
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.26.tgz",
1143
- "integrity": "sha512-CaWd+T/Lud2BmZbrsa1CzCnIOdU3YX9Nuk89virZaSB1O+C+8Yrrevgmnl68u4dvZIfOAzQ77S+Njrq7v1XwSA==",
1144
- "cpu": [
1145
- "arm64"
1146
- ],
1147
- "extraneous": true,
1148
- "libc": [
1149
- "glibc"
1150
- ],
1151
- "license": "MIT",
1152
- "os": [
1153
- "linux"
1154
- ],
1155
- "engines": {
1156
- "node": ">= 10"
1157
- }
1158
- },
1159
- "node_modules/@llamaindex/workflow/node_modules/@next/swc-linux-arm64-musl": {
1160
- "version": "15.5.26",
1161
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.26.tgz",
1162
- "integrity": "sha512-97AyKI34yjpaudlkWHswAf7c1PjWQAC7lLyrw3R5K+bq834EOA+9IG68rIVy0VqrqGjtPSMjJmMmgeJ3wHR5og==",
1163
- "cpu": [
1164
- "arm64"
1165
- ],
1166
- "extraneous": true,
1167
- "libc": [
1168
- "musl"
1169
- ],
1170
- "license": "MIT",
1171
- "os": [
1172
- "linux"
1173
- ],
1174
- "engines": {
1175
- "node": ">= 10"
1176
- }
1177
- },
1178
- "node_modules/@llamaindex/workflow/node_modules/@next/swc-linux-x64-gnu": {
1179
- "version": "15.5.26",
1180
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.26.tgz",
1181
- "integrity": "sha512-eVtuOCew1sBPV7BEgxy7qxuVyqoU3tJIS/xDZwa1/NiQ4Q0LM2JMH7rny+/uVIN6hsQ3PTb0hTQWypA0L2QxtA==",
1182
- "cpu": [
1183
- "x64"
1184
- ],
1185
- "extraneous": true,
1186
- "libc": [
1187
- "glibc"
1188
- ],
1189
- "license": "MIT",
1190
- "os": [
1191
- "linux"
1192
- ],
1193
- "engines": {
1194
- "node": ">= 10"
1195
- }
1196
- },
1197
- "node_modules/@llamaindex/workflow/node_modules/@next/swc-linux-x64-musl": {
1198
- "version": "15.5.26",
1199
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.26.tgz",
1200
- "integrity": "sha512-EiUXADp+Z+OdQnSqbX10YgOSUrs0CXVODoTfySfsP2jdhngn9bq5RJd376FJzqMPe/XX25FMr1aXtYUVPA0qDw==",
1201
- "cpu": [
1202
- "x64"
1203
- ],
1204
- "extraneous": true,
1205
- "libc": [
1206
- "musl"
1207
- ],
1208
- "license": "MIT",
1209
- "os": [
1210
- "linux"
1211
- ],
1212
- "engines": {
1213
- "node": ">= 10"
1214
- }
1215
- },
1216
- "node_modules/@llamaindex/workflow/node_modules/@next/swc-win32-arm64-msvc": {
1217
- "version": "15.5.26",
1218
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.26.tgz",
1219
- "integrity": "sha512-HPl41fgkC4kdM5CCIoqNW6KlKEj1N+xS6bjNFFxDNKooUNUu09frgD948zo95TPw/C3XINZpkdkBGNU2RhjEnw==",
1220
- "cpu": [
1221
- "arm64"
1222
- ],
1223
- "extraneous": true,
1224
- "license": "MIT",
1225
- "os": [
1226
- "win32"
1227
- ],
1228
- "engines": {
1229
- "node": ">= 10"
1230
- }
1231
- },
1232
- "node_modules/@llamaindex/workflow/node_modules/@next/swc-win32-x64-msvc": {
1233
- "version": "15.5.26",
1234
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.26.tgz",
1235
- "integrity": "sha512-TgmJ5ginKr34RPsz01/swpYtFBxh51d66jM26aytpE6NIypU5KtBVI8C2hJjUNpWr7v6sWj8a6+og2MyntcnpA==",
1236
- "cpu": [
1237
- "x64"
1238
- ],
1239
- "extraneous": true,
1240
- "license": "MIT",
1241
- "os": [
1242
- "win32"
1243
- ],
1244
- "engines": {
1245
- "node": ">= 10"
1246
- }
1247
- },
1248
- "node_modules/@llamaindex/workflow/node_modules/@swc/helpers": {
1249
- "version": "0.5.15",
1250
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
1251
- "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
1252
- "extraneous": true,
1253
- "license": "Apache-2.0",
1254
- "dependencies": {
1255
- "tslib": "^2.8.0"
1256
- }
1257
- },
1258
- "node_modules/@llamaindex/workflow/node_modules/next": {
1259
- "version": "15.5.26",
1260
- "resolved": "https://registry.npmjs.org/next/-/next-15.5.26.tgz",
1261
- "integrity": "sha512-EVCqhvq8Hs+nX9udH2VzE/iXAg9QodZBZnwVJTuAMl386GIYvlJtYhFytV9nSlDYxKw3kEyv8I2dCQs0+on0sQ==",
1262
- "extraneous": true,
1263
- "license": "MIT",
1264
- "dependencies": {
1265
- "@next/env": "15.5.26",
1266
- "@swc/helpers": "0.5.15",
1267
- "caniuse-lite": "^1.0.30001579",
1268
- "postcss": "8.4.31",
1269
- "styled-jsx": "5.1.6"
1270
- },
1271
- "bin": {
1272
- "next": "dist/bin/next"
1273
- },
1274
- "engines": {
1275
- "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
1276
- },
1277
- "optionalDependencies": {
1278
- "@next/swc-darwin-arm64": "15.5.26",
1279
- "@next/swc-darwin-x64": "15.5.26",
1280
- "@next/swc-linux-arm64-gnu": "15.5.26",
1281
- "@next/swc-linux-arm64-musl": "15.5.26",
1282
- "@next/swc-linux-x64-gnu": "15.5.26",
1283
- "@next/swc-linux-x64-musl": "15.5.26",
1284
- "@next/swc-win32-arm64-msvc": "15.5.26",
1285
- "@next/swc-win32-x64-msvc": "15.5.26",
1286
- "sharp": "^0.34.3 || ^0.35.4"
1287
- },
1288
- "peerDependencies": {
1289
- "@opentelemetry/api": "^1.1.0",
1290
- "@playwright/test": "^1.51.1",
1291
- "babel-plugin-react-compiler": "*",
1292
- "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
1293
- "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
1294
- "sass": "^1.3.0"
1295
- },
1296
- "peerDependenciesMeta": {
1297
- "@opentelemetry/api": {
1298
- "optional": true
1299
- },
1300
- "@playwright/test": {
1301
- "optional": true
1302
- },
1303
- "babel-plugin-react-compiler": {
1304
- "optional": true
1305
- },
1306
- "sass": {
1307
- "optional": true
1308
- }
1309
- }
1310
- },
1311
- "node_modules/@llamaindex/workflow/node_modules/p-retry": {
1312
- "version": "6.2.1",
1313
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz",
1314
- "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==",
1315
- "extraneous": true,
1316
- "license": "MIT",
1317
- "dependencies": {
1318
- "@types/retry": "0.12.2",
1319
- "is-network-error": "^1.0.0",
1320
- "retry": "^0.13.1"
1321
- },
1322
- "engines": {
1323
- "node": ">=16.17"
1324
- },
1325
- "funding": {
1326
- "url": "https://github.com/sponsors/sindresorhus"
1327
- }
1328
- },
1329
- "node_modules/@llamaindex/workflow/node_modules/postcss": {
1330
- "version": "8.4.31",
1331
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
1332
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
1333
- "extraneous": true,
1334
- "funding": [
1335
- {
1336
- "type": "opencollective",
1337
- "url": "https://opencollective.com/postcss/"
1338
- },
1339
- {
1340
- "type": "tidelift",
1341
- "url": "https://tidelift.com/funding/github/npm/postcss"
1342
- },
1343
- {
1344
- "type": "github",
1345
- "url": "https://github.com/sponsors/ai"
1346
- }
1347
- ],
1348
- "license": "MIT",
1349
- "dependencies": {
1350
- "nanoid": "^3.3.6",
1351
- "picocolors": "^1.0.0",
1352
- "source-map-js": "^1.0.2"
1353
- },
1354
- "engines": {
1355
- "node": "^10 || ^12 || >=14"
1356
- }
1357
- },
1358
1101
  "node_modules/@lukeed/csprng": {
1359
1102
  "version": "1.1.0",
1360
1103
  "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz",
@@ -1795,13 +1538,6 @@
1795
1538
  "csstype": "^3.2.2"
1796
1539
  }
1797
1540
  },
1798
- "node_modules/@types/retry": {
1799
- "version": "0.12.2",
1800
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz",
1801
- "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==",
1802
- "extraneous": true,
1803
- "license": "MIT"
1804
- },
1805
1541
  "node_modules/@types/unist": {
1806
1542
  "version": "3.0.3",
1807
1543
  "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
@@ -3859,16 +3595,6 @@
3859
3595
  "integrity": "sha512-N3DiY5qbRPoa5vkxn1oDLMyXOVTeo6Hp+XOj6SIqJAYUgLS0Q587gILPMom/qm86AQ/ZrcOdwEIzCz8V3J0nxQ==",
3860
3596
  "license": "Apache-2.0"
3861
3597
  },
3862
- "node_modules/retry": {
3863
- "version": "0.13.1",
3864
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
3865
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
3866
- "extraneous": true,
3867
- "license": "MIT",
3868
- "engines": {
3869
- "node": ">= 4"
3870
- }
3871
- },
3872
3598
  "node_modules/reusify": {
3873
3599
  "version": "1.1.0",
3874
3600
  "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"1.0.8-beta.0"},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"instrumentationClientInject":[],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/failproofai/failproofai","enablePrerenderSourceMaps":true,"cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":true,"coldCacheBadge":false,"devValidationWorker":true,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"dynamicOnHover":false,"useOffline":false,"varyParams":true,"optimisticRouting":true,"instrumentationClientRouterTransitionEvents":false,"prefetchInlining":{"maxSize":2048,"maxBundleSize":10240},"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptOperationCache":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"devMemoryThresholdRestart":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"requestInsights":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"useTypeScriptCli":true,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":true,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"serverComponentsHmrCancellation":false,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":true,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","turbopackMemoryEvictionMode":"auto","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"useCacheTimeout":54,"instantInsights":{"validationLevel":"warning"},"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["node_modules/@img/**","node_modules/sharp/**"]},"turbopack":{"root":"/home/runner/work/failproofai/failproofai"},"repoRoot":"/home/runner/work/failproofai/failproofai","distDirRoot":".next"}
12
+ const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"1.0.8"},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"instrumentationClientInject":[],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/failproofai/failproofai","enablePrerenderSourceMaps":true,"cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":true,"coldCacheBadge":false,"devValidationWorker":true,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"dynamicOnHover":false,"useOffline":false,"varyParams":true,"optimisticRouting":true,"instrumentationClientRouterTransitionEvents":false,"prefetchInlining":{"maxSize":2048,"maxBundleSize":10240},"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptOperationCache":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"devMemoryThresholdRestart":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"requestInsights":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"useTypeScriptCli":true,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":true,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"serverComponentsHmrCancellation":false,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":true,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","turbopackMemoryEvictionMode":"auto","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"useCacheTimeout":54,"instantInsights":{"validationLevel":"warning"},"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","outputFileTracingExcludes":{"*":["node_modules/@img/**","node_modules/sharp/**"]},"turbopack":{"root":"/home/runner/work/failproofai/failproofai"},"repoRoot":"/home/runner/work/failproofai/failproofai","distDirRoot":".next"}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
package/dist/cli.mjs CHANGED
@@ -29,7 +29,7 @@ var __esm = (fn, res, err) => () => {
29
29
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
30
30
 
31
31
  // package.json
32
- var version2 = "1.0.8-beta.0", package_default;
32
+ var version2 = "1.0.8", package_default;
33
33
  var init_package = __esm(() => {
34
34
  package_default = {
35
35
  name: "failproofai",
@@ -155,10 +155,10 @@ var init_package = __esm(() => {
155
155
  browserslist: "4.28.8"
156
156
  },
157
157
  optionalDependencies: {
158
- "@failproofai/failproofaid-linux-x64": "1.0.8-beta.0",
159
- "@failproofai/failproofaid-linux-arm64": "1.0.8-beta.0",
160
- "@failproofai/failproofaid-darwin-x64": "1.0.8-beta.0",
161
- "@failproofai/failproofaid-darwin-arm64": "1.0.8-beta.0"
158
+ "@failproofai/failproofaid-linux-x64": "1.0.8",
159
+ "@failproofai/failproofaid-linux-arm64": "1.0.8",
160
+ "@failproofai/failproofaid-darwin-x64": "1.0.8",
161
+ "@failproofai/failproofaid-darwin-arm64": "1.0.8"
162
162
  },
163
163
  failproofaidBinaries: {
164
164
  "linux-x64": "35b641f60e1724513fbb760db382123dad2b5fcdd67dda6373bda80651bd36bb",
@@ -27570,6 +27570,19 @@ function classifyTool(toolName) {
27570
27570
  return { toolClass: "other", toolIsKnown: true };
27571
27571
  return { toolClass: "other", toolIsKnown: false };
27572
27572
  }
27573
+ function runsNestedShell(tokens) {
27574
+ let shellSeen = false;
27575
+ for (const tok of tokens) {
27576
+ if (shellSeen && /^-[a-z]*c[a-z]*$/i.test(tok))
27577
+ return true;
27578
+ const base = tok.slice(tok.lastIndexOf("/") + 1);
27579
+ if (base === "eval")
27580
+ return true;
27581
+ if (NESTED_SHELLS.has(base))
27582
+ shellSeen = true;
27583
+ }
27584
+ return false;
27585
+ }
27573
27586
  function scanCommand(command) {
27574
27587
  const text = command.length > MAX_SCAN_CHARS ? command.slice(0, MAX_SCAN_CHARS) : command;
27575
27588
  const segments = [];
@@ -27580,22 +27593,36 @@ function scanCommand(command) {
27580
27593
  let out = "";
27581
27594
  let commentsRemoved = false;
27582
27595
  const comments = [];
27596
+ let complete = command.length <= MAX_SCAN_CHARS;
27597
+ let braceDepth = 0;
27598
+ let braceSep = false;
27599
+ let bracketOpen = false;
27583
27600
  const endWord = () => {
27584
27601
  if (inWord)
27585
27602
  tokens.push(word);
27586
27603
  word = "";
27587
27604
  inWord = false;
27605
+ braceDepth = 0;
27606
+ braceSep = false;
27607
+ bracketOpen = false;
27588
27608
  };
27589
27609
  const endSegment = () => {
27590
27610
  endWord();
27591
- if (tokens.length > 0)
27611
+ if (tokens.length > 0) {
27612
+ if (complete && runsNestedShell(tokens))
27613
+ complete = false;
27592
27614
  segments.push(tokens);
27615
+ }
27593
27616
  tokens = [];
27594
27617
  };
27595
27618
  for (let i = 0;i < text.length; i++) {
27596
27619
  const c = text[i];
27597
27620
  if (quote) {
27598
27621
  out += c;
27622
+ if (quote === '"' && (c === "`" || c === "$" && EXPANSION_START.test(text[i + 1] ?? "") || c === "\\" && text[i + 1] === `
27623
+ `)) {
27624
+ complete = false;
27625
+ }
27599
27626
  if (c === quote) {
27600
27627
  quote = null;
27601
27628
  } else if (c === "\\" && quote === '"' && i + 1 < text.length) {
@@ -27606,6 +27633,10 @@ function scanCommand(command) {
27606
27633
  }
27607
27634
  continue;
27608
27635
  }
27636
+ if (c === "`" || c === "$" && (text[i + 1] === "'" || text[i + 1] === '"' || EXPANSION_START.test(text[i + 1] ?? "")) || (c === "<" || c === ">") && text[i + 1] === "(" || c === "<" && text[i + 1] === "<" || c === "\\" && text[i + 1] === `
27637
+ `) {
27638
+ complete = false;
27639
+ }
27609
27640
  if (c === "'" || c === '"') {
27610
27641
  quote = c;
27611
27642
  inWord = true;
@@ -27646,12 +27677,29 @@ function scanCommand(command) {
27646
27677
  out += c;
27647
27678
  continue;
27648
27679
  }
27680
+ if (c === "{") {
27681
+ braceDepth++;
27682
+ } else if (braceDepth > 0 && (c === "," || c === "." && text[i + 1] === ".")) {
27683
+ braceSep = true;
27684
+ } else if (c === "}" && braceDepth > 0) {
27685
+ braceDepth--;
27686
+ if (braceSep)
27687
+ complete = false;
27688
+ } else if (c === "*" || c === "?") {
27689
+ complete = false;
27690
+ } else if (c === "[") {
27691
+ bracketOpen = true;
27692
+ } else if (c === "]" && bracketOpen) {
27693
+ complete = false;
27694
+ }
27649
27695
  word += c;
27650
27696
  inWord = true;
27651
27697
  out += c;
27652
27698
  }
27653
27699
  endSegment();
27654
- return { segments, withoutComments: out.trimEnd(), commentsRemoved, comments };
27700
+ if (quote)
27701
+ complete = false;
27702
+ return { segments, withoutComments: out.trimEnd(), commentsRemoved, comments, complete };
27655
27703
  }
27656
27704
  function expandHome(token, home) {
27657
27705
  if (token === "~")
@@ -27784,7 +27832,7 @@ function computeFacts(toolName, toolInput, cwd, permissionMode, scanned, pinnedP
27784
27832
  permissionMode
27785
27833
  };
27786
27834
  }
27787
- var SHELL_TOOLS, WRITE_TOOLS, READ_TOOLS, NETWORK_TOOLS, INERT_TOOLS, MAX_SCAN_CHARS = 8192, PATH_LIKE, GLOB_CHARS, MAX_PATHS = 12;
27835
+ var SHELL_TOOLS, WRITE_TOOLS, READ_TOOLS, NETWORK_TOOLS, INERT_TOOLS, MAX_SCAN_CHARS = 8192, NESTED_SHELLS, EXPANSION_START, PATH_LIKE, GLOB_CHARS, MAX_PATHS = 12;
27788
27836
  var init_facts = __esm(() => {
27789
27837
  SHELL_TOOLS = new Set(["Bash", "BashOutput"]);
27790
27838
  WRITE_TOOLS = new Set(["Write", "Edit", "MultiEdit", "NotebookEdit"]);
@@ -27803,6 +27851,8 @@ var init_facts = __esm(() => {
27803
27851
  "SlashCommand",
27804
27852
  "Skill"
27805
27853
  ]);
27854
+ NESTED_SHELLS = new Set(["sh", "bash", "zsh", "dash", "ksh", "ash", "fish"]);
27855
+ EXPANSION_START = /[A-Za-z_0-9@*#?$!\-({]/;
27806
27856
  PATH_LIKE = /^(?:\/|~|\.\.?(?:\/|$)|[^:]*\/)/;
27807
27857
  GLOB_CHARS = /[*?[]/;
27808
27858
  });
@@ -27811,50 +27861,70 @@ var init_facts = __esm(() => {
27811
27861
  function tokensOf(text) {
27812
27862
  return text.toLowerCase().split(/[^a-z0-9._@-]+/).filter((t) => t.length >= 3 && !GENERIC_TOKENS.has(t) && !/^\d+$/.test(t));
27813
27863
  }
27814
- function targetTokens(toolInput) {
27815
- const out = new Set;
27864
+ function scanTargets(toolInput) {
27865
+ const groups = [];
27866
+ const addGroup = (tok) => {
27867
+ const words = tokensOf(tok);
27868
+ if (words.length > 0)
27869
+ groups.push(new Set(words));
27870
+ };
27816
27871
  const command = typeof toolInput.command === "string" ? toolInput.command : null;
27817
27872
  if (command) {
27818
- for (const seg of scanCommand(command).segments) {
27873
+ const scanned = scanCommand(command);
27874
+ for (const seg of scanned.segments) {
27819
27875
  for (const tok of seg.slice(1)) {
27820
- if (tok.startsWith("-"))
27821
- continue;
27822
- for (const t of tokensOf(tok))
27823
- out.add(t);
27876
+ if (!tok.startsWith("-"))
27877
+ addGroup(tok);
27824
27878
  }
27825
27879
  }
27826
- if (out.size === 0) {
27880
+ if (groups.length === 0) {
27827
27881
  for (const piece of command.split(/[;&|\n]+/)) {
27828
27882
  for (const tok of piece.trim().split(/\s+/).slice(1)) {
27829
27883
  if (!tok.startsWith("-"))
27830
- for (const t of tokensOf(tok))
27831
- out.add(t);
27884
+ addGroup(tok);
27832
27885
  }
27833
27886
  }
27834
27887
  }
27835
- return out;
27888
+ return { targets: new Set(groups.flatMap((g) => [...g])), groups, complete: scanned.complete };
27836
27889
  }
27890
+ const all = new Set;
27837
27891
  for (const [key, value] of Object.entries(toolInput)) {
27838
27892
  if (typeof value !== "string" || value.length > 300)
27839
27893
  continue;
27840
27894
  if (/content|old_string|new_string|body|text|prompt/i.test(key))
27841
27895
  continue;
27842
27896
  for (const t of tokensOf(value))
27843
- out.add(t);
27897
+ all.add(t);
27844
27898
  }
27845
- return out;
27899
+ return { targets: all, groups: all.size > 0 ? [all] : [], complete: true };
27846
27900
  }
27847
- function targetNamedByUser(targets, userSaid) {
27848
- if (userSaid.length === 0)
27901
+ function everyTargetNamed(scan, userSaid) {
27902
+ if (userSaid.length === 0 || scan.groups.length === 0)
27849
27903
  return false;
27850
- if (targets.size === 0)
27904
+ const said = userSaid.join(`
27905
+ `).toLowerCase();
27906
+ return scan.groups.every((g) => {
27907
+ for (const t of g)
27908
+ if (said.includes(t))
27909
+ return true;
27910
+ return false;
27911
+ });
27912
+ }
27913
+ function partlyNamed(scan, userSaid) {
27914
+ if (userSaid.length === 0 || scan.groups.length < 2)
27851
27915
  return false;
27852
27916
  const said = userSaid.join(`
27853
27917
  `).toLowerCase();
27854
- for (const t of targets)
27855
- if (said.includes(t))
27856
- return true;
27857
- return false;
27918
+ let named = 0;
27919
+ for (const g of scan.groups) {
27920
+ for (const t of g) {
27921
+ if (said.includes(t)) {
27922
+ named++;
27923
+ break;
27924
+ }
27925
+ }
27926
+ }
27927
+ return named > 0 && named < scan.groups.length;
27858
27928
  }
27859
27929
  function formatOutcome(p, o) {
27860
27930
  return `${p.title} (semantic/${p.name}, p=${o.evidence.toFixed(2)}). ${p.guidance}`;
@@ -27864,7 +27934,7 @@ function decide(selected, answers, toolInput, userSaid, thresholds = DEFAULT_THR
27864
27934
  const injected = injection !== null && injection >= thresholds.injection;
27865
27935
  const scope = typeof answers.scope === "number" ? answers.scope : null;
27866
27936
  const withinScope = scope !== null && scope >= thresholds.scope;
27867
- let targets = null;
27937
+ let scan = null;
27868
27938
  const outcomes = selected.map((p) => {
27869
27939
  const evidence = Math.min(...p.probes.map((probe) => answers[`${p.name}.${probe.id}`] ?? 0));
27870
27940
  const exempt = p.exempt ? answers[`${p.name}.exempt`] ?? 0 : null;
@@ -27887,9 +27957,11 @@ function decide(selected, answers, toolInput, userSaid, thresholds = DEFAULT_THR
27887
27957
  return { ...base, escalatedByInjection: true, verdict: "deny" };
27888
27958
  const fired = p.mode === "deny" && evidence >= thresholds.deny ? "deny" : "instruct";
27889
27959
  if (p.userCanOverride && userAsked !== null && userAsked >= thresholds.userAsked && withinScope) {
27890
- targets ??= targetTokens(toolInput);
27891
- const named = targets.size > 0 && targetNamedByUser(targets, userSaid);
27892
- if (targets.size === 0 || named || userSaidCut)
27960
+ scan ??= scanTargets(toolInput);
27961
+ if (!scan.complete)
27962
+ return { ...base, verdict: fired, targetScanIncomplete: true };
27963
+ const named = scan.groups.length > 0 && everyTargetNamed(scan, userSaid);
27964
+ if (scan.groups.length === 0 || named || userSaidCut)
27893
27965
  return { ...base, targetNamedByUser: named, verdict: "overridden" };
27894
27966
  }
27895
27967
  return { ...base, verdict: fired };
@@ -27939,12 +28011,14 @@ function decideV1(selected, answers, toolInput, userSaid, agentLastMessage, opts
27939
28011
  const task = num("task_step");
27940
28012
  const op = num("op_requested");
27941
28013
  const beyond = num("beyond_task");
27942
- let targets = null;
28014
+ let scan = null;
28015
+ const targetScan = () => scan ??= scanTargets(toolInput);
28016
+ const evidenceSaid = agentLastMessage ? [...userSaid, agentLastMessage] : userSaid;
27943
28017
  const targetOk = () => {
27944
- targets ??= targetTokens(toolInput);
27945
- if (targets.size === 0)
28018
+ const s = targetScan();
28019
+ if (s.groups.length === 0)
27946
28020
  return { ok: true, named: false };
27947
- const named = targetNamedByUser(targets, agentLastMessage ? [...userSaid, agentLastMessage] : userSaid);
28021
+ const named = everyTargetNamed(s, evidenceSaid);
27948
28022
  return { ok: named || userSaidCut, named };
27949
28023
  };
27950
28024
  const outcomes = selected.map((p) => {
@@ -27969,12 +28043,14 @@ function decideV1(selected, answers, toolInput, userSaid, agentLastMessage, opts
27969
28043
  const fired = p.mode === "deny" && evidence >= t.deny ? "deny" : "instruct";
27970
28044
  if (!p.userCanOverride)
27971
28045
  return { ...base, verdict: fired };
28046
+ if (!targetScan().complete)
28047
+ return { ...base, verdict: fired, targetScanIncomplete: true };
27972
28048
  if (op !== null && op >= t.opRequested && beyond !== null && beyond < t.opBeyondMax) {
27973
28049
  const target = targetOk();
27974
28050
  if (target.ok)
27975
28051
  return { ...base, targetNamedByUser: target.named, verdict: "overridden", intent: "op-requested" };
27976
28052
  }
27977
- if (taskClears && task !== null && task >= t.taskStep && beyond !== null && beyond < t.taskBeyondMax) {
28053
+ if (taskClears && task !== null && task >= t.taskStep && beyond !== null && beyond < t.taskBeyondMax && !(typeof toolInput.command === "string" && !userSaidCut && partlyNamed(targetScan(), evidenceSaid))) {
27978
28054
  if (fired === "instruct")
27979
28055
  return { ...base, verdict: "overridden", intent: "task-step" };
27980
28056
  return { ...base, verdict: "instruct", intent: "downgraded-task-step" };
@@ -44263,7 +44339,7 @@ import { realpathSync as realpathSync7 } from "fs";
44263
44339
  import { dirname as dirname31, resolve as resolve41 } from "path";
44264
44340
  import { fileURLToPath as fileURLToPath4 } from "url";
44265
44341
  // package.json
44266
- var version = "1.0.8-beta.0";
44342
+ var version = "1.0.8";
44267
44343
 
44268
44344
  // bin/failproofai.mjs
44269
44345
  if (!process.env.FAILPROOFAI_PACKAGE_ROOT) {