@braidhq/server 0.2.0 → 0.3.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 (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -1
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +32 -6
  5. package/dist/app.js.map +1 -1
  6. package/dist/composeApp.d.ts +9 -4
  7. package/dist/composeApp.d.ts.map +1 -1
  8. package/dist/composeApp.js +13 -6
  9. package/dist/composeApp.js.map +1 -1
  10. package/dist/composeFsApp.d.ts +49 -3
  11. package/dist/composeFsApp.d.ts.map +1 -1
  12. package/dist/composeFsApp.js +156 -61
  13. package/dist/composeFsApp.js.map +1 -1
  14. package/dist/defaultOntologyPlugins.d.ts +9 -0
  15. package/dist/defaultOntologyPlugins.d.ts.map +1 -0
  16. package/dist/defaultOntologyPlugins.js +11 -0
  17. package/dist/defaultOntologyPlugins.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/infrastructure/auth/AccessPolicy.d.ts +1 -1
  23. package/dist/infrastructure/auth/SessionStore.d.ts.map +1 -1
  24. package/dist/infrastructure/auth/SessionStore.js +5 -2
  25. package/dist/infrastructure/auth/SessionStore.js.map +1 -1
  26. package/dist/infrastructure/batch/FsBatchPlanRepository.d.ts +2 -67
  27. package/dist/infrastructure/batch/FsBatchPlanRepository.d.ts.map +1 -1
  28. package/dist/infrastructure/batch/FsBatchPlanRepository.js +8 -6
  29. package/dist/infrastructure/batch/FsBatchPlanRepository.js.map +1 -1
  30. package/dist/infrastructure/hitl/FsClarificationRepository.d.ts +1 -1
  31. package/dist/infrastructure/hitl/FsClarificationRepository.d.ts.map +1 -1
  32. package/dist/infrastructure/hitl/FsClarificationRepository.js +8 -7
  33. package/dist/infrastructure/hitl/FsClarificationRepository.js.map +1 -1
  34. package/dist/infrastructure/hitl/FsProposalRepository.d.ts.map +1 -1
  35. package/dist/infrastructure/hitl/FsProposalRepository.js +2 -1
  36. package/dist/infrastructure/hitl/FsProposalRepository.js.map +1 -1
  37. package/dist/infrastructure/model/FsModelSerializer.d.ts +2 -4
  38. package/dist/infrastructure/model/FsModelSerializer.d.ts.map +1 -1
  39. package/dist/infrastructure/oauth/GitHubOAuth.d.ts +45 -0
  40. package/dist/infrastructure/oauth/GitHubOAuth.d.ts.map +1 -0
  41. package/dist/infrastructure/oauth/GitHubOAuth.js +85 -0
  42. package/dist/infrastructure/oauth/GitHubOAuth.js.map +1 -0
  43. package/dist/infrastructure/oauth/providers.d.ts +19 -0
  44. package/dist/infrastructure/oauth/providers.d.ts.map +1 -0
  45. package/dist/infrastructure/oauth/providers.js +22 -0
  46. package/dist/infrastructure/oauth/providers.js.map +1 -0
  47. package/dist/infrastructure/skill/FsSkillRegistry.d.ts +6 -0
  48. package/dist/infrastructure/skill/FsSkillRegistry.d.ts.map +1 -1
  49. package/dist/infrastructure/skill/FsSkillRegistry.js +7 -1
  50. package/dist/infrastructure/skill/FsSkillRegistry.js.map +1 -1
  51. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts +26 -5
  52. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts.map +1 -1
  53. package/dist/infrastructure/skill/SubprocessSkillRunner.js +125 -13
  54. package/dist/infrastructure/skill/SubprocessSkillRunner.js.map +1 -1
  55. package/dist/infrastructure/source/unitScan.d.ts +11 -0
  56. package/dist/infrastructure/source/unitScan.d.ts.map +1 -0
  57. package/dist/infrastructure/source/{intentScan.js → unitScan.js} +19 -12
  58. package/dist/infrastructure/source/unitScan.js.map +1 -0
  59. package/dist/infrastructure/users/UserDirectoryFromRegistry.d.ts.map +1 -1
  60. package/dist/infrastructure/users/UserDirectoryFromRegistry.js +1 -0
  61. package/dist/infrastructure/users/UserDirectoryFromRegistry.js.map +1 -1
  62. package/dist/infrastructure/workspace/productManifestWriter.d.ts +5 -1
  63. package/dist/infrastructure/workspace/productManifestWriter.d.ts.map +1 -1
  64. package/dist/infrastructure/workspace/productManifestWriter.js +5 -2
  65. package/dist/infrastructure/workspace/productManifestWriter.js.map +1 -1
  66. package/dist/middleware/auth.d.ts.map +1 -1
  67. package/dist/middleware/auth.js +18 -1
  68. package/dist/middleware/auth.js.map +1 -1
  69. package/dist/routes/clarifications.d.ts.map +1 -1
  70. package/dist/routes/clarifications.js +25 -22
  71. package/dist/routes/clarifications.js.map +1 -1
  72. package/dist/routes/oauth.d.ts +51 -10
  73. package/dist/routes/oauth.d.ts.map +1 -1
  74. package/dist/routes/oauth.js +174 -62
  75. package/dist/routes/oauth.js.map +1 -1
  76. package/dist/routes/ontologies.d.ts +7 -0
  77. package/dist/routes/ontologies.d.ts.map +1 -0
  78. package/dist/routes/ontologies.js +29 -0
  79. package/dist/routes/ontologies.js.map +1 -0
  80. package/dist/routes/ontology.d.ts.map +1 -1
  81. package/dist/routes/ontology.js +2 -1
  82. package/dist/routes/ontology.js.map +1 -1
  83. package/dist/routes/proposals.d.ts.map +1 -1
  84. package/dist/routes/proposals.js +5 -2
  85. package/dist/routes/proposals.js.map +1 -1
  86. package/dist/routes/skillInputOptions.js +16 -14
  87. package/dist/routes/skillInputOptions.js.map +1 -1
  88. package/dist/routes/skills.d.ts.map +1 -1
  89. package/dist/routes/skills.js +7 -5
  90. package/dist/routes/skills.js.map +1 -1
  91. package/dist/routes/sourceConnection.d.ts +30 -0
  92. package/dist/routes/sourceConnection.d.ts.map +1 -0
  93. package/dist/routes/sourceConnection.js +51 -0
  94. package/dist/routes/sourceConnection.js.map +1 -0
  95. package/dist/routes/sourceUnitObservations.d.ts +3 -3
  96. package/dist/routes/sourceUnitObservations.d.ts.map +1 -1
  97. package/dist/routes/sourceUnitObservations.js +3 -3
  98. package/dist/routes/sourceUnitObservations.js.map +1 -1
  99. package/dist/routes/workspaces.d.ts +6 -0
  100. package/dist/routes/workspaces.d.ts.map +1 -1
  101. package/dist/routes/workspaces.js +12 -7
  102. package/dist/routes/workspaces.js.map +1 -1
  103. package/dist/serviceAccounts.d.ts +13 -0
  104. package/dist/serviceAccounts.d.ts.map +1 -0
  105. package/dist/serviceAccounts.js +26 -0
  106. package/dist/serviceAccounts.js.map +1 -0
  107. package/package.json +34 -39
  108. package/dist/infrastructure/source/intentScan.d.ts +0 -13
  109. package/dist/infrastructure/source/intentScan.d.ts.map +0 -1
  110. package/dist/infrastructure/source/intentScan.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serviceAccounts.d.ts","sourceRoot":"","sources":["../src/serviceAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,MAAM,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAA;AAGlF,qEAAqE;AACrE,eAAO,MAAM,eAAe,yCAA0B,CAAA;AAEtD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,gBAAgB,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc7H"}
@@ -0,0 +1,26 @@
1
+ import { UserId } from '@braidhq/schema';
2
+ /** The autonomous source-sync reactor's service-account identity. */
3
+ export const REACTOR_USER_ID = UserId.parse('reactor');
4
+ /**
5
+ * Upsert a service account, idempotently. It is an admin,
6
+ * so its calls clear the workspace gate via the admin-to-owner rule.
7
+ * kind=service marks it non-human, and that kind rides onto its proposals,
8
+ * so the HITL views classify its pending without a read-time registry lookup.
9
+ * Each autonomous component seeds its own by calling this.
10
+ */
11
+ export async function ensureServiceAccount(userRegistry, id, displayName) {
12
+ const existing = await userRegistry.get(id);
13
+ if (existing) {
14
+ if (existing.kind !== 'service' || existing.serverRole !== 'admin')
15
+ await userRegistry.update(id, { kind: 'service', serverRole: 'admin' });
16
+ return;
17
+ }
18
+ await userRegistry.create({
19
+ id,
20
+ displayName,
21
+ serverRole: 'admin',
22
+ kind: 'service',
23
+ createdAt: new Date().toISOString(),
24
+ });
25
+ }
26
+ //# sourceMappingURL=serviceAccounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serviceAccounts.js","sourceRoot":"","sources":["../src/serviceAccounts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,qEAAqE;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,YAA8B,EAAE,EAAc,EAAE,WAAmB;IAC5G,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO;YAChE,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;QACzE,OAAM;IACR,CAAC;IACD,MAAM,YAAY,CAAC,MAAM,CAAC;QACxB,EAAE;QACF,WAAW;QACX,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAe;KACjD,CAAC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@braidhq/server",
3
3
  "type": "module",
4
- "version": "0.2.0",
4
+ "version": "0.3.0",
5
5
  "description": "REST + SSE server for Braid.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -10,57 +10,52 @@
10
10
  "directory": "packages/server"
11
11
  },
