aimeat 3.3.0 → 3.3.2

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 (141) hide show
  1. package/README.md +1 -1
  2. package/dist/.env.example +10 -1
  3. package/dist/build-stamp.json +4 -4
  4. package/dist/locales/en.json +9263 -9225
  5. package/dist/locales/es.json +9255 -9217
  6. package/dist/locales/fi.json +9263 -9225
  7. package/dist/public/css/views/admin.css +935 -860
  8. package/dist/public/css/views/chat.css +393 -388
  9. package/dist/public/js/services/admin.js +12 -0
  10. package/dist/public/robots.node.txt +4 -0
  11. package/dist/public/views/admin/config-tab.js +333 -185
  12. package/dist/public/views/admin/usage-tab.js +373 -307
  13. package/dist/public/views/chat/parts.js +25 -6
  14. package/dist/public/views/profile/landing-page.cards.js +732 -700
  15. package/dist/public/views/profile/landing-page.js +6 -2
  16. package/dist/scripts/audit-mcp-schemas.js +22 -6
  17. package/dist/scripts/audit-mcp-schemas.js.map +1 -1
  18. package/dist/scripts/check-ai-disclosure.d.ts +1 -1
  19. package/dist/scripts/check-ai-disclosure.d.ts.map +1 -1
  20. package/dist/scripts/check-ai-disclosure.js +19 -3
  21. package/dist/scripts/check-ai-disclosure.js.map +1 -1
  22. package/dist/scripts/check-config-coverage.d.ts +2 -0
  23. package/dist/scripts/check-config-coverage.d.ts.map +1 -0
  24. package/dist/scripts/check-config-coverage.js +129 -0
  25. package/dist/scripts/check-config-coverage.js.map +1 -0
  26. package/dist/src/auth/ai-gate.d.ts +25 -0
  27. package/dist/src/auth/ai-gate.d.ts.map +1 -0
  28. package/dist/src/auth/ai-gate.js +21 -0
  29. package/dist/src/auth/ai-gate.js.map +1 -0
  30. package/dist/src/cli/connect/mcp/tools/apps.d.ts.map +1 -1
  31. package/dist/src/cli/connect/mcp/tools/apps.js +102 -20
  32. package/dist/src/cli/connect/mcp/tools/apps.js.map +1 -1
  33. package/dist/src/cli/connect/tool-call-defs-agent.d.ts.map +1 -1
  34. package/dist/src/cli/connect/tool-call-defs-agent.js +38 -9
  35. package/dist/src/cli/connect/tool-call-defs-agent.js.map +1 -1
  36. package/dist/src/cli/connect/tool-call-defs-apps.d.ts.map +1 -1
  37. package/dist/src/cli/connect/tool-call-defs-apps.js +199 -103
  38. package/dist/src/cli/connect/tool-call-defs-apps.js.map +1 -1
  39. package/dist/src/cli/connect/tool-call-defs-core.d.ts.map +1 -1
  40. package/dist/src/cli/connect/tool-call-defs-core.js +149 -26
  41. package/dist/src/cli/connect/tool-call-defs-core.js.map +1 -1
  42. package/dist/src/cli/connect/tool-call-defs-organism.d.ts.map +1 -1
  43. package/dist/src/cli/connect/tool-call-defs-organism.js +20 -3
  44. package/dist/src/cli/connect/tool-call-defs-organism.js.map +1 -1
  45. package/dist/src/cli/connect/tool-call-defs-packages.d.ts +23 -0
  46. package/dist/src/cli/connect/tool-call-defs-packages.d.ts.map +1 -0
  47. package/dist/src/cli/connect/tool-call-defs-packages.js +45 -0
  48. package/dist/src/cli/connect/tool-call-defs-packages.js.map +1 -0
  49. package/dist/src/cli/connect/tool-call-defs-workflows.d.ts +14 -0
  50. package/dist/src/cli/connect/tool-call-defs-workflows.d.ts.map +1 -0
  51. package/dist/src/cli/connect/tool-call-defs-workflows.js +75 -0
  52. package/dist/src/cli/connect/tool-call-defs-workflows.js.map +1 -0
  53. package/dist/src/cli/connect/tool-call.d.ts.map +1 -1
  54. package/dist/src/cli/connect/tool-call.js +54 -1
  55. package/dist/src/cli/connect/tool-call.js.map +1 -1
  56. package/dist/src/config-types-ai.d.ts +13 -0
  57. package/dist/src/config-types-ai.d.ts.map +1 -1
  58. package/dist/src/config.d.ts.map +1 -1
  59. package/dist/src/config.js +2 -0
  60. package/dist/src/config.js.map +1 -1
  61. package/dist/src/generated/api-types.d.ts +196 -0
  62. package/dist/src/generated/api-types.d.ts.map +1 -1
  63. package/dist/src/mcp/annotations.d.ts.map +1 -1
  64. package/dist/src/mcp/annotations.js +8 -0
  65. package/dist/src/mcp/annotations.js.map +1 -1
  66. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.d.ts.map +1 -1
  67. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js +25 -8
  68. package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
  69. package/dist/src/mcp/catalog/definitions/packages.d.ts +17 -0
  70. package/dist/src/mcp/catalog/definitions/packages.d.ts.map +1 -0
  71. package/dist/src/mcp/catalog/definitions/packages.js +46 -0
  72. package/dist/src/mcp/catalog/definitions/packages.js.map +1 -0
  73. package/dist/src/mcp/catalog/definitions.d.ts.map +1 -1
  74. package/dist/src/mcp/catalog/definitions.js +2 -0
  75. package/dist/src/mcp/catalog/definitions.js.map +1 -1
  76. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  77. package/dist/src/mcp/catalog/scopes.js +2 -0
  78. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  79. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  80. package/dist/src/mcp/catalog/surfaces.js +2 -0
  81. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  82. package/dist/src/routes/admin-usage.d.ts.map +1 -1
  83. package/dist/src/routes/admin-usage.js +57 -0
  84. package/dist/src/routes/admin-usage.js.map +1 -1
  85. package/dist/src/routes/ai.d.ts.map +1 -1
  86. package/dist/src/routes/ai.js +4 -15
  87. package/dist/src/routes/ai.js.map +1 -1
  88. package/dist/src/routes/bootstrap.d.ts +2 -1
  89. package/dist/src/routes/bootstrap.d.ts.map +1 -1
  90. package/dist/src/routes/bootstrap.js +7 -18
  91. package/dist/src/routes/bootstrap.js.map +1 -1
  92. package/dist/src/routes/chat.d.ts +3 -0
  93. package/dist/src/routes/chat.d.ts.map +1 -1
  94. package/dist/src/routes/chat.js +20 -0
  95. package/dist/src/routes/chat.js.map +1 -1
  96. package/dist/src/routes/llm-proxy.d.ts +34 -0
  97. package/dist/src/routes/llm-proxy.d.ts.map +1 -0
  98. package/dist/src/routes/llm-proxy.js +258 -0
  99. package/dist/src/routes/llm-proxy.js.map +1 -0
  100. package/dist/src/routes/sitemaps.d.ts +22 -0
  101. package/dist/src/routes/sitemaps.d.ts.map +1 -0
  102. package/dist/src/routes/sitemaps.js +67 -0
  103. package/dist/src/routes/sitemaps.js.map +1 -0
  104. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  105. package/dist/src/server-bootstrap/routes-loader.js +2 -0
  106. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  107. package/dist/src/services/ai-completion.d.ts +76 -0
  108. package/dist/src/services/ai-completion.d.ts.map +1 -1
  109. package/dist/src/services/ai-completion.js +104 -68
  110. package/dist/src/services/ai-completion.js.map +1 -1
  111. package/dist/src/services/chat-session.d.ts +3 -0
  112. package/dist/src/services/chat-session.d.ts.map +1 -1
  113. package/dist/src/services/chat-session.js +4 -0
  114. package/dist/src/services/chat-session.js.map +1 -1
  115. package/dist/src/services/config-schema.d.ts +4 -0
  116. package/dist/src/services/config-schema.d.ts.map +1 -1
  117. package/dist/src/services/config-schema.js +33 -0
  118. package/dist/src/services/config-schema.js.map +1 -1
  119. package/dist/src/services/goose-acp.d.ts.map +1 -1
  120. package/dist/src/services/goose-acp.js +11 -0
  121. package/dist/src/services/goose-acp.js.map +1 -1
  122. package/dist/src/services/handbooks/appdev.d.ts +1 -1
  123. package/dist/src/services/handbooks/appdev.d.ts.map +1 -1
  124. package/dist/src/services/handbooks/appdev.js +7 -1
  125. package/dist/src/services/handbooks/appdev.js.map +1 -1
  126. package/dist/src/services/openrouter.d.ts +23 -0
  127. package/dist/src/services/openrouter.d.ts.map +1 -1
  128. package/dist/src/services/openrouter.js +32 -1
  129. package/dist/src/services/openrouter.js.map +1 -1
  130. package/dist/src/services/usage-summary.d.ts +15 -0
  131. package/dist/src/services/usage-summary.d.ts.map +1 -1
  132. package/dist/src/services/usage-summary.js +15 -0
  133. package/dist/src/services/usage-summary.js.map +1 -1
  134. package/dist/src/storage/providers/postgres-kysely/methods/wallet.d.ts.map +1 -1
  135. package/dist/src/storage/providers/postgres-kysely/methods/wallet.js +23 -4
  136. package/dist/src/storage/providers/postgres-kysely/methods/wallet.js.map +1 -1
  137. package/dist/src/storage/providers/sqlite/methods/work.d.ts +5 -0
  138. package/dist/src/storage/providers/sqlite/methods/work.d.ts.map +1 -1
  139. package/dist/src/storage/providers/sqlite/methods/work.js +34 -22
  140. package/dist/src/storage/providers/sqlite/methods/work.js.map +1 -1
  141. package/package.json +4 -1
