@truefoundry/trueforge 0.1.2 → 0.1.4-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/_frontend/assets/{ConnectorSettings-XEO5ZQO5-BXis0tQK.js → ConnectorSettings-ODC3LVHN-jhiXpbVc.js} +1 -1
  2. package/dist/_frontend/assets/ConnectorSettings-ODC3LVHN-jhiXpbVc.js.br +0 -0
  3. package/dist/_frontend/assets/ConnectorSettings-ODC3LVHN-jhiXpbVc.js.gz +0 -0
  4. package/dist/_frontend/assets/{DockLayout-F2KYSY4U-D8P84kCr.js → DockLayout-2RWDSUKE-DY3y3Is3.js} +1 -1
  5. package/dist/_frontend/assets/{DrawerLayout-FJ7XC2FU-ChH-Qykr.js → DrawerLayout-CZLJYMIN-BYncSNoi.js} +2 -2
  6. package/dist/_frontend/assets/DrawerLayout-CZLJYMIN-BYncSNoi.js.br +0 -0
  7. package/dist/_frontend/assets/DrawerLayout-CZLJYMIN-BYncSNoi.js.gz +0 -0
  8. package/dist/_frontend/assets/{ModelSettings-2QB7LE22-CDZku4g3.js → ModelSettings-CKQ5CVAC-DxQtYKup.js} +1 -1
  9. package/dist/_frontend/assets/ModelSettings-CKQ5CVAC-DxQtYKup.js.br +0 -0
  10. package/dist/_frontend/assets/ModelSettings-CKQ5CVAC-DxQtYKup.js.gz +0 -0
  11. package/dist/_frontend/assets/{SandboxSettings-QDDIPRBP-CImJLa0r.js → SandboxSettings-HSCPYUOC-DMFf-U04.js} +1 -1
  12. package/dist/_frontend/assets/SandboxSettings-HSCPYUOC-DMFf-U04.js.br +0 -0
  13. package/dist/_frontend/assets/SandboxSettings-HSCPYUOC-DMFf-U04.js.gz +0 -0
  14. package/dist/_frontend/assets/SettingsBuilder-MYWRFXRI-C4p8uaXT.js +2 -0
  15. package/dist/_frontend/assets/SettingsBuilder-MYWRFXRI-C4p8uaXT.js.br +0 -0
  16. package/dist/_frontend/assets/SettingsBuilder-MYWRFXRI-C4p8uaXT.js.gz +0 -0
  17. package/dist/_frontend/assets/{ShellRouteSync-T4WLY57Q-CetHx5EA.js → ShellRouteSync-T4WLY57Q-BC8a0ojU.js} +1 -1
  18. package/dist/_frontend/assets/ShellRouteSync-T4WLY57Q-BC8a0ojU.js.br +0 -0
  19. package/dist/_frontend/assets/ShellRouteSync-T4WLY57Q-BC8a0ojU.js.gz +0 -0
  20. package/dist/_frontend/assets/{SidebarLayout-KX6RSJTP-B8G4CTTb.js → SidebarLayout-WVY54TGZ-Ds7NVk-f.js} +2 -2
  21. package/dist/_frontend/assets/SidebarLayout-WVY54TGZ-Ds7NVk-f.js.br +0 -0
  22. package/dist/_frontend/assets/SidebarLayout-WVY54TGZ-Ds7NVk-f.js.gz +0 -0
  23. package/dist/_frontend/assets/{SkillSettings-5EETEEDI-DbJE0Ms2.js → SkillSettings-ECH6SHZ7-BtdCmc6B.js} +1 -1
  24. package/dist/_frontend/assets/SkillSettings-ECH6SHZ7-BtdCmc6B.js.br +0 -0
  25. package/dist/_frontend/assets/SkillSettings-ECH6SHZ7-BtdCmc6B.js.gz +0 -0
  26. package/dist/_frontend/assets/{TrueForgeUIWithRouter-IAQQTD5V-9G1rELmh.js → TrueForgeUIWithRouter-RKZ2E7PV-vF7U7cGf.js} +1 -1
  27. package/dist/_frontend/assets/{WidgetLayout-S6EK62TZ-BPf7T3wa.js → WidgetLayout-NWWB2SXI-DJtuM33Y.js} +1 -1
  28. package/dist/_frontend/assets/WidgetLayout-NWWB2SXI-DJtuM33Y.js.br +0 -0
  29. package/dist/_frontend/assets/WidgetLayout-NWWB2SXI-DJtuM33Y.js.gz +0 -0
  30. package/dist/_frontend/assets/{chunk-62JRHF6Z-BUuLA42_.js → chunk-62JRHF6Z-TG4aaXok.js} +1 -1
  31. package/dist/_frontend/assets/chunk-62JRHF6Z-TG4aaXok.js.br +0 -0
  32. package/dist/_frontend/assets/chunk-62JRHF6Z-TG4aaXok.js.gz +0 -0
  33. package/dist/_frontend/assets/{chunk-X6U2Q7X5-DDlfUle1.js → chunk-OZTNBS6V-axorP9qO.js} +1 -1
  34. package/dist/_frontend/assets/chunk-OZTNBS6V-axorP9qO.js.br +0 -0
  35. package/dist/_frontend/assets/chunk-OZTNBS6V-axorP9qO.js.gz +0 -0
  36. package/dist/_frontend/assets/{chunk-PTYEOSHT-C4gdhLwo.js → chunk-TCAVLWYL-BXtNAtCy.js} +2 -2
  37. package/dist/_frontend/assets/chunk-TCAVLWYL-BXtNAtCy.js.br +0 -0
  38. package/dist/_frontend/assets/chunk-TCAVLWYL-BXtNAtCy.js.gz +0 -0
  39. package/dist/_frontend/assets/{cssMode-C1whwlDW.js → cssMode-yEIs6GIw.js} +1 -1
  40. package/dist/_frontend/assets/cssMode-yEIs6GIw.js.br +0 -0
  41. package/dist/_frontend/assets/cssMode-yEIs6GIw.js.gz +0 -0
  42. package/dist/_frontend/assets/{freemarker2-CaMIS9bY.js → freemarker2-aDGnYU8i.js} +1 -1
  43. package/dist/_frontend/assets/freemarker2-aDGnYU8i.js.br +0 -0
  44. package/dist/_frontend/assets/freemarker2-aDGnYU8i.js.gz +0 -0
  45. package/dist/_frontend/assets/{handlebars-Donx2d9H.js → handlebars-B6ny31dN.js} +1 -1
  46. package/dist/_frontend/assets/handlebars-B6ny31dN.js.br +0 -0
  47. package/dist/_frontend/assets/handlebars-B6ny31dN.js.gz +0 -0
  48. package/dist/_frontend/assets/{html-CtI8kZ6e.js → html-D7u-MYoP.js} +1 -1
  49. package/dist/_frontend/assets/html-D7u-MYoP.js.br +0 -0
  50. package/dist/_frontend/assets/html-D7u-MYoP.js.gz +0 -0
  51. package/dist/_frontend/assets/{htmlMode-B6ky8VkF.js → htmlMode-kNcFDXKs.js} +1 -1
  52. package/dist/_frontend/assets/htmlMode-kNcFDXKs.js.br +0 -0
  53. package/dist/_frontend/assets/htmlMode-kNcFDXKs.js.gz +0 -0
  54. package/dist/_frontend/assets/{index-DFmgzNuj.js → index-CLJuaUhx.js} +3 -3
  55. package/dist/_frontend/assets/index-CLJuaUhx.js.br +0 -0
  56. package/dist/_frontend/assets/index-CLJuaUhx.js.gz +0 -0
  57. package/dist/_frontend/assets/{index-DWr7ad72.js → index-D1GDH6ia.js} +122 -122
  58. package/dist/_frontend/assets/index-D1GDH6ia.js.br +0 -0
  59. package/dist/_frontend/assets/index-D1GDH6ia.js.gz +0 -0
  60. package/dist/_frontend/assets/{javascript-BDngdIws.js → javascript-BLSK7s1P.js} +1 -1
  61. package/dist/_frontend/assets/{jsonMode-B7OogXWW.js → jsonMode-XHJKWC_S.js} +1 -1
  62. package/dist/_frontend/assets/jsonMode-XHJKWC_S.js.br +0 -0
  63. package/dist/_frontend/assets/jsonMode-XHJKWC_S.js.gz +0 -0
  64. package/dist/_frontend/assets/{liquid-D_8RkuUW.js → liquid-Db1WZdZB.js} +1 -1
  65. package/dist/_frontend/assets/liquid-Db1WZdZB.js.br +0 -0
  66. package/dist/_frontend/assets/liquid-Db1WZdZB.js.gz +0 -0
  67. package/dist/_frontend/assets/{lspLanguageFeatures-DJf8_W2N.js → lspLanguageFeatures-BFyBtl8M.js} +1 -1
  68. package/dist/_frontend/assets/lspLanguageFeatures-BFyBtl8M.js.br +0 -0
  69. package/dist/_frontend/assets/lspLanguageFeatures-BFyBtl8M.js.gz +0 -0
  70. package/dist/_frontend/assets/{mdx-HcpZSZ2w.js → mdx-DtFWu4ex.js} +1 -1
  71. package/dist/_frontend/assets/mdx-DtFWu4ex.js.br +0 -0
  72. package/dist/_frontend/assets/mdx-DtFWu4ex.js.gz +0 -0
  73. package/dist/_frontend/assets/{python-CPiT1vB4.js → python-2R7BOup6.js} +1 -1
  74. package/dist/_frontend/assets/python-2R7BOup6.js.br +0 -0
  75. package/dist/_frontend/assets/python-2R7BOup6.js.gz +0 -0
  76. package/dist/_frontend/assets/{razor-oizHS-vq.js → razor-DQLxdj72.js} +1 -1
  77. package/dist/_frontend/assets/razor-DQLxdj72.js.br +0 -0
  78. package/dist/_frontend/assets/razor-DQLxdj72.js.gz +0 -0
  79. package/dist/_frontend/assets/{tsMode-n5kkpKJX.js → tsMode-Ctn4PuNt.js} +1 -1
  80. package/dist/_frontend/assets/tsMode-Ctn4PuNt.js.br +0 -0
  81. package/dist/_frontend/assets/tsMode-Ctn4PuNt.js.gz +0 -0
  82. package/dist/_frontend/assets/{typescript-BfXupYGq.js → typescript-DGwzICBa.js} +1 -1
  83. package/dist/_frontend/assets/typescript-DGwzICBa.js.br +0 -0
  84. package/dist/_frontend/assets/typescript-DGwzICBa.js.gz +0 -0
  85. package/dist/_frontend/assets/{workers-DCX6qMOc.js → workers-CRRTWuKZ.js} +1 -1
  86. package/dist/_frontend/assets/workers-CRRTWuKZ.js.br +0 -0
  87. package/dist/_frontend/assets/workers-CRRTWuKZ.js.gz +0 -0
  88. package/dist/_frontend/assets/{xml-MX-qfsGl.js → xml-CFZg-QqB.js} +1 -1
  89. package/dist/_frontend/assets/xml-CFZg-QqB.js.br +0 -0
  90. package/dist/_frontend/assets/xml-CFZg-QqB.js.gz +0 -0
  91. package/dist/_frontend/assets/{yaml-DnKyyO9e.js → yaml-DUIIx9CV.js} +1 -1
  92. package/dist/_frontend/assets/yaml-DUIIx9CV.js.br +0 -0
  93. package/dist/_frontend/assets/yaml-DUIIx9CV.js.gz +0 -0
  94. package/dist/_frontend/index.html +1 -1
  95. package/dist/_frontend/index.html.br +0 -0
  96. package/dist/_frontend/index.html.gz +0 -0
  97. package/dist/main.js +2198 -519
  98. package/dist/main.js.map +1 -1
  99. package/dist/postgres/migrations/20260818_000001_mcp_pending_auth_return_to.js +17 -0
  100. package/dist/postgres/migrations/20260818_000001_mcp_pending_auth_return_to.js.map +1 -0
  101. package/dist/sqlite/migrations/20260818_000001_mcp_pending_auth_return_to.js +19 -0
  102. package/dist/sqlite/migrations/20260818_000001_mcp_pending_auth_return_to.js.map +1 -0
  103. package/package.json +10 -4
  104. package/dist/_frontend/assets/ConnectorSettings-XEO5ZQO5-BXis0tQK.js.br +0 -0
  105. package/dist/_frontend/assets/ConnectorSettings-XEO5ZQO5-BXis0tQK.js.gz +0 -0
  106. package/dist/_frontend/assets/DrawerLayout-FJ7XC2FU-ChH-Qykr.js.br +0 -0
  107. package/dist/_frontend/assets/DrawerLayout-FJ7XC2FU-ChH-Qykr.js.gz +0 -0
  108. package/dist/_frontend/assets/ModelSettings-2QB7LE22-CDZku4g3.js.br +0 -0
  109. package/dist/_frontend/assets/ModelSettings-2QB7LE22-CDZku4g3.js.gz +0 -0
  110. package/dist/_frontend/assets/SandboxSettings-QDDIPRBP-CImJLa0r.js.br +0 -0
  111. package/dist/_frontend/assets/SandboxSettings-QDDIPRBP-CImJLa0r.js.gz +0 -0
  112. package/dist/_frontend/assets/SettingsBuilder-4NF3Y7UZ-eXXDLQ6k.js +0 -2
  113. package/dist/_frontend/assets/SettingsBuilder-4NF3Y7UZ-eXXDLQ6k.js.br +0 -0
  114. package/dist/_frontend/assets/SettingsBuilder-4NF3Y7UZ-eXXDLQ6k.js.gz +0 -0
  115. package/dist/_frontend/assets/ShellRouteSync-T4WLY57Q-CetHx5EA.js.br +0 -0
  116. package/dist/_frontend/assets/ShellRouteSync-T4WLY57Q-CetHx5EA.js.gz +0 -0
  117. package/dist/_frontend/assets/SidebarLayout-KX6RSJTP-B8G4CTTb.js.br +0 -0
  118. package/dist/_frontend/assets/SidebarLayout-KX6RSJTP-B8G4CTTb.js.gz +0 -0
  119. package/dist/_frontend/assets/SkillSettings-5EETEEDI-DbJE0Ms2.js.br +0 -0
  120. package/dist/_frontend/assets/SkillSettings-5EETEEDI-DbJE0Ms2.js.gz +0 -0
  121. package/dist/_frontend/assets/WidgetLayout-S6EK62TZ-BPf7T3wa.js.br +0 -0
  122. package/dist/_frontend/assets/WidgetLayout-S6EK62TZ-BPf7T3wa.js.gz +0 -0
  123. package/dist/_frontend/assets/chunk-62JRHF6Z-BUuLA42_.js.br +0 -0
  124. package/dist/_frontend/assets/chunk-62JRHF6Z-BUuLA42_.js.gz +0 -0
  125. package/dist/_frontend/assets/chunk-PTYEOSHT-C4gdhLwo.js.br +0 -0
  126. package/dist/_frontend/assets/chunk-PTYEOSHT-C4gdhLwo.js.gz +0 -0
  127. package/dist/_frontend/assets/chunk-X6U2Q7X5-DDlfUle1.js.br +0 -0
  128. package/dist/_frontend/assets/chunk-X6U2Q7X5-DDlfUle1.js.gz +0 -0
  129. package/dist/_frontend/assets/cssMode-C1whwlDW.js.br +0 -0
  130. package/dist/_frontend/assets/cssMode-C1whwlDW.js.gz +0 -0
  131. package/dist/_frontend/assets/freemarker2-CaMIS9bY.js.br +0 -0
  132. package/dist/_frontend/assets/freemarker2-CaMIS9bY.js.gz +0 -0
  133. package/dist/_frontend/assets/handlebars-Donx2d9H.js.br +0 -0
  134. package/dist/_frontend/assets/handlebars-Donx2d9H.js.gz +0 -0
  135. package/dist/_frontend/assets/html-CtI8kZ6e.js.br +0 -0
  136. package/dist/_frontend/assets/html-CtI8kZ6e.js.gz +0 -0
  137. package/dist/_frontend/assets/htmlMode-B6ky8VkF.js.br +0 -0
  138. package/dist/_frontend/assets/htmlMode-B6ky8VkF.js.gz +0 -0
  139. package/dist/_frontend/assets/index-DFmgzNuj.js.br +0 -0
  140. package/dist/_frontend/assets/index-DFmgzNuj.js.gz +0 -0
  141. package/dist/_frontend/assets/index-DWr7ad72.js.br +0 -0
  142. package/dist/_frontend/assets/index-DWr7ad72.js.gz +0 -0
  143. package/dist/_frontend/assets/jsonMode-B7OogXWW.js.br +0 -0
  144. package/dist/_frontend/assets/jsonMode-B7OogXWW.js.gz +0 -0
  145. package/dist/_frontend/assets/liquid-D_8RkuUW.js.br +0 -0
  146. package/dist/_frontend/assets/liquid-D_8RkuUW.js.gz +0 -0
  147. package/dist/_frontend/assets/lspLanguageFeatures-DJf8_W2N.js.br +0 -0
  148. package/dist/_frontend/assets/lspLanguageFeatures-DJf8_W2N.js.gz +0 -0
  149. package/dist/_frontend/assets/mdx-HcpZSZ2w.js.br +0 -0
  150. package/dist/_frontend/assets/mdx-HcpZSZ2w.js.gz +0 -0
  151. package/dist/_frontend/assets/python-CPiT1vB4.js.br +0 -0
  152. package/dist/_frontend/assets/python-CPiT1vB4.js.gz +0 -0
  153. package/dist/_frontend/assets/razor-oizHS-vq.js.br +0 -0
  154. package/dist/_frontend/assets/razor-oizHS-vq.js.gz +0 -0
  155. package/dist/_frontend/assets/tsMode-n5kkpKJX.js.br +0 -0
  156. package/dist/_frontend/assets/tsMode-n5kkpKJX.js.gz +0 -0
  157. package/dist/_frontend/assets/typescript-BfXupYGq.js.br +0 -0
  158. package/dist/_frontend/assets/typescript-BfXupYGq.js.gz +0 -0
  159. package/dist/_frontend/assets/workers-DCX6qMOc.js.br +0 -0
  160. package/dist/_frontend/assets/workers-DCX6qMOc.js.gz +0 -0
  161. package/dist/_frontend/assets/xml-MX-qfsGl.js.br +0 -0
  162. package/dist/_frontend/assets/xml-MX-qfsGl.js.gz +0 -0
  163. package/dist/_frontend/assets/yaml-DnKyyO9e.js.br +0 -0
  164. package/dist/_frontend/assets/yaml-DnKyyO9e.js.gz +0 -0