12
12
  "exports": {
13
- ".": "./src/index.ts"
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "default": "./dist/index.js"
16
+ }
14
17
  },
15
- "main": "./src/index.ts",
16
- "types": "./src/index.ts",
18
+ "main": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
17
20
  "files": [
18
21
  "README.md",
19
22
  "dist"
20
23
  ],
21
- "scripts": {
22
- "build": "tsc -p tsconfig.json",
23
- "bundle": "node scripts/bundle.mjs",
24
- "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json",
25
- "test": "vitest run",
26
- "test:coverage": "vitest run --coverage",
27
- "dev": "tsx watch src/server.ts",
28
- "clean": "rm -rf dist bundle .turbo *.tsbuildinfo coverage"
29
- },
30
24
  "dependencies": {
31
- "@braidhq/agent-claude-code": "workspace:*",
32
- "@braidhq/core": "workspace:*",
33
- "@braidhq/ontology-ddd": "workspace:*",
34
- "@braidhq/schema": "workspace:*",
35
- "@braidhq/source-loader-gdrive": "workspace:*",
36
- "@braidhq/source-loader-git": "workspace:*",
37
- "@braidhq/source-loader-github": "workspace:*",
38
- "@braidhq/storage-kuzu": "workspace:*",
39
- "@hono/node-server": "^2.0.12",
40
- "@hono/zod-openapi": "^1.5.1",
25
+ "@hono/node-server": "^2.1.0",
26
+ "@hono/zod-openapi": "^1.5.3",
41
27
  "@hono/zod-validator": "^0.9.0",
42
- "hono": "^4.12.32",
28
+ "hono": "^4.12.34",
43
29
  "pino": "^10.3.1",
44
30
  "simple-git": "^3.36.0",
45
31
  "yaml": "^2.9.0",
46
- "zod": "^4.2.1"
32
+ "zod": "^4.2.1",
33
+ "@braidhq/agent-claude-code": "0.3.0",
34
+ "@braidhq/ontology-ddd": "0.3.0",
35
+ "@braidhq/schema": "0.3.0",
36
+ "@braidhq/core": "0.3.0",
37
+ "@braidhq/source-loader-gdrive": "0.3.0",
38
+ "@braidhq/source-loader-git": "0.3.0",
39
+ "@braidhq/source-loader-github": "0.3.0",
40
+ "@braidhq/storage-kuzu": "0.3.0"
47
41
  },