@@ -1360,6 +1360,64 @@ export interface paths {
1360
1360
  patch?: never;
1361
1361
  trace?: never;
1362
1362
  };
1363
+ "/v1/llm/chat/completions": {
1364
+ parameters: {
1365
+ query?: never;
1366
+ header?: never;
1367
+ path?: never;
1368
+ cookie?: never;
1369
+ };
1370
+ get?: never;
1371
+ put?: never;
1372
+ /**
1373
+ * One completion, in OpenAI's request shape
1374
+ * @description For an agent that speaks OpenAI's dialect and would otherwise call a provider directly. Point
1375
+ * it at `<node>/v1/llm` as its base URL and every call goes through the same gate
1376
+ * `POST /v1/ai/complete` goes through: the owner's own key first and the node's allowance
1377
+ * second, the daily budget, the per-app quota, the usage record, and the free-model fallback
1378
+ * when the allowance is spent.
1379
+ *
1380
+ * `model` in the request is ignored on purpose. The node is the one that knows whose money this
1381
+ * is and how much is left, so the owner's own preference decides and the node's default for the
1382
+ * role follows; the response says which model actually ran. Honouring the caller's name would
1383
+ * also disable the free-model fallback, which is deliberately left alone for an explicit model.
1384
+ *
1385
+ * `tools`, `tool_choice` and `response_format` pass through untouched — the node has no opinion
1386
+ * about which tools a caller offers its own model. With `stream: true` the provider's own
1387
+ * `text/event-stream` frames are forwarded byte for byte, so any client that understands
1388
+ * OpenAI's stream understands this one.
1389
+ *
1390
+ * Requires an owner session or a token carrying `ai:use`.
1391
+ */
1392
+ post: operations["llmProxyChatCompletion"];
1393
+ delete?: never;
1394
+ options?: never;
1395
+ head?: never;
1396
+ patch?: never;
1397
+ trace?: never;
1398
+ };
1399
+ "/v1/llm/models": {
1400
+ parameters: {
1401
+ query?: never;
1402
+ header?: never;
1403
+ path?: never;
1404
+ cookie?: never;
1405
+ };
1406
+ /**
1407
+ * The models this node will actually run
1408
+ * @description OpenAI's model-list shape, for a client that asks before it asks for anything else. The list
1409
+ * comes from the provider through the same service the node's own model pickers use, so a model
1410
+ * that appears here is one the node can reach. Requires an owner session or `ai:use`.
1411
+ */
1412
+ get: operations["llmProxyListModels"];
1413
+ put?: never;
1414
+ post?: never;
1415
+ delete?: never;
1416
+ options?: never;
1417
+ head?: never;
1418
+ patch?: never;
1419
+ trace?: never;
1420
+ };
1363
1421
  "/v1/chat/status": {
1364
1422
  parameters: {
1365
1423
  query?: never;
@@ -5979,6 +6037,26 @@ export interface paths {
5979
6037
  patch?: never;
5980
6038
  trace?: never;
5981
6039
  };
6040
+ "/sitemap-index.xml": {
6041
+ parameters: {
6042
+ query?: never;
6043
+ header?: never;
6044
+ path?: never;
6045
+ cookie?: never;
6046
+ };
6047
+ /**
6048
+ * Sitemap index over the node and every published app
6049
+ * @description A sitemaps.org sitemapindex built from the current state on every request: this node's own page sitemap, then the sitemap of each published app that is public and ungated. Every app lives on its own host and serves a valid sitemap.xml there with a robots.txt naming it, which is what makes the cross-host entries legitimate; the index is the only thing on the apex that tells a crawler those hosts exist at all. Parked and operator-hidden apps are excluded by the anonymous listing, and an app behind an access code or a price is excluded deliberately: its origin serves the NODE's agent documents rather than its own, so listing it would advertise a host that refuses to describe what was advertised. /sitemap.xml is unchanged and still holds exactly the page registry. Apex only.
6050
+ */
6051
+ get: operations["sitemapIndex"];
6052
+ put?: never;
6053
+ post?: never;
6054
+ delete?: never;
6055
+ options?: never;
6056
+ head?: never;
6057
+ patch?: never;
6058
+ trace?: never;
6059
+ };
5982
6060
  "/AGENTS.md": {
5983
6061
  parameters: {
5984
6062
  query?: never;
@@ -26397,6 +26475,104 @@ export interface operations {
26397
26475
  404: components["responses"]["NotFound"];
26398
26476
  };
26399
26477
  };
26478
+ llmProxyChatCompletion: {
26479
+ parameters: {
26480
+ query?: never;
26481
+ header?: never;
26482
+ path?: never;
26483
+ cookie?: never;
26484
+ };
26485
+ requestBody: {
26486
+ content: {
26487
+ "application/json": {
26488
+ /** @description OpenAI chat messages. */
26489
+ messages: Record<string, never>[];
26490
+ /** @description Forward the provider's SSE frames as they arrive. */
26491
+ stream?: boolean;
26492
+ temperature?: number;
26493
+ top_p?: number;
26494
+ max_tokens?: number;
26495
+ tools?: Record<string, never>[];
26496
+ tool_choice?: unknown;
26497
+ response_format?: Record<string, never>;
26498
+ };
26499
+ };
26500
+ };
26501
+ responses: {
26502
+ /** @description An OpenAI chat completion, or its SSE stream when `stream` is true */
26503
+ 200: {
26504
+ headers: {
26505
+ [name: string]: unknown;
26506
+ };
26507
+ content: {
26508
+ "application/json": Record<string, never>;
26509
+ "text/event-stream": string;
26510
+ };
26511
+ };
26512
+ /** @description messages is missing, or no key is configured for this owner */
26513
+ 400: {
26514
+ headers: {
26515
+ [name: string]: unknown;
26516
+ };
26517
+ content?: never;
26518
+ };
26519
+ 401: components["responses"]["Unauthorized"];
26520
+ /** @description The allowance is spent and this node has no free-model fallback configured */
26521
+ 402: {
26522
+ headers: {
26523
+ [name: string]: unknown;
26524
+ };
26525
+ content?: never;
26526
+ };
26527
+ /** @description Not an owner session and no ai:use scope */
26528
+ 403: {
26529
+ headers: {
26530
+ [name: string]: unknown;
26531
+ };
26532
+ content?: never;
26533
+ };
26534
+ /** @description The model is rate limited. Free models reach this first. */
26535
+ 429: {
26536
+ headers: {
26537
+ [name: string]: unknown;
26538
+ };
26539
+ content?: never;
26540
+ };
26541
+ /** @description The model is overloaded, unavailable, or answered with an error */
26542
+ 502: {
26543
+ headers: {
26544
+ [name: string]: unknown;
26545
+ };
26546
+ content?: never;
26547
+ };
26548
+ };
26549
+ };
26550
+ llmProxyListModels: {
26551
+ parameters: {
26552
+ query?: never;
26553
+ header?: never;
26554
+ path?: never;
26555
+ cookie?: never;
26556
+ };
26557
+ requestBody?: never;
26558
+ responses: {
26559
+ /** @description `{ object: "list", data: [{ id, object, owned_by }] }` */
26560
+ 200: {
26561
+ headers: {
26562
+ [name: string]: unknown;
26563
+ };
26564
+ content?: never;
26565
+ };
26566
+ 401: components["responses"]["Unauthorized"];
26567
+ /** @description Not an owner session and no ai:use scope */
26568
+ 403: {
26569
+ headers: {
26570
+ [name: string]: unknown;
26571
+ };
26572
+ content?: never;
26573
+ };
26574
+ };
26575
+ };
26400
26576
  getChatStatus: {
26401
26577
  parameters: {
26402
26578
  query?: never;
@@ -33494,6 +33670,26 @@ export interface operations {
33494
33670
  };
33495
33671
  };
33496
33672
  };
33673
+ sitemapIndex: {
33674
+ parameters: {
33675
+ query?: never;
33676
+ header?: never;
33677
+ path?: never;
33678
+ cookie?: never;
33679
+ };
33680
+ requestBody?: never;
33681
+ responses: {
33682
+ /** @description Sitemap index */
33683
+ 200: {
33684
+ headers: {
33685
+ [name: string]: unknown;
33686
+ };
33687
+ content: {
33688
+ "application/xml": string;
33689
+ };
33690
+ };
33691
+ };
33692
+ };
33497
33693
  agentsMd: {
33498
33694
  parameters: {
33499
33695
  query?: never;