@antelopejs/dms-ai 0.4.0 → 0.5.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 (125) hide show
  1. package/README.md +5 -3
  2. package/dist/constants/database.d.ts +7 -0
  3. package/dist/constants/database.js +11 -0
  4. package/dist/constants/database.js.map +1 -0
  5. package/dist/constants/pages.d.ts +3 -0
  6. package/dist/constants/pages.js +3 -0
  7. package/dist/constants/pages.js.map +1 -1
  8. package/dist/database/catalog.d.ts +4 -0
  9. package/dist/database/catalog.js +25 -0
  10. package/dist/database/catalog.js.map +1 -0
  11. package/dist/logging/log-buffer.js +1 -1
  12. package/dist/logging/log-buffer.js.map +1 -1
  13. package/dist/pages/settings/page.d.ts +1 -0
  14. package/dist/pages/settings/page.js +1 -0
  15. package/dist/pages/settings/page.js.map +1 -1
  16. package/dist/routes/builder.js +8 -0
  17. package/dist/routes/builder.js.map +1 -1
  18. package/dist/routes/codex-account.d.ts +8 -0
  19. package/dist/routes/codex-account.js +162 -0
  20. package/dist/routes/codex-account.js.map +1 -0
  21. package/dist/routes/database.d.ts +21 -0
  22. package/dist/routes/database.js +115 -0
  23. package/dist/routes/database.js.map +1 -0
  24. package/dist/routes/index.d.ts +2 -0
  25. package/dist/routes/index.js +2 -0
  26. package/dist/routes/index.js.map +1 -1
  27. package/frontend-vue/app/chat/utils/tool-lexicon.ts +46 -0
  28. package/frontend-vue/app/runtime/session-gate.ts +11 -5
  29. package/frontend-vue/i18n/locales/dms-ai-pages-en-GB.json +30 -1
  30. package/frontend-vue/i18n/locales/dms-ai-pages-fr-FR.json +30 -1
  31. package/frontend-vue/i18n/locales/dms-ai-panel-en-GB.json +8 -0
  32. package/frontend-vue/i18n/locales/dms-ai-panel-fr-FR.json +8 -0
  33. package/frontend-vue/package.json +1 -1
  34. package/frontend-vue/tests/panel-states.test.ts +1 -1
  35. package/frontend-vue/tests/session-gate.test.ts +28 -1
  36. package/package.json +6 -5
  37. package/sidecar/dist/agent/permission-preview.js +49 -2
  38. package/sidecar/dist/agent/permission-preview.js.map +1 -1
  39. package/sidecar/dist/agent/tool-kinds.d.ts +1 -0
  40. package/sidecar/dist/agent/tool-kinds.js +2 -1
  41. package/sidecar/dist/agent/tool-kinds.js.map +1 -1
  42. package/sidecar/dist/constants/builder.d.ts +7 -1
  43. package/sidecar/dist/constants/builder.js +10 -0
  44. package/sidecar/dist/constants/builder.js.map +1 -1
  45. package/sidecar/dist/constants/chatgpt.d.ts +39 -0
  46. package/sidecar/dist/constants/chatgpt.js +55 -0
  47. package/sidecar/dist/constants/chatgpt.js.map +1 -0
  48. package/sidecar/dist/constants/codex.d.ts +4 -5
  49. package/sidecar/dist/constants/codex.js +4 -5
  50. package/sidecar/dist/constants/codex.js.map +1 -1
  51. package/sidecar/dist/constants/database.d.ts +11 -0
  52. package/sidecar/dist/constants/database.js +17 -0
  53. package/sidecar/dist/constants/database.js.map +1 -0
  54. package/sidecar/dist/constants/http.d.ts +3 -0
  55. package/sidecar/dist/constants/http.js +3 -0
  56. package/sidecar/dist/constants/http.js.map +1 -1
  57. package/sidecar/dist/constants/mcp.js +2 -0
  58. package/sidecar/dist/constants/mcp.js.map +1 -1
  59. package/sidecar/dist/constants/providers.d.ts +1 -1
  60. package/sidecar/dist/constants/providers.js +1 -1
  61. package/sidecar/dist/constants/providers.js.map +1 -1
  62. package/sidecar/dist/constants/tool-kinds.d.ts +1 -0
  63. package/sidecar/dist/constants/tool-kinds.js +7 -0
  64. package/sidecar/dist/constants/tool-kinds.js.map +1 -1
  65. package/sidecar/dist/database/database-client.d.ts +11 -0
  66. package/sidecar/dist/database/database-client.js +50 -0
  67. package/sidecar/dist/database/database-client.js.map +1 -0
  68. package/sidecar/dist/index.js +6 -0
  69. package/sidecar/dist/index.js.map +1 -1
  70. package/sidecar/dist/mcp/tool-definitions.js +2 -0
  71. package/sidecar/dist/mcp/tool-definitions.js.map +1 -1
  72. package/sidecar/dist/mcp/tools/builder-gate.js +3 -1
  73. package/sidecar/dist/mcp/tools/builder-gate.js.map +1 -1
  74. package/sidecar/dist/mcp/tools/builder-project.d.ts +8 -0
  75. package/sidecar/dist/mcp/tools/builder-project.js +181 -0
  76. package/sidecar/dist/mcp/tools/builder-project.js.map +1 -0
  77. package/sidecar/dist/mcp/tools/builder.d.ts +5 -2
  78. package/sidecar/dist/mcp/tools/builder.js +5 -11
  79. package/sidecar/dist/mcp/tools/builder.js.map +1 -1
  80. package/sidecar/dist/mcp/tools/database.d.ts +6 -0
  81. package/sidecar/dist/mcp/tools/database.js +42 -0
  82. package/sidecar/dist/mcp/tools/database.js.map +1 -0
  83. package/sidecar/dist/mcp/types.d.ts +2 -0
  84. package/sidecar/dist/providers/claude/safe-mode.js +11 -1
  85. package/sidecar/dist/providers/claude/safe-mode.js.map +1 -1
  86. package/sidecar/dist/providers/codex/chatgpt/credentials.d.ts +10 -0
  87. package/sidecar/dist/providers/codex/chatgpt/credentials.js +63 -0
  88. package/sidecar/dist/providers/codex/chatgpt/credentials.js.map +1 -0
  89. package/sidecar/dist/providers/codex/chatgpt/http.d.ts +3 -0
  90. package/sidecar/dist/providers/codex/chatgpt/http.js +66 -0
  91. package/sidecar/dist/providers/codex/chatgpt/http.js.map +1 -0
  92. package/sidecar/dist/providers/codex/chatgpt/lock.d.ts +1 -0
  93. package/sidecar/dist/providers/codex/chatgpt/lock.js +58 -0
  94. package/sidecar/dist/providers/codex/chatgpt/lock.js.map +1 -0
  95. package/sidecar/dist/providers/codex/chatgpt/login.d.ts +8 -0
  96. package/sidecar/dist/providers/codex/chatgpt/login.js +138 -0
  97. package/sidecar/dist/providers/codex/chatgpt/login.js.map +1 -0
  98. package/sidecar/dist/providers/codex/chatgpt/oauth.d.ts +38 -0
  99. package/sidecar/dist/providers/codex/chatgpt/oauth.js +167 -0
  100. package/sidecar/dist/providers/codex/chatgpt/oauth.js.map +1 -0
  101. package/sidecar/dist/providers/codex/chatgpt/store.d.ts +21 -0
  102. package/sidecar/dist/providers/codex/chatgpt/store.js +75 -0
  103. package/sidecar/dist/providers/codex/chatgpt/store.js.map +1 -0
  104. package/sidecar/dist/providers/codex/config.d.ts +1 -5
  105. package/sidecar/dist/providers/codex/config.js +27 -4
  106. package/sidecar/dist/providers/codex/config.js.map +1 -1
  107. package/sidecar/dist/providers/codex/module.js +11 -4
  108. package/sidecar/dist/providers/codex/module.js.map +1 -1
  109. package/sidecar/dist/providers/codex/process.d.ts +1 -1
  110. package/sidecar/dist/providers/codex/process.js +7 -3
  111. package/sidecar/dist/providers/codex/process.js.map +1 -1
  112. package/sidecar/dist/providers/codex/provider.d.ts +0 -1
  113. package/sidecar/dist/providers/codex/provider.js +7 -5
  114. package/sidecar/dist/providers/codex/provider.js.map +1 -1
  115. package/sidecar/dist/server/http.js +38 -0
  116. package/sidecar/dist/server/http.js.map +1 -1
  117. package/sidecar/dist/server/permission-events.js +3 -1
  118. package/sidecar/dist/server/permission-events.js.map +1 -1
  119. package/sidecar/dist/server/raw-data.js +1 -1
  120. package/sidecar/dist/server/raw-data.js.map +1 -1
  121. package/sidecar/dist/server/safety-net.js +1 -1
  122. package/sidecar/dist/server/safety-net.js.map +1 -1
  123. package/skills/dms-ai/SKILL.md +1 -1
  124. package/skills/dms-external-database/REFERENCE.md +132 -0
  125. package/skills/dms-external-database/SKILL.md +142 -0