48
42
  "devDependencies": {
49
- "@braidhq/test-utils": "workspace:*",
50
- "esbuild": "^0.28.1",
51
- "tsx": "^4.23.1",
43
+ "esbuild": "^0.28.2",
44
+ "tsx": "^4.23.12",
52
45
  "typescript": "^6.0.3",
53
- "vitest": "^4.1.10"
46
+ "vitest": "^4.1.10",
47
+ "@braidhq/test-utils": "0.3.0"
54
48
  },
55
49
  "publishConfig": {
56
- "access": "public",
57
- "main": "./dist/index.js",
58
- "types": "./dist/index.d.ts",
59
- "exports": {
60
- ".": {
61
- "types": "./dist/index.d.ts",
62
- "default": "./dist/index.js"
63
- }
64
- }
50
+ "access": "public"
51
+ },
52
+ "scripts": {
53
+ "build": "tsc -p tsconfig.json",
54
+ "bundle": "node scripts/bundle.mjs",
55
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json",
56
+ "test": "vitest run",
57
+ "test:coverage": "vitest run --coverage",
58
+ "dev": "tsx watch src/server.ts",
59
+ "clean": "rm -rf dist bundle .turbo *.tsbuildinfo coverage"
65
60
  }
66
- }
61
+ }
@@ -1,13 +0,0 @@
1
- import type { Workspace } from '@braidhq/core';
2
- export interface IntentItem {
3
- readonly value: string;
4
- readonly label: string;
5
- readonly sourceId: string;
6
- readonly sourceName: string;
7
- }
8
- /**
9
- * Shared by the Studio source picker and BatchService,
10
- * so both see the same per-doc granularity.
11
- */
12
- export declare function listIntentItems(workspace: Workspace): Promise<IntentItem[]>;
13
- //# sourceMappingURL=intentScan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intentScan.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/source/intentScan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAM9C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAcjF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"intentScan.js","sourceRoot":"","sources":["../../../src/infrastructure/source/intentScan.ts"],"names":[],"mappings":"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"}