@@ -0,0 +1,17 @@
1
+ // src/db/postgres/migrations/20260818_000001_mcp_pending_auth_return_to.ts
2
+ import { sql } from "kysely";
3
+ async function up(db) {
4
+ await sql`SET LOCAL lock_timeout = '5s'`.execute(db);
5
+ await sql`LOCK TABLE oauth_pending_authorization IN ACCESS EXCLUSIVE MODE`.execute(db);
6
+ await sql`DELETE FROM oauth_pending_authorization`.execute(db);
7
+ }
8
+ async function down(db) {
9
+ await sql`SET LOCAL lock_timeout = '5s'`.execute(db);
10
+ await sql`LOCK TABLE oauth_pending_authorization IN ACCESS EXCLUSIVE MODE`.execute(db);
11
+ await sql`DELETE FROM oauth_pending_authorization`.execute(db);
12
+ }
13
+ export {
14
+ down,
15
+ up
16
+ };
17
+ //# sourceMappingURL=20260818_000001_mcp_pending_auth_return_to.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/db/postgres/migrations/20260818_000001_mcp_pending_auth_return_to.ts"],"sourcesContent":["import { sql, type Kysely } from 'kysely';\n\n/**\n * Pending-authorization `auth_data` jsonb key `redirect_url` → `return_to` (path).\n * In-flight rows are short-lived and cannot be rewritten safely; drop them so\n * callers restart authorize with the new shape.\n */\nexport async function up(db: Kysely<unknown>): Promise<void> {\n await sql`SET LOCAL lock_timeout = '5s'`.execute(db);\n await sql`LOCK TABLE oauth_pending_authorization IN ACCESS EXCLUSIVE MODE`.execute(db);\n await sql`DELETE FROM oauth_pending_authorization`.execute(db);\n}\n\nexport async function down(db: Kysely<unknown>): Promise<void> {\n await sql`SET LOCAL lock_timeout = '5s'`.execute(db);\n // Rows written with `return_to` are incompatible with the prior shape; clear them.\n await sql`LOCK TABLE oauth_pending_authorization IN ACCESS EXCLUSIVE MODE`.execute(db);\n await sql`DELETE FROM oauth_pending_authorization`.execute(db);\n}\n"],"mappings":";AAAA,SAAS,WAAwB;AAOjC,eAAsB,GAAG,IAAoC;AAC3D,QAAM,mCAAmC,QAAQ,EAAE;AACnD,QAAM,qEAAqE,QAAQ,EAAE;AACrF,QAAM,6CAA6C,QAAQ,EAAE;AAC/D;AAEA,eAAsB,KAAK,IAAoC;AAC7D,QAAM,mCAAmC,QAAQ,EAAE;AAEnD,QAAM,qEAAqE,QAAQ,EAAE;AACrF,QAAM,6CAA6C,QAAQ,EAAE;AAC/D;","names":[]}
@@ -0,0 +1,19 @@
1
+ // src/db/sqlite/migrations/20260818_000001_mcp_pending_auth_return_to.ts
2
+ import { sql } from "kysely";
3
+ async function up(db) {
4
+ await db.transaction().execute(async (trx) => {
5
+ await sql`UPDATE oauth_pending_authorization SET created_at = created_at WHERE false`.execute(trx);
6
+ await sql`DELETE FROM oauth_pending_authorization`.execute(trx);
7
+ });
8
+ }
9
+ async function down(db) {
10
+ await db.transaction().execute(async (trx) => {
11
+ await sql`UPDATE oauth_pending_authorization SET created_at = created_at WHERE false`.execute(trx);
12
+ await sql`DELETE FROM oauth_pending_authorization`.execute(trx);
13
+ });
14
+ }
15
+ export {
16
+ down,
17
+ up
18
+ };
19
+ //# sourceMappingURL=20260818_000001_mcp_pending_auth_return_to.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/db/sqlite/migrations/20260818_000001_mcp_pending_auth_return_to.ts"],"sourcesContent":["import { type Kysely, sql } from 'kysely';\n\n/**\n * Pending-authorization `auth_data` jsonb key `redirect_url` → `return_to` (path).\n * In-flight rows are short-lived and cannot be rewritten safely; drop them so\n * callers restart authorize with the new shape.\n * Mirrors db/postgres/migrations/20260818_000001_mcp_pending_auth_return_to.ts.\n *\n * Wrapped in a transaction. SQLite has no LOCK TABLE; a no-op UPDATE escalates\n * the deferred txn to a RESERVED write lock before the delete.\n */\nexport async function up(db: Kysely<unknown>): Promise<void> {\n await db.transaction().execute(async trx => {\n await sql`UPDATE oauth_pending_authorization SET created_at = created_at WHERE false`.execute(trx);\n await sql`DELETE FROM oauth_pending_authorization`.execute(trx);\n });\n}\n\nexport async function down(db: Kysely<unknown>): Promise<void> {\n await db.transaction().execute(async trx => {\n // Rows written with `return_to` are incompatible with the prior shape; clear them.\n await sql`UPDATE oauth_pending_authorization SET created_at = created_at WHERE false`.execute(trx);\n await sql`DELETE FROM oauth_pending_authorization`.execute(trx);\n });\n}\n"],"mappings":";AAAA,SAAsB,WAAW;AAWjC,eAAsB,GAAG,IAAoC;AAC3D,QAAM,GAAG,YAAY,EAAE,QAAQ,OAAM,QAAO;AAC1C,UAAM,gFAAgF,QAAQ,GAAG;AACjG,UAAM,6CAA6C,QAAQ,GAAG;AAAA,EAChE,CAAC;AACH;AAEA,eAAsB,KAAK,IAAoC;AAC7D,QAAM,GAAG,YAAY,EAAE,QAAQ,OAAM,QAAO;AAE1C,UAAM,gFAAgF,QAAQ,GAAG;AACjG,UAAM,6CAA6C,QAAQ,GAAG;AAAA,EAChE,CAAC;AACH;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truefoundry/trueforge",
3
- "version": "0.1.2",
3
+ "version": "0.1.4-rc.0",
4
4
  "description": "TrueForge Agent Harness: server, HTTP API, and chat UI (npx @truefoundry/trueforge)",
5
5
  "author": "TrueFoundry",
6
6
  "license": "MIT",
@@ -27,6 +27,7 @@
27
27
  "node": ">=22"
28
28
  },
29
29
  "dependencies": {
30
+ "@anthropic-ai/sandbox-runtime": "0.0.71",
30
31
  "@daytona/sdk": "^0.204.1",
31
32
  "@hono/node-server": "^2.0.11",
32
33
  "@hono/swagger-ui": "^0.2.1",
@@ -44,7 +45,7 @@
44
45
  "winston": "^3.13.0",
45
46
  "yaml": "^2.9.0",
46
47
  "zod": "^4.4.3",
47
- "@truefoundry/trueforge-core": "0.1.2"
48
+ "@truefoundry/trueforge-core": "0.1.4-rc.0"
48
49
  },
49
50
  "devDependencies": {
50
51
  "@swc/core": "^1.11.0",
@@ -60,8 +61,9 @@
60
61
  },
61
62
  "scripts": {
62
63
  "build:frontend-assets": "node scripts/copy-frontend.mjs",
63
- "build:gen:watch": "node --watch-path=catalog/model-catalog.yaml --watch-path=catalog/mcp-catalog.yaml --watch-path=catalog/skill-catalog.yaml --watch-path=catalog/sandbox-catalog.yaml scripts/generate-catalog.mjs",
64
- "build:gen": "node scripts/generate-catalog.mjs",
64
+ "build:gen:local-sandbox": "node scripts/generate-local-sandbox-scripts.mjs",
65
+ "build:gen:watch": "node --watch-path=catalog/model-catalog.yaml --watch-path=catalog/mcp-catalog.yaml --watch-path=catalog/skill-catalog.yaml --watch-path=catalog/sandbox-catalog.yaml --watch-path=src/sandbox/local/scripts scripts/generate-dev.mjs",
66
+ "build:gen": "pnpm run build:gen:local-sandbox && node scripts/generate-catalog.mjs",
65
67
  "build:clean": "rm -rf dist",
66
68
  "build": "pnpm run build:gen && tsc --noEmit && pnpm run build:clean && tsup && chmod +x dist/cli.js && pnpm run build:frontend-assets",
67
69
  "dev:serve": "NODE_OPTIONS='--conditions=trueforge-dev' NODE_ENV=development tsx watch --env-file=.env src/main.ts",
@@ -79,6 +81,10 @@
79
81
  "test:store:postgres": "jest --config jest.store.postgres.config.cjs",
80
82
  "test:store:sqlite": "jest --config jest.store.sqlite.config.cjs",
81
83
  "test": "pnpm run build:gen && NODE_OPTIONS='--conditions=trueforge-dev' node --env-file=.env.test ./node_modules/jest/bin/jest.js --config jest.unit.config.cjs",
84
+ "test:local-sandbox:contract": "pnpm run build:gen && NODE_OPTIONS='--conditions=trueforge-dev' node --env-file=.env.test ./node_modules/jest/bin/jest.js --config jest.local-sandbox.contract.config.cjs",
85
+ "smoke:local-sandbox": "pnpm run build:gen && NODE_OPTIONS='--conditions=trueforge-dev' jest --config jest.local-sandbox.smoke.config.cjs --runInBand --forceExit tests/sandbox/local/smoke.test.ts",
86
+ "smoke:local-sandbox:lima": "bash scripts/local-sandbox/smoke-lima.sh",
87
+ "probe:loopback": "pnpm exec tsx scripts/local-sandbox/probe-loopback.ts",
82
88
  "typecheck": "pnpm run build:gen && tsc --noEmit && tsc --noEmit -p tests/db/tsconfig.json && tsc --noEmit -p tests/unit/tsconfig.json"
83
89
  },