package/README.md CHANGED
@@ -46,7 +46,7 @@ Point the sidecar at the origin the `api` module reserved:
46
46
  },
47
47
  ```
48
48
 
49
- Claude Code runs with its own credentials (its login, or `ANTHROPIC_API_KEY` in the backend's environment). Restart the backend, then the frontend, sign in as an owner and press `Ctrl` `Shift` `K` (`⌘` `⇧` `K` on macOS). Set `DMS_AI=0` to start the backend without the sidecar.
49
+ Claude Code runs with its own credentials (its login, or `ANTHROPIC_API_KEY` in the backend's environment). Codex runs on your ChatGPT plan: install `@openai/codex` at the pinned version, then press **Sign in with ChatGPT** in Assistant › Settings (on a remote DMS, paste the address OpenAI sends you back to with **Paste the return address**). No OpenAI API key is used. Restart the backend, then the frontend, sign in as an owner and press `Ctrl` `Shift` `K` (`⌘` `⇧` `K` on macOS). Set `DMS_AI=0` to start the backend without the sidecar.
50
50
 
51
51
  ## Compatibility
52
52
 
@@ -74,9 +74,11 @@ The guide's sources live in [`docs/`](./docs). The package ships the `dms-ai`, `
74
74
 
75
75
  Read [CONTRIBUTING.md](./CONTRIBUTING.md) before opening a pull request.
76
76
 
77
+ One install from the repository root includes the backend, shipped Vue frontend and sidecar. Each keeps its own lockfile. The playground remains independent and needs its own install for local development. Builds use the installed dependencies and do not install them again.
78
+
77
79
  ```bash
78
- pnpm install
79
- pnpm --dir frontend-vue install
80
+ pnpm install --frozen-lockfile
81
+ pnpm --dir playground install --frozen-lockfile --ignore-workspace
80
82
  pnpm build
81
83
  pnpm build:sidecar
82
84
  pnpm dev # playground backend
@@ -0,0 +1,7 @@
1
+ export declare const CATALOG_INTERFACE = "@antelopejs/interface-database-catalog";
2
+ export declare const DATABASE_CONNECTIONS_PATH = "/database/connections";
3
+ export declare const DATABASE_RELATIONS_PATH = "/database/relations";
4
+ export declare const DATABASE_DESCRIBE_PATH = "/database/describe";
5
+ export declare const DATABASE_PROFILE_PATH = "/database/profile";
6
+ export declare const HTTP_NOT_FOUND = 404;
7
+ export declare const HTTP_CATALOG_FAILED = 422;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HTTP_CATALOG_FAILED = exports.HTTP_NOT_FOUND = exports.DATABASE_PROFILE_PATH = exports.DATABASE_DESCRIBE_PATH = exports.DATABASE_RELATIONS_PATH = exports.DATABASE_CONNECTIONS_PATH = exports.CATALOG_INTERFACE = void 0;
4
+ exports.CATALOG_INTERFACE = "@antelopejs/interface-database-catalog";
5
+ exports.DATABASE_CONNECTIONS_PATH = "/database/connections";
6
+ exports.DATABASE_RELATIONS_PATH = "/database/relations";
7
+ exports.DATABASE_DESCRIBE_PATH = "/database/describe";
8
+ exports.DATABASE_PROFILE_PATH = "/database/profile";
9
+ exports.HTTP_NOT_FOUND = 404;
10
+ exports.HTTP_CATALOG_FAILED = 422;
11
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/constants/database.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,wCAAwC,CAAC;AAC7D,QAAA,yBAAyB,GAAG,uBAAuB,CAAC;AACpD,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;AAChD,QAAA,sBAAsB,GAAG,oBAAoB,CAAC;AAC9C,QAAA,qBAAqB,GAAG,mBAAmB,CAAC;AAC5C,QAAA,cAAc,GAAG,GAAG,CAAC;AACrB,QAAA,mBAAmB,GAAG,GAAG,CAAC"}
@@ -24,6 +24,9 @@ export declare const PAGE_ROUTES: {
24
24
  readonly STATUS_FACTS: "/ai/status/facts";
25
25
  readonly STATUS_BANNER: "/ai/status/banner";
26
26
  readonly SIDECAR_RESTART: "/ai/sidecar/restart";
27
+ readonly CODEX_ACCOUNT_BANNER: "/ai/codex/account/banner";
28
+ readonly CODEX_LOGOUT: "/ai/codex/logout";
29
+ readonly CODEX_CALLBACK: "/ai/codex/callback";
27
30
  readonly KPI: "/ai/metrics/kpi";
28
31
  readonly SERIES: "/ai/metrics/series";
29
32
  readonly ALLOWED: "/ai/metrics/allowed";
@@ -31,6 +31,9 @@ exports.PAGE_ROUTES = {
31
31
  STATUS_FACTS: `${module_1.ROUTE_PREFIX}/status/facts`,
32
32
  STATUS_BANNER: `${module_1.ROUTE_PREFIX}/status/banner`,
33
33
  SIDECAR_RESTART: `${module_1.ROUTE_PREFIX}/sidecar/restart`,
34
+ CODEX_ACCOUNT_BANNER: `${module_1.ROUTE_PREFIX}/codex/account/banner`,
35
+ CODEX_LOGOUT: `${module_1.ROUTE_PREFIX}/codex/logout`,
36
+ CODEX_CALLBACK: `${module_1.ROUTE_PREFIX}/codex/callback`,
34
37
  KPI: `${module_1.ROUTE_PREFIX}/metrics/kpi`,
35
38
  SERIES: `${module_1.ROUTE_PREFIX}/metrics/series`,
36
39
  ALLOWED: `${module_1.ROUTE_PREFIX}/metrics/allowed`,
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/constants/pages.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AAE3B,QAAA,cAAc,GAAG,cAAc,CAAC;AAChC,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAGjD,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAE3B,QAAA,QAAQ,GAAG;IACtB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEE,QAAA,UAAU,GAAG;IACxB,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;CACH,CAAC;AAGE,QAAA,qBAAqB,GAAG,aAAa,CAAC;AAGtC,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEvB,QAAA,eAAe,GAAG,CAAC,CAAC;AAEpB,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC,MAAM,UAAU,GAAG,EAAE,CAAC;AAGtB,MAAM,iBAAiB,GAAG,UAAU,CAAC;AACxB,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AAGnC,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,GAAG,qBAAY,SAAS;IAChC,YAAY,EAAE,GAAG,qBAAY,eAAe;IAC5C,aAAa,EAAE,GAAG,qBAAY,gBAAgB;IAC9C,eAAe,EAAE,GAAG,qBAAY,kBAAkB;IAClD,GAAG,EAAE,GAAG,qBAAY,cAAc;IAClC,MAAM,EAAE,GAAG,qBAAY,iBAAiB;IACxC,OAAO,EAAE,GAAG,qBAAY,kBAAkB;IAC1C,SAAS,EAAE,GAAG,qBAAY,4BAA4B,uBAAe,EAAE;IACvE,KAAK,EAAE,GAAG,qBAAY,uBAAuB,UAAU,EAAE;IACzD,aAAa,EAAE,GAAG,qBAAY,+BAA+B,UAAU,EAAE;IACzE,OAAO,EAAE,GAAG,qBAAY,UAAU;IAClC,cAAc,EAAE,GAAG,qBAAY,iBAAiB;IAChD,WAAW,EAAE,GAAG,qBAAY,2BAA2B;IACvD,mBAAmB,EAAE,GAAG,qBAAY,mCAAmC;IACvE,WAAW,EAAE,GAAG,qBAAY,2BAA2B;IACvD,QAAQ,EAAE,GAAG,qBAAY,WAAW;IACpC,eAAe,EAAE,GAAG,qBAAY,sBAAsB;IACtD,cAAc,EAAE,GAAG,qBAAY,iBAAiB;IAChD,eAAe,EAAE,GAAG,qBAAY,mBAAmB;IACnD,QAAQ,EAAE,GAAG,qBAAY,WAAW;CAC5B,CAAC;AAGE,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,OAAO,EAAE;IACnD,UAAU,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,OAAO,kBAAkB;IACtE,QAAQ,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,QAAQ,EAAE;IACrD,QAAQ,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,QAAQ,EAAE;IACrD,cAAc,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,QAAQ,aAAa,iBAAiB,YAAY,+BAAuB,EAAE;CACpH,CAAC"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/constants/pages.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AAE3B,QAAA,cAAc,GAAG,cAAc,CAAC;AAChC,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAGjD,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAE3B,QAAA,QAAQ,GAAG;IACtB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEE,QAAA,UAAU,GAAG;IACxB,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;CACH,CAAC;AAGE,QAAA,qBAAqB,GAAG,aAAa,CAAC;AAGtC,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAEvB,QAAA,eAAe,GAAG,CAAC,CAAC;AAEpB,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAErC,MAAM,UAAU,GAAG,EAAE,CAAC;AAGtB,MAAM,iBAAiB,GAAG,UAAU,CAAC;AACxB,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AAGnC,QAAA,WAAW,GAAG;IACzB,MAAM,EAAE,GAAG,qBAAY,SAAS;IAChC,YAAY,EAAE,GAAG,qBAAY,eAAe;IAC5C,aAAa,EAAE,GAAG,qBAAY,gBAAgB;IAC9C,eAAe,EAAE,GAAG,qBAAY,kBAAkB;IAClD,oBAAoB,EAAE,GAAG,qBAAY,uBAAuB;IAC5D,YAAY,EAAE,GAAG,qBAAY,eAAe;IAC5C,cAAc,EAAE,GAAG,qBAAY,iBAAiB;IAChD,GAAG,EAAE,GAAG,qBAAY,cAAc;IAClC,MAAM,EAAE,GAAG,qBAAY,iBAAiB;IACxC,OAAO,EAAE,GAAG,qBAAY,kBAAkB;IAC1C,SAAS,EAAE,GAAG,qBAAY,4BAA4B,uBAAe,EAAE;IACvE,KAAK,EAAE,GAAG,qBAAY,uBAAuB,UAAU,EAAE;IACzD,aAAa,EAAE,GAAG,qBAAY,+BAA+B,UAAU,EAAE;IACzE,OAAO,EAAE,GAAG,qBAAY,UAAU;IAClC,cAAc,EAAE,GAAG,qBAAY,iBAAiB;IAChD,WAAW,EAAE,GAAG,qBAAY,2BAA2B;IACvD,mBAAmB,EAAE,GAAG,qBAAY,mCAAmC;IACvE,WAAW,EAAE,GAAG,qBAAY,2BAA2B;IACvD,QAAQ,EAAE,GAAG,qBAAY,WAAW;IACpC,eAAe,EAAE,GAAG,qBAAY,sBAAsB;IACtD,cAAc,EAAE,GAAG,qBAAY,iBAAiB;IAChD,eAAe,EAAE,GAAG,qBAAY,mBAAmB;IACnD,QAAQ,EAAE,GAAG,qBAAY,WAAW;CAC5B,CAAC;AAGE,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,OAAO,EAAE;IACnD,UAAU,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,OAAO,kBAAkB;IACtE,QAAQ,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,QAAQ,EAAE;IACrD,QAAQ,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,QAAQ,EAAE;IACrD,cAAc,EAAE,GAAG,iBAAiB,IAAI,gBAAQ,CAAC,QAAQ,aAAa,iBAAiB,YAAY,+BAAuB,EAAE;CACpH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type * as Catalog from "@antelopejs/interface-database-catalog";
2
+ export type CatalogConnection = typeof Catalog;
3
+ export declare function listConnections(): string[];
4
+ export declare function catalogOf(id: string): CatalogConnection | undefined;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listConnections = listConnections;
4
+ exports.catalogOf = catalogOf;
5
+ const interface_core_1 = require("@antelopejs/interface-core");
6
+ const database_1 = require("../constants/database");
7
+ const OWN_MODULE = (0, interface_core_1.GetResponsibleModule)();
8
+ function catalogConnections() {
9
+ const lookup = () => (0, interface_core_1.GetInterfaceInstances)(database_1.CATALOG_INTERFACE);
10
+ return OWN_MODULE === undefined
11
+ ? lookup()
12
+ : (0, interface_core_1.RunWithResponsibleModule)(OWN_MODULE, lookup);
13
+ }
14
+ function listConnections() {
15
+ return catalogConnections()
16
+ .map((connection) => connection.id)
17
+ .filter((id) => typeof id === "string" && id.length > 0);
18
+ }
19
+ function catalogOf(id) {
20
+ const connection = catalogConnections().find((candidate) => candidate.id === id);
21
+ return connection
22
+ ? require(connection.path)
23
+ : undefined;
24
+ }
25
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/database/catalog.ts"],"names":[],"mappings":";;AA+BA,0CAIC;AAGD,8BAOC;AA7CD,+DAKoC;AAEpC,oDAA0D;AAO1D,MAAM,UAAU,GAAG,IAAA,qCAAoB,GAAE,CAAC;AAE1C,SAAS,kBAAkB;IACzB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,sCAAqB,EAAC,4BAAiB,CAAC,CAAC;IAC9D,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,MAAM,EAAE;QACV,CAAC,CAAC,IAAA,yCAAwB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAUD,SAAgB,eAAe;IAC7B,OAAO,kBAAkB,EAAE;SACxB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;SAClC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3E,CAAC;AAGD,SAAgB,SAAS,CAAC,EAAU;IAClC,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC,IAAI,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CACnC,CAAC;IACF,OAAO,UAAU;QACf,CAAC,CAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAuB;QACjD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -17,7 +17,7 @@ function sanitizeArg(arg) {
17
17
  return arg;
18
18
  }
19
19
  catch {
20
- return String(arg);
20
+ return arg.toString();
21
21
  }
22
22
  }
23
23
  return arg;
@@ -1 +1 @@
1
- {"version":3,"file":"log-buffer.js","sourceRoot":"","sources":["../../src/logging/log-buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-buffer.js","sourceRoot":"","sources":["../../src/logging/log-buffer.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ declare const AISettingsPage_base: {
4
4
  location: string;
5
5
  };
6
6
  export declare class AISettingsPage extends AISettingsPage_base {
7
+ static chatgpt: import("@antelopejs/interface-dms").ComponentBuilder<import("@antelopejs/interface-dms/base").BannerProps>;
7
8
  static settings: import("@antelopejs/interface-dms/base").FormBuilder;
8
9
  static usage: import("@antelopejs/interface-dms").ComponentBuilder<import("@antelopejs/interface-dms/base").SectionProps>;
9
10
  }
@@ -26,6 +26,7 @@ const settingsForm = (0, base_1.Form)({
26
26
  .meta((0, meta_1.blockMeta)("settings.form", "i-ph-sliders"))
27
27
  .onFilter(availability_1.lockUnavailableChoices);
28
28
  let AISettingsPage = class AISettingsPage extends (0, page_1.PageController)(pages_1.PAGE_IDS.SETTINGS, (0, meta_1.pageMenu)(pages_1.PAGE_IDS.SETTINGS, "i-ph-gear-six", pages_1.PAGE_ORDER.SETTINGS), (0, layouts_1.FormPageLayout)()) {
29
+ static chatgpt = (0, base_1.Banner)({ fetchUrl: pages_1.PAGE_ROUTES.CODEX_ACCOUNT_BANNER }).meta((0, meta_1.blockMeta)("settings.chatgpt", "i-ph-open-ai-logo"));
29
30
  static settings = settingsForm;
30
31
  static usage = (0, base_1.Section)({
31
32
  title: (0, meta_1.blockText)(USAGE_PATH, "title"),
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/pages/settings/page.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAMwC;AACxC,oEAAwE;AACxE,yDAA8E;AAC9E,iDAA0E;AAC1E,kCAAmE;AACnE,iDAAwD;AACxD,yCAA+C;AAE/C,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC;IACxB,QAAQ,EAAE,mBAAW,CAAC,QAAQ;IAC9B,SAAS,EAAE,mBAAW,CAAC,QAAQ;IAC/B,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,4BAAiB;CAC5B,CAAC;KACC,IAAI,CAAC,IAAA,gBAAS,EAAC,eAAe,EAAE,cAAc,CAAC,CAAC;KAChD,QAAQ,CAAC,qCAAsB,CAAC,CAAC;AAS7B,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,IAAA,qBAAc,EAChD,gBAAQ,CAAC,QAAQ,EACjB,IAAA,eAAQ,EAAC,gBAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,kBAAU,CAAC,QAAQ,CAAC,EACjE,IAAA,wBAAc,GAAE,CACjB;IACC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC;IAE/B,MAAM,CAAC,KAAK,GAAG,IAAA,cAAO,EAAC;QACrB,KAAK,EAAE,IAAA,gBAAS,EAAC,UAAU,EAAE,OAAO,CAAC;QACrC,WAAW,EAAE,IAAA,gBAAS,EAAC,UAAU,EAAE,SAAS,CAAC;QAC7C,IAAI,EAAE,KAAK;KACZ,CAAC;SACC,IAAI,CAAC,IAAA,gBAAS,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;SAC7C,KAAK,CACJ,QAAQ,EACR,IAAA,gBAAS,EAAC;QACR,KAAK,EAAE,IAAA,gBAAS,EAAC,sBAAsB,EAAE,OAAO,CAAC;QACjD,WAAW,EAAE,IAAA,gBAAS,EAAC,sBAAsB,EAAE,SAAS,CAAC;QACzD,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,mBAAW,CAAC,KAAK;QAC3B,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,IAAA,kBAAW,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,eAAQ,EAAE,CAAC,CAAC,IAAI,CACjE,IAAA,gBAAS,EAAC,6BAA6B,EAAE,gBAAgB,CAAC,CAC3D;KACF,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,CAC7D;SACA,KAAK,CACJ,SAAS,EACT,IAAA,mBAAY,EAAC;QACX,KAAK,EAAE,IAAA,gBAAS,EAAC,wBAAwB,EAAE,OAAO,CAAC;QACnD,QAAQ,EAAE,mBAAW,CAAC,aAAa;QACnC,aAAa,EAAE,kBAAkB;KAClC,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC,CAClE,CAAC;;AAlCO,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAY,GAAE;GACF,cAAc,CAmC1B"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/pages/settings/page.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAOwC;AACxC,oEAAwE;AACxE,yDAA8E;AAC9E,iDAA0E;AAC1E,kCAAmE;AACnE,iDAAwD;AACxD,yCAA+C;AAE/C,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC;IACxB,QAAQ,EAAE,mBAAW,CAAC,QAAQ;IAC9B,SAAS,EAAE,mBAAW,CAAC,QAAQ;IAC/B,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,4BAAiB;CAC5B,CAAC;KACC,IAAI,CAAC,IAAA,gBAAS,EAAC,eAAe,EAAE,cAAc,CAAC,CAAC;KAChD,QAAQ,CAAC,qCAAsB,CAAC,CAAC;AAS7B,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,IAAA,qBAAc,EAChD,gBAAQ,CAAC,QAAQ,EACjB,IAAA,eAAQ,EAAC,gBAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,kBAAU,CAAC,QAAQ,CAAC,EACjE,IAAA,wBAAc,GAAE,CACjB;IACC,MAAM,CAAC,OAAO,GAAG,IAAA,aAAM,EAAC,EAAE,QAAQ,EAAE,mBAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAC1E,IAAA,gBAAS,EAAC,kBAAkB,EAAE,mBAAmB,CAAC,CACnD,CAAC;IAEF,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC;IAE/B,MAAM,CAAC,KAAK,GAAG,IAAA,cAAO,EAAC;QACrB,KAAK,EAAE,IAAA,gBAAS,EAAC,UAAU,EAAE,OAAO,CAAC;QACrC,WAAW,EAAE,IAAA,gBAAS,EAAC,UAAU,EAAE,SAAS,CAAC;QAC7C,IAAI,EAAE,KAAK;KACZ,CAAC;SACC,IAAI,CAAC,IAAA,gBAAS,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;SAC7C,KAAK,CACJ,QAAQ,EACR,IAAA,gBAAS,EAAC;QACR,KAAK,EAAE,IAAA,gBAAS,EAAC,sBAAsB,EAAE,OAAO,CAAC;QACjD,WAAW,EAAE,IAAA,gBAAS,EAAC,sBAAsB,EAAE,SAAS,CAAC;QACzD,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,mBAAW,CAAC,KAAK;QAC3B,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,IAAA,kBAAW,EAAC,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,eAAQ,EAAE,CAAC,CAAC,IAAI,CACjE,IAAA,gBAAS,EAAC,6BAA6B,EAAE,gBAAgB,CAAC,CAC3D;KACF,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,CAC7D;SACA,KAAK,CACJ,SAAS,EACT,IAAA,mBAAY,EAAC;QACX,KAAK,EAAE,IAAA,gBAAS,EAAC,wBAAwB,EAAE,OAAO,CAAC;QACnD,QAAQ,EAAE,mBAAW,CAAC,aAAa;QACnC,aAAa,EAAE,kBAAkB;KAClC,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC,CAClE,CAAC;;AAtCO,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAY,GAAE;GACF,cAAc,CAuC1B"}
@@ -80,6 +80,14 @@ const OP_NAMES = [
80
80
  "AddQuery",
81
81
  "ConfigureQuery",
82
82
  "RemoveQuery",
83
+ "ConfigureProject",
84
+ "AddModule",
85
+ "ConfigureModule",
86
+ "CreateLocalModule",
87
+ "MapResources",
88
+ "AnalyseDatabase",
89
+ "GetAnalysis",
90
+ "GetMapping",
83
91
  ];
84
92
  const OPS = Object.fromEntries(OP_NAMES.map((name) => [name, Builder[name]]));
85
93
  class AIBuilderController extends (0, interface_api_1.Controller)(module_1.ROUTE_PREFIX) {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/routes/builder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAOmC;AACnC,2EAA6D;AAC7D,kDAAyD;AACzD,kDAM8B;AAC9B,gDAAmD;AACnD,kDAA2D;AAC3D,iDAAoE;AAIpE,MAAM,QAAQ,GAAG;IACf,WAAW;IACX,gBAAgB;IAChB,YAAY;IACZ,kBAAkB;IAClB,oBAAoB;IACpB,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,sBAAsB;IACtB,oBAAoB;IACpB,UAAU;IACV,gBAAgB;IAChB,aAAa;CACL,CAAC;AAEX,MAAM,GAAG,GAA8B,MAAM,CAAC,WAAW,CACvD,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAc,CAAC,CAAC,CAC3D,CAAC;AAOF,MAAa,mBAAoB,SAAQ,IAAA,0BAAU,EAAC,qBAAY,CAAC;IAEzD,AAAN,KAAK,CAAC,EAAE,CACoC,KAAc,EAC5C,IAAoB;QAEhC,IAAI,CAAC,IAAA,+BAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAA,+BAAgB,GAAE,CAAC;QAC5B,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,IAAI,0BAAU,CAAC,0BAAgB,EAAE;gBACtC,KAAK,EAAE,YAAY;gBACnB,EAAE,EAAE,IAAI,EAAE,EAAE;aACb,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,MAAM,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,0BAAU,CAAC,kCAAwB,EAAE;gBAC9C,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CACgC,KAAc;QAExD,IAAI,CAAC,IAAA,+BAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAA,+BAAgB,GAAE,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,0BAAU,CAAC,iBAAO,EAAE,EAAE,SAAS,EAAE,MAAM,IAAA,6BAAkB,GAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF;AApCD,kDAoCC;AAlCO;IADL,IAAA,oBAAI,EAAC,yBAAe,CAAC;IAEnB,WAAA,IAAA,yBAAS,EAAC,6BAAmB,EAAE,QAAQ,CAAC,CAAA;IACxC,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;6CAqBZ;AAGK;IADL,IAAA,mBAAG,EAAC,6BAAmB,CAAC;IAEtB,WAAA,IAAA,yBAAS,EAAC,6BAAmB,EAAE,QAAQ,CAAC,CAAA;;;;iDAM1C"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/routes/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { HTTPResult } from "@antelopejs/interface-api";
2
+ declare const AICodexAccountController_base: import("@antelopejs/interface-api").ControllerClass<object>;
3
+ export declare class AICodexAccountController extends AICodexAccountController_base {
4
+ banner(): Promise<HTTPResult>;
5
+ finishSignIn(body?: Record<string, unknown>): Promise<unknown>;
6
+ logout(): Promise<unknown>;
7
+ }
8
+ export {};
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AICodexAccountController = void 0;
16
+ const interface_api_1 = require("@antelopejs/interface-api");
17
+ const auth_1 = require("@antelopejs/interface-dms/auth");
18
+ const confirm_dialog_1 = require("@antelopejs/interface-dms/base/confirm-dialog");
19
+ const data_types_1 = require("@antelopejs/interface-dms/base/data-types");
20
+ const i18n_1 = require("../constants/i18n");
21
+ const module_1 = require("../constants/module");
22
+ const pages_1 = require("../constants/pages");
23
+ const sidecar_1 = require("../sidecar");
24
+ const vocabulary_1 = require("../vocabulary");
25
+ const banner_1 = require("./banner");
26
+ const sidecar_results_1 = require("./sidecar-results");
27
+ const ACCOUNT_PATH = "/codex/account";
28
+ const LOGOUT_PATH = "/codex/logout";
29
+ const CALLBACK_PATH = "/codex/callback";
30
+ const PASTED_URL_FIELD = "url";
31
+ const NO_STORE = { "Cache-Control": "no-store" };
32
+ function text(...segments) {
33
+ return (0, vocabulary_1.i18nKey)(i18n_1.I18N_SECTIONS.SETTINGS, "chatgpt", ...segments);
34
+ }
35
+ const SIGN_OUT_ACTION = {
36
+ label: text("signed_in", "action"),
37
+ icon: "i-ph-sign-out",
38
+ color: "neutral",
39
+ confirm: {
40
+ title: text("sign_out_confirm", "title"),
41
+ description: text("sign_out_confirm", "description"),
42
+ confirmLabel: text("signed_in", "action"),
43
+ color: "error",
44
+ },
45
+ target: {
46
+ type: "api",
47
+ url: pages_1.PAGE_ROUTES.CODEX_LOGOUT,
48
+ method: "POST",
49
+ successMessage: text("signed_out_toast"),
50
+ },
51
+ };
52
+ function signedInBanner(account) {
53
+ return {
54
+ tone: "success",
55
+ size: "sm",
56
+ icon: "i-ph-open-ai-logo",
57
+ title: {
58
+ key: text("signed_in", "title"),
59
+ params: { email: account.email ?? "" },
60
+ },
61
+ description: text("signed_in", "description"),
62
+ actions: [SIGN_OUT_ACTION],
63
+ };
64
+ }
65
+ const PASTE_ACTION = {
66
+ label: text("paste", "action"),
67
+ icon: "i-ph-clipboard-text",
68
+ color: "neutral",
69
+ confirm: (0, confirm_dialog_1.serializeConfirmDialog)({
70
+ title: text("paste", "title"),
71
+ description: text("paste", "description"),
72
+ icon: "i-ph-clipboard-text",
73
+ confirmLabel: text("paste", "confirm"),
74
+ fields: [
75
+ {
76
+ id: PASTED_URL_FIELD,
77
+ label: text("paste", "field"),
78
+ type: new data_types_1.DefaultDataTypes.StringType({
79
+ placeholder: "http://127.0.0.1:…/auth/chatgpt/callback?code=…",
80
+ }),
81
+ required: true,
82
+ },
83
+ ],
84
+ }),
85
+ target: {
86
+ type: "api",
87
+ url: pages_1.PAGE_ROUTES.CODEX_CALLBACK,
88
+ method: "POST",
89
+ successMessage: text("paste", "success"),
90
+ },
91
+ };
92
+ function signedOutBanner(loginUrl) {
93
+ return {
94
+ tone: "info",
95
+ size: "sm",
96
+ icon: "i-ph-open-ai-logo",
97
+ title: text("signed_out", "title"),
98
+ description: text("signed_out", "description"),
99
+ actions: [
100
+ {
101
+ label: text("signed_out", "action"),
102
+ icon: "i-ph-sign-in",
103
+ target: { type: "external", url: loginUrl, newTab: true },
104
+ },
105
+ PASTE_ACTION,
106
+ ],
107
+ };
108
+ }
109
+ function accountBanner(account) {
110
+ if (account.isSignedIn)
111
+ return signedInBanner(account);
112
+ return account.loginUrl === undefined
113
+ ? null
114
+ : signedOutBanner(account.loginUrl);
115
+ }
116
+ let AICodexAccountController = class AICodexAccountController extends (0, interface_api_1.Controller)(module_1.ROUTE_PREFIX) {
117
+ async banner() {
118
+ try {
119
+ const response = await (0, sidecar_1.requestSidecar)(ACCOUNT_PATH);
120
+ const content = response.isOk
121
+ ? accountBanner(response.body)
122
+ : null;
123
+ return interface_api_1.HTTPResult.withHeaders((0, banner_1.bannerAnswer)(content), NO_STORE);
124
+ }
125
+ catch {
126
+ return interface_api_1.HTTPResult.withHeaders((0, banner_1.bannerAnswer)(null), NO_STORE);
127
+ }
128
+ }
129
+ finishSignIn(body) {
130
+ return (0, sidecar_results_1.relay)(CALLBACK_PATH, (answer) => answer, {
131
+ method: "POST",
132
+ body: { url: body?.[PASTED_URL_FIELD] },
133
+ });
134
+ }
135
+ logout() {
136
+ return (0, sidecar_results_1.relay)(LOGOUT_PATH, (body) => body, { method: "POST" });
137
+ }
138
+ };
139
+ exports.AICodexAccountController = AICodexAccountController;
140
+ __decorate([
141
+ (0, interface_api_1.Get)(`${ACCOUNT_PATH}/banner`),
142
+ __metadata("design:type", Function),
143
+ __metadata("design:paramtypes", []),
144
+ __metadata("design:returntype", Promise)
145
+ ], AICodexAccountController.prototype, "banner", null);
146
+ __decorate([
147
+ (0, interface_api_1.Post)(CALLBACK_PATH),
148
+ __param(0, (0, interface_api_1.JSONBody)()),
149
+ __metadata("design:type", Function),
150
+ __metadata("design:paramtypes", [Object]),
151
+ __metadata("design:returntype", Promise)
152
+ ], AICodexAccountController.prototype, "finishSignIn", null);
153
+ __decorate([
154
+ (0, interface_api_1.Post)(LOGOUT_PATH),
155
+ __metadata("design:type", Function),
156
+ __metadata("design:paramtypes", []),
157
+ __metadata("design:returntype", Promise)
158
+ ], AICodexAccountController.prototype, "logout", null);
159
+ exports.AICodexAccountController = AICodexAccountController = __decorate([
160
+ (0, auth_1.AuthOwnerOnly)()
161
+ ], AICodexAccountController);
162
+ //# sourceMappingURL=codex-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-account.js","sourceRoot":"","sources":["../../src/routes/codex-account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ProfileRequest, ReferenceCheck } from "@antelopejs/interface-database-catalog";
2
+ interface ConnectionBody {
3
+ connection?: string;
4
+ }
5
+ interface RelationsBody extends ConnectionBody {
6
+ schemas?: string[];
7
+ }
8
+ interface DescribeBody extends ConnectionBody {
9
+ relations?: string[];
10
+ }
11
+ interface ProfileBody extends ConnectionBody, Partial<ProfileRequest> {
12
+ references?: ReferenceCheck[];
13
+ }
14
+ declare const AIDatabaseController_base: import("@antelopejs/interface-api").ControllerClass<object>;
15
+ export declare class AIDatabaseController extends AIDatabaseController_base {
16
+ connections(token?: string): Promise<unknown>;
17
+ relations(token?: string, body?: RelationsBody): Promise<unknown>;
18
+ describe(token?: string, body?: DescribeBody): Promise<unknown>;
19
+ profile(token?: string, body?: ProfileBody): Promise<unknown>;
20
+ }
21
+ export {};
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AIDatabaseController = void 0;
16
+ const interface_api_1 = require("@antelopejs/interface-api");
17
+ const database_1 = require("../constants/database");
18
+ const module_1 = require("../constants/module");
19
+ const sidecar_1 = require("../constants/sidecar");
20
+ const catalog_1 = require("../database/catalog");
21
+ const sidecar_auth_1 = require("./sidecar-auth");
22
+ function unknownConnection(connection) {
23
+ return new interface_api_1.HTTPResult(database_1.HTTP_NOT_FOUND, {
24
+ error: "unknown_connection",
25
+ connection,
26
+ known: (0, catalog_1.listConnections)(),
27
+ });
28
+ }
29
+ async function onCatalog(token, connection, work) {
30
+ if (!(0, sidecar_auth_1.isSidecarRequest)(token)) {
31
+ return (0, sidecar_auth_1.sidecarForbidden)();
32
+ }
33
+ const catalog = connection ? (0, catalog_1.catalogOf)(connection) : undefined;
34
+ if (!catalog) {
35
+ return unknownConnection(connection);
36
+ }
37
+ try {
38
+ return await work(catalog);
39
+ }
40
+ catch (err) {
41
+ return new interface_api_1.HTTPResult(database_1.HTTP_CATALOG_FAILED, {
42
+ error: "catalog_failed",
43
+ detail: err instanceof Error ? err.message : String(err),
44
+ });
45
+ }
46
+ }
47
+ async function describeConnection(connection) {
48
+ try {
49
+ return { connection, ...(await (0, catalog_1.catalogOf)(connection)?.Info()) };
50
+ }
51
+ catch (err) {
52
+ return {
53
+ connection,
54
+ error: err instanceof Error ? err.message : String(err),
55
+ };
56
+ }
57
+ }
58
+ class AIDatabaseController extends (0, interface_api_1.Controller)(module_1.ROUTE_PREFIX) {
59
+ async connections(token) {
60
+ if (!(0, sidecar_auth_1.isSidecarRequest)(token)) {
61
+ return (0, sidecar_auth_1.sidecarForbidden)();
62
+ }
63
+ return Promise.all((0, catalog_1.listConnections)().map(describeConnection));
64
+ }
65
+ relations(token, body) {
66
+ return onCatalog(token, body?.connection, (catalog) => catalog.ListRelations(body?.schemas));
67
+ }
68
+ describe(token, body) {
69
+ return onCatalog(token, body?.connection, (catalog) => catalog.DescribeRelations(body?.relations ?? []));
70
+ }
71
+ profile(token, body) {
72
+ return onCatalog(token, body?.connection, async (catalog) => ({
73
+ profile: body?.relation
74
+ ? await catalog.Profile({
75
+ relation: body.relation,
76
+ columns: body.columns,
77
+ })
78
+ : undefined,
79
+ references: await Promise.all((body?.references ?? []).map((check) => catalog.CheckReference(check))),
80
+ }));
81
+ }
82
+ }
83
+ exports.AIDatabaseController = AIDatabaseController;
84
+ __decorate([
85
+ (0, interface_api_1.Get)(database_1.DATABASE_CONNECTIONS_PATH),
86
+ __param(0, (0, interface_api_1.Parameter)(sidecar_1.SIDECAR_AUTH_HEADER, "header")),
87
+ __metadata("design:type", Function),
88
+ __metadata("design:paramtypes", [String]),
89
+ __metadata("design:returntype", Promise)
90
+ ], AIDatabaseController.prototype, "connections", null);
91
+ __decorate([
92
+ (0, interface_api_1.Post)(database_1.DATABASE_RELATIONS_PATH),
93
+ __param(0, (0, interface_api_1.Parameter)(sidecar_1.SIDECAR_AUTH_HEADER, "header")),
94
+ __param(1, (0, interface_api_1.JSONBody)()),
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", [String, Object]),
97
+ __metadata("design:returntype", Promise)
98
+ ], AIDatabaseController.prototype, "relations", null);
99
+ __decorate([
100
+ (0, interface_api_1.Post)(database_1.DATABASE_DESCRIBE_PATH),
101
+ __param(0, (0, interface_api_1.Parameter)(sidecar_1.SIDECAR_AUTH_HEADER, "header")),
102
+ __param(1, (0, interface_api_1.JSONBody)()),
103
+ __metadata("design:type", Function),
104
+ __metadata("design:paramtypes", [String, Object]),
105
+ __metadata("design:returntype", Promise)
106
+ ], AIDatabaseController.prototype, "describe", null);
107
+ __decorate([
108
+ (0, interface_api_1.Post)(database_1.DATABASE_PROFILE_PATH),
109
+ __param(0, (0, interface_api_1.Parameter)(sidecar_1.SIDECAR_AUTH_HEADER, "header")),
110
+ __param(1, (0, interface_api_1.JSONBody)()),
111
+ __metadata("design:type", Function),
112
+ __metadata("design:paramtypes", [String, Object]),
113
+ __metadata("design:returntype", Promise)
114
+ ], AIDatabaseController.prototype, "profile", null);
115
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/routes/database.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ export * from "./activity";
2
2
  export * from "./builder";
3
3
  export * from "./changes";
4
4
  export * from "./channels";
5
+ export * from "./codex-account";
6
+ export * from "./database";
5
7
  export * from "./health";
6
8
  export * from "./logs";
7
9
  export * from "./metrics";
@@ -18,6 +18,8 @@ __exportStar(require("./activity"), exports);
18
18
  __exportStar(require("./builder"), exports);
19
19
  __exportStar(require("./changes"), exports);
20
20
  __exportStar(require("./channels"), exports);
21
+ __exportStar(require("./codex-account"), exports);
22
+ __exportStar(require("./database"), exports);
21
23
  __exportStar(require("./health"), exports);
22
24
  __exportStar(require("./logs"), exports);
23
25
  __exportStar(require("./metrics"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,4CAA0B;AAC1B,mDAAiC;AACjC,6CAA2B;AAC3B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,kDAAgC;AAChC,6CAA2B;AAC3B,2CAAyB;AACzB,yCAAuB;AACvB,4CAA0B;AAC1B,mDAAiC;AACjC,6CAA2B;AAC3B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB"}
@@ -304,6 +304,30 @@ const ASSISTANT_TOOLS: Record<string, ToolLexiconEntry> = {
304
304
  target: firstOf("query", "search", "level"),
305
305
  isReadOnly: true,
306
306
  },
307
+ DatabaseConnections: {
308
+ verb: "list_databases",
309
+ icon: ICONS.DATA,
310
+ target: none,
311
+ isReadOnly: true,
312
+ },
313
+ DatabaseRelations: {
314
+ verb: "list_relations",
315
+ icon: ICONS.DATA,
316
+ target: firstOf("connection"),
317
+ isReadOnly: true,
318
+ },
319
+ DatabaseDescribe: {
320
+ verb: "describe_relations",
321
+ icon: ICONS.TABLE,
322
+ target: countOf("relations"),
323
+ isReadOnly: true,
324
+ },
325
+ DatabaseProfile: {
326
+ verb: "profile_relation",
327
+ icon: ICONS.TABLE,
328
+ target: firstOf("relation", "connection"),
329
+ isReadOnly: true,
330
+ },
307
331
  };
308
332
 
309
333
  const BUILDER_TOOLS: Record<string, ToolLexiconEntry> = {
@@ -393,6 +417,28 @@ const BUILDER_TOOLS: Record<string, ToolLexiconEntry> = {
393
417
  target: firstOf("ref"),
394
418
  isReadOnly: true,
395
419
  },
420
+ BuilderConfigureProject: {
421
+ verb: "configure_project",
422
+ icon: ICONS.DATA,
423
+ target: countOf("steps"),
424
+ },
425
+ BuilderMapResources: {
426
+ verb: "map_tables",
427
+ icon: ICONS.TABLE,
428
+ target: firstOf("connection", "module"),
429
+ },
430
+ BuilderMapping: {
431
+ verb: "read_mapping",
432
+ icon: ICONS.TABLE,
433
+ target: firstOf("connection", "module"),
434
+ isReadOnly: true,
435
+ },
436
+ BuilderAnalyseDatabase: {
437
+ verb: "analyse_database",
438
+ icon: ICONS.TABLE,
439
+ target: firstOf("connection", "job"),
440
+ isReadOnly: true,
441
+ },
396
442
  BuilderCreateResource: {
397
443
  verb: "create_table",
398
444
  icon: ICONS.TABLE,
@@ -13,10 +13,16 @@ export function runWhenLoggedIn(
13
13
  start();
14
14
  return () => undefined;
15
15
  }
16
- const stop = watch(isLoggedIn, (loggedIn) => {
17
- if (!loggedIn) return;
18
- stop();
19
- start();
20
- });
16
+ const stop = watch(
17
+ isLoggedIn,
18
+ (loggedIn) => {
19
+ if (!loggedIn) return;
20
+ stop();
21
+ start();
22
+ },
23
+ // Login also changes DMS's async-data scope. Let its watchers clear
24
+ // the old scope before starting the probe, or they abort that read.
25
+ { flush: "post" },
26
+ );
21
27
  return stop;
22
28
  }