84
90
  "bin": {
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelSettings-2QB7LE22-CDZku4g3.js","assets/index-DWr7ad72.js","assets/index-DEKCw40W.css","assets/ConnectorSettings-XEO5ZQO5-BXis0tQK.js","assets/SkillSettings-5EETEEDI-DbJE0Ms2.js","assets/SandboxSettings-QDDIPRBP-CImJLa0r.js"])))=>i.map(i=>d[i]);
2
- import{g,i as v,k as y,l as j,m as S,r as l,j as e,I as p,f as _,e as f,_ as u,S as k}from"./index-DWr7ad72.js";var w=l.lazy(()=>u(()=>import("./ModelSettings-2QB7LE22-CDZku4g3.js"),__vite__mapDeps([0,1,2]))),E=l.lazy(()=>u(()=>import("./ConnectorSettings-XEO5ZQO5-BXis0tQK.js"),__vite__mapDeps([3,1,2]))),N=l.lazy(()=>u(()=>import("./SkillSettings-5EETEEDI-DbJE0Ms2.js"),__vite__mapDeps([4,1,2]))),C=l.lazy(()=>u(()=>import("./SandboxSettings-QDDIPRBP-CImJLa0r.js"),__vite__mapDeps([5,1,2])));function L(){return e.jsxs("div",{className:"flex flex-1 items-center justify-center py-8",role:"status","aria-live":"polite","aria-busy":"true",children:[e.jsx(k,{size:20,className:"text-text-secondary"}),e.jsx("span",{className:"sr-only",children:"Loading"})]})}var O=()=>{const{settingsOpen:a,settingsSection:t,setSettingsOpen:r}=g(),n=v(),d=y(),{refresh:m}=j(),i=S(),o=(n==null?void 0:n.skillCatalog)!=null,c=(n==null?void 0:n.sandboxCatalog)!=null,x=l.useCallback(()=>{r(!1),m(),d==null||d()},[m,d,r]);l.useEffect(()=>{!o&&t==="skills"&&r(a,"models"),!c&&t==="sandbox"&&r(a,"models")},[o,c,t,a,r]),l.useEffect(()=>{if(!a)return;const s=b=>{b.key==="Escape"&&(b.stopImmediatePropagation(),x())};return window.addEventListener("keydown",s,!0),()=>window.removeEventListener("keydown",s,!0)},[x,a]);const h=l.useMemo(()=>{const s=[{id:"models",label:"Models",icon:"cpu"},{id:"connectors",label:"Connectors",icon:"plug"}];return o&&s.push({id:"skills",label:"Skills",icon:"lightbulb"}),c&&s.push({id:"sandbox",label:"Sandbox providers",icon:"cube"}),s},[o,c]);return!a||!n?null:e.jsxs("div",{className:"flex h-full min-h-0 w-full flex-col bg-primary-bg",children:[e.jsxs("header",{className:"flex shrink-0 items-center gap-2 border-b border-border px-2 py-1.5",children:[e.jsx("button",{type:"button","aria-label":"Back",title:"Back",className:_({variant:"ghost",size:"icon"}),onClick:x,children:e.jsx(p,{name:"arrow-left"})}),e.jsx("h1",{className:"text-lg font-semibold tracking-tight text-text-primary",children:"Settings"})]}),e.jsxs("div",{className:f("flex min-h-0 flex-1 flex-col",!i&&"md:flex-row"),children:[e.jsx("nav",{"aria-label":"Settings sections",className:f("flex w-full gap-1 border-b border-border bg-secondary-bg/40 p-2",i?"min-w-0":"justify-center md:w-48 md:flex-col md:justify-start md:border-b-0 md:border-r"),children:h.map(s=>e.jsxs("button",{type:"button","aria-current":t===s.id?"page":void 0,...i?{title:s.label}:{},className:f("flex min-h-9 items-center gap-2 rounded-md px-3 text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-focus-ring",i?"min-w-0 flex-1 justify-center gap-1.5 px-1.5":"shrink-0",t===s.id?"bg-primary-button-bg text-primary-button-text":"text-text-secondary hover:bg-ghost-button-hover/60 hover:text-text-primary"),onClick:()=>{r(!0,s.id)},children:[e.jsx(p,{name:s.icon,className:"h-4 w-4 shrink-0"}),i?e.jsx("span",{className:"truncate",children:s.label}):s.label]},s.id))}),e.jsx("section",{className:"flex flex-col h-full flex-1 overflow-y-hidden px-6 py-4",children:e.jsx("div",{className:"w-full max-w-210 h-full min-h-0 flex flex-col mx-auto",children:e.jsxs(l.Suspense,{fallback:e.jsx(L,{}),children:[t==="models"?e.jsx(w,{}):null,t==="connectors"?e.jsx(E,{}):null,t==="skills"&&o?e.jsx(N,{}):null,t==="sandbox"&&c?e.jsx(C,{}):null]})})})]})]})},I=O;export{I as default};