@noodleseed/one 0.137.0 → 0.139.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 (185) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/assistant-ops.d.ts.map +1 -1
  4. package/dist/commands/assistant-ops.js +30 -1
  5. package/dist/commands/assistant-ops.js.map +1 -1
  6. package/dist/commands/deploy-first-flow.d.ts +2 -0
  7. package/dist/commands/deploy-first-flow.d.ts.map +1 -1
  8. package/dist/commands/deploy-first-flow.js +46 -14
  9. package/dist/commands/deploy-first-flow.js.map +1 -1
  10. package/dist/commands/deploy-ops.d.ts.map +1 -1
  11. package/dist/commands/deploy-ops.js +27 -1
  12. package/dist/commands/deploy-ops.js.map +1 -1
  13. package/dist/commands/deploy-preflight.d.ts +1 -0
  14. package/dist/commands/deploy-preflight.d.ts.map +1 -1
  15. package/dist/commands/deploy-preflight.js +1 -0
  16. package/dist/commands/deploy-preflight.js.map +1 -1
  17. package/dist/commands/deploy-status-ops.d.ts +1 -0
  18. package/dist/commands/deploy-status-ops.d.ts.map +1 -1
  19. package/dist/commands/deploy-status-ops.js +59 -4
  20. package/dist/commands/deploy-status-ops.js.map +1 -1
  21. package/dist/commands/deployments-ops.d.ts.map +1 -1
  22. package/dist/commands/deployments-ops.js +2 -0
  23. package/dist/commands/deployments-ops.js.map +1 -1
  24. package/dist/commands/diagnostics-ops.d.ts +1 -0
  25. package/dist/commands/diagnostics-ops.d.ts.map +1 -1
  26. package/dist/commands/diagnostics-ops.js +3 -0
  27. package/dist/commands/diagnostics-ops.js.map +1 -1
  28. package/dist/commands/import.d.ts +4 -0
  29. package/dist/commands/import.d.ts.map +1 -0
  30. package/dist/commands/import.js +198 -0
  31. package/dist/commands/import.js.map +1 -0
  32. package/dist/commands/project-setup.d.ts +1 -1
  33. package/dist/commands/project-setup.d.ts.map +1 -1
  34. package/dist/commands/project-setup.js +2 -48
  35. package/dist/commands/project-setup.js.map +1 -1
  36. package/dist/commands/service-ops.d.ts.map +1 -1
  37. package/dist/commands/service-ops.js +44 -51
  38. package/dist/commands/service-ops.js.map +1 -1
  39. package/dist/deploy.d.ts +3 -0
  40. package/dist/deploy.d.ts.map +1 -1
  41. package/dist/deploy.js +4 -0
  42. package/dist/deploy.js.map +1 -1
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/mcp-import.d.ts +22 -0
  48. package/dist/mcp-import.d.ts.map +1 -0
  49. package/dist/mcp-import.js +91 -0
  50. package/dist/mcp-import.js.map +1 -0
  51. package/dist/self-host-init.d.ts +23 -0
  52. package/dist/self-host-init.d.ts.map +1 -0
  53. package/dist/self-host-init.js +315 -0
  54. package/dist/self-host-init.js.map +1 -0
  55. package/node_modules/@noodle-borg/admission-limits/dist/envelope.js +1 -1
  56. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +6 -6
  57. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  58. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +11 -2
  59. package/node_modules/@noodle-borg/agent-kit/dist/skill-connect-refs.js +31 -1
  60. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +3 -2
  61. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +6 -7
  62. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  63. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-guide.d.ts +1 -0
  64. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-guide.js +35 -1
  65. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.d.ts +6 -2
  66. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.js +5 -2
  67. package/node_modules/@noodle-borg/assistant-gateway/dist/model-request.js +37 -0
  68. package/node_modules/@noodle-borg/assistant-gateway/dist/model-runtime.js +4 -0
  69. package/node_modules/@noodle-borg/{service/dist/assistant-model-stream.js → assistant-gateway/dist/model-stream.js} +34 -2
  70. package/node_modules/@noodle-borg/assistant-gateway/dist/public-session.d.ts +3 -0
  71. package/node_modules/@noodle-borg/assistant-gateway/dist/public-session.js +2 -1
  72. package/node_modules/@noodle-borg/assistant-gateway/dist/public-turn.d.ts +4 -1
  73. package/node_modules/@noodle-borg/assistant-gateway/dist/public-turn.js +2 -1
  74. package/node_modules/@noodle-borg/assistant-gateway/dist/surface-budget.d.ts +6 -1
  75. package/node_modules/@noodle-borg/assistant-gateway/dist/surface-budget.js +11 -5
  76. package/node_modules/@noodle-borg/assistant-gateway/package.json +5 -1
  77. package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts +10 -2
  78. package/node_modules/@noodle-borg/authoring/dist/assistant.js +4 -0
  79. package/node_modules/@noodle-borg/authoring/dist/connections.js +1 -0
  80. package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts +25 -3
  81. package/node_modules/@noodle-borg/authoring/dist/connectors.js +82 -7
  82. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -2
  83. package/node_modules/@noodle-borg/authoring/dist/index.js +1 -1
  84. package/node_modules/@noodle-borg/authoring/dist/load-authored.js +1 -1
  85. package/node_modules/@noodle-borg/authoring/dist/model-tool-visibility.js +33 -0
  86. package/node_modules/@noodle-borg/authoring/dist/server.d.ts +5 -0
  87. package/node_modules/@noodle-borg/authoring/dist/server.js +7 -2
  88. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-account.js +13 -1
  89. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-assistant.js +17 -0
  90. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-bootstrap-authoring.js +30 -1
  91. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-hosted-deployment.js +14 -0
  92. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +1 -7
  93. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +20 -8
  94. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +12 -8
  95. package/node_modules/@noodle-borg/connector-defs/dist/call-graph.js +1 -1
  96. package/node_modules/@noodle-borg/connector-defs/dist/compile-mcp.js +95 -0
  97. package/node_modules/@noodle-borg/connector-defs/dist/compile.js +4 -0
  98. package/node_modules/@noodle-borg/connector-defs/dist/customer-routing.js +1 -1
  99. package/node_modules/@noodle-borg/connector-defs/dist/index.d.ts +1 -1
  100. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +642 -3
  101. package/node_modules/@noodle-borg/connector-defs/dist/schema.js +143 -1
  102. package/node_modules/@noodle-borg/connector-http/dist/index.d.ts +1 -0
  103. package/node_modules/@noodle-borg/connector-http/dist/index.js +1 -0
  104. package/node_modules/@noodle-borg/connector-http/dist/mcp/config.js +76 -0
  105. package/node_modules/@noodle-borg/connector-http/dist/mcp/egress.js +125 -0
  106. package/node_modules/@noodle-borg/connector-http/dist/mcp/failure.js +48 -0
  107. package/node_modules/@noodle-borg/connector-http/dist/mcp/index.d.ts +3 -0
  108. package/node_modules/@noodle-borg/connector-http/dist/mcp/index.js +2 -0
  109. package/node_modules/@noodle-borg/connector-http/dist/mcp/mcp-connector.d.ts +12 -0
  110. package/node_modules/@noodle-borg/connector-http/dist/mcp/mcp-connector.js +125 -0
  111. package/node_modules/@noodle-borg/connector-http/dist/mcp/result.js +55 -0
  112. package/node_modules/@noodle-borg/connector-http/dist/mcp/types.d.ts +52 -0
  113. package/node_modules/@noodle-borg/connector-http/dist/mcp/types.js +10 -0
  114. package/node_modules/@noodle-borg/connector-http/package.json +4 -1
  115. package/node_modules/@noodle-borg/control-plane/dist/portable.d.ts +2 -0
  116. package/node_modules/@noodle-borg/control-plane/dist/portable.js +1 -0
  117. package/node_modules/@noodle-borg/control-plane/dist/rollback-deployment.d.ts +61 -0
  118. package/node_modules/@noodle-borg/{service/dist/operations → control-plane/dist}/rollback-deployment.js +3 -2
  119. package/node_modules/@noodle-borg/control-plane/dist/rollback-result.d.ts +19 -0
  120. package/node_modules/@noodle-borg/control-plane/package.json +3 -1
  121. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js +4 -0
  122. package/node_modules/@noodle-borg/developer-mcp/dist/widgets/app-overview.js +1 -1
  123. package/node_modules/@noodle-borg/developer-mcp/dist/widgets/deployment-detail.js +1 -1
  124. package/node_modules/@noodle-borg/module/dist/contract.d.ts +1 -0
  125. package/node_modules/@noodle-borg/module/dist/deployment-automation.d.ts +1 -1
  126. package/node_modules/@noodle-borg/module/dist/endpoint-url.d.ts +11 -0
  127. package/node_modules/@noodle-borg/module/dist/endpoint-url.js +20 -0
  128. package/node_modules/@noodle-borg/module/dist/index.d.ts +1 -0
  129. package/node_modules/@noodle-borg/module/dist/index.js +1 -0
  130. package/node_modules/@noodle-borg/observability/dist/assistant-usage.js +217 -0
  131. package/node_modules/@noodle-borg/observability/dist/index.js +2 -0
  132. package/node_modules/@noodle-borg/{service → observability}/dist/request-event-metrics.js +5 -2
  133. package/node_modules/@noodle-borg/observability/dist/request-events-postgres.js +6 -0
  134. package/node_modules/@noodle-borg/observability/dist/request-events.js +2 -0
  135. package/node_modules/@noodle-borg/openapi-import/dist/index.js +1 -0
  136. package/node_modules/@noodle-borg/openapi-import/dist/mcp/index.js +4 -0
  137. package/node_modules/@noodle-borg/openapi-import/dist/mcp/probe.js +165 -0
  138. package/node_modules/@noodle-borg/openapi-import/dist/mcp/render.js +99 -0
  139. package/node_modules/@noodle-borg/openapi-import/dist/mcp/snapshot.js +290 -0
  140. package/node_modules/@noodle-borg/openapi-import/package.json +6 -2
  141. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +2 -0
  142. package/node_modules/@noodle-borg/runtime/dist/operation-execution.js +1 -0
  143. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js +3 -1
  144. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js +3 -3
  145. package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.js +2 -1
  146. package/node_modules/@noodle-borg/service/dist/registry-access.js +73 -24
  147. package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js +5 -2
  148. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +5 -9
  149. package/node_modules/@noodle-borg/service/dist/registry-helpers.js +4 -18
  150. package/node_modules/@noodle-borg/service/dist/registry-rollback.js +3 -1
  151. package/node_modules/@noodle-borg/service/dist/registry-status.js +4 -1
  152. package/node_modules/@noodle-borg/service/dist/registry-targets.js +4 -4
  153. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +11 -16
  154. package/node_modules/@noodle-borg/service/dist/registry.d.ts +8 -5
  155. package/node_modules/@noodle-borg/service/dist/registry.js +8 -5
  156. package/node_modules/@noodle-borg/service/dist/routes/access.js +19 -1
  157. package/node_modules/@noodle-borg/service/dist/routes/analytics-dispatch.js +17 -1
  158. package/node_modules/@noodle-borg/service/dist/routes/analytics.js +1 -1
  159. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js +81 -64
  160. package/node_modules/@noodle-borg/service/dist/routes/assistant-doctor.js +1 -1
  161. package/node_modules/@noodle-borg/service/dist/routes/assistant-model-binding.js +28 -0
  162. package/node_modules/@noodle-borg/service/dist/routes/assistant-public-session.js +18 -0
  163. package/node_modules/@noodle-borg/service/dist/routes/assistant-public-turn.js +6 -0
  164. package/node_modules/@noodle-borg/service/dist/routes/assistant-usage.js +42 -0
  165. package/node_modules/@noodle-borg/service/dist/routes/assistant.js +20 -3
  166. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js +1 -2
  167. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +49 -4
  168. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +11 -1
  169. package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.js +2 -1
  170. package/node_modules/@noodle-borg/service/dist/routes/paths.js +4 -0
  171. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +1 -1
  172. package/node_modules/@noodle-borg/service/dist/service.js +6 -0
  173. package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts +2 -5
  174. package/node_modules/@noodle-borg/service/dist/store/in-memory.js +9 -21
  175. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +2 -5
  176. package/node_modules/@noodle-borg/service/dist/store/json-file.js +8 -20
  177. package/node_modules/@noodle-borg/service/dist/store/records.js +39 -0
  178. package/node_modules/@noodle-borg/service/dist/store.d.ts +21 -10
  179. package/node_modules/@noodle-borg/service/package.json +5 -1
  180. package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.d.ts +120 -0
  181. package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.js +123 -1
  182. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +4 -0
  183. package/node_modules/@noodle-borg/wire-contracts/dist/index.js +15 -1
  184. package/node_modules/@noodleseed/assistant/package.json +1 -1
  185. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-import.js","sourceRoot":"","sources":["../src/mcp-import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ServiceProfileName } from '@noodle-borg/capabilities';
2
+ export declare const COMPOSE_INIT_VERSION = 1;
3
+ export interface SelfHostSecrets {
4
+ readonly adminToken: string;
5
+ readonly postgresPassword: string;
6
+ readonly secretMasterKey: string;
7
+ readonly assetIdentitySalt: string;
8
+ }
9
+ export interface FileResult {
10
+ readonly path: string;
11
+ readonly status: 'created' | 'unchanged' | 'skipped' | 'replaced';
12
+ }
13
+ export interface SelfHostInitInput {
14
+ readonly root: string;
15
+ readonly force?: boolean;
16
+ readonly replaceSecrets?: boolean;
17
+ readonly random?: (bytes: number) => Buffer;
18
+ readonly rename?: (source: string, destination: string) => void;
19
+ }
20
+ export declare function generateSelfHostSecrets(random: (bytes: number) => Buffer): SelfHostSecrets;
21
+ export declare function reconcileSelfHostFiles(input: SelfHostInitInput): readonly FileResult[];
22
+ export declare function serviceConfigTemplate(profile: ServiceProfileName): string;
23
+ //# sourceMappingURL=self-host-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-host-init.d.ts","sourceRoot":"","sources":["../src/self-host-init.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;CACnE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE;AAaD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,eAAe,CAO1F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,UAAU,EAAE,CAsDtF;AA2ND,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAgDzE"}
@@ -0,0 +1,315 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { chmodSync, closeSync, existsSync, fsyncSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, writeFileSync, } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
4
+ export const COMPOSE_INIT_VERSION = 1;
5
+ export function generateSelfHostSecrets(random) {
6
+ return {
7
+ adminToken: random(32).toString('base64url'),
8
+ postgresPassword: random(24).toString('base64url'),
9
+ secretMasterKey: random(32).toString('base64'),
10
+ assetIdentitySalt: random(32).toString('base64url'),
11
+ };
12
+ }
13
+ export function reconcileSelfHostFiles(input) {
14
+ assertCompatibleRepository(input.root);
15
+ const stateDirectory = join(input.root, '.self-host');
16
+ const files = [
17
+ { relativePath: '.self-host/.env', mode: 0o600 },
18
+ { relativePath: '.self-host/compose.generated.yaml', mode: 0o644 },
19
+ { relativePath: 'noodle.service.yaml', mode: 0o644 },
20
+ ];
21
+ rejectSymlink(stateDirectory, 'state directory');
22
+ for (const file of files) {
23
+ const target = join(input.root, file.relativePath);
24
+ rejectSymlink(target, 'generated target');
25
+ rejectTemporaryTarget(`${target}.tmp`);
26
+ }
27
+ if (existsSync(stateDirectory)) {
28
+ if (!lstatSync(stateDirectory).isDirectory()) {
29
+ throw new Error('self-host state path exists but is not a directory');
30
+ }
31
+ chmodSync(stateDirectory, 0o700);
32
+ }
33
+ else {
34
+ mkdirSync(stateDirectory, { mode: 0o700 });
35
+ }
36
+ const rename = input.rename ?? renameSync;
37
+ const envPath = join(input.root, files[0].relativePath);
38
+ const results = [];
39
+ if (existsSync(envPath) && !input.replaceSecrets) {
40
+ chmodSync(envPath, files[0].mode);
41
+ results.push({ path: files[0].relativePath, status: 'unchanged' });
42
+ }
43
+ else {
44
+ const secrets = generateSelfHostSecrets(input.random ?? randomBytes);
45
+ const status = existsSync(envPath) ? 'replaced' : 'created';
46
+ atomicWrite(envPath, renderEnvironment(secrets), files[0].mode, rename);
47
+ results.push({ path: files[0].relativePath, status });
48
+ }
49
+ const generated = [
50
+ {
51
+ relativePath: files[1].relativePath,
52
+ mode: files[1].mode,
53
+ content: generatedComposeTemplate(),
54
+ },
55
+ {
56
+ relativePath: files[2].relativePath,
57
+ mode: files[2].mode,
58
+ content: serviceConfigTemplate('open-core'),
59
+ },
60
+ ];
61
+ for (const file of generated) {
62
+ results.push(reconcileGeneratedFile(input.root, file, input.force ?? false, rename));
63
+ }
64
+ return results;
65
+ }
66
+ function assertCompatibleRepository(root) {
67
+ const rootPackage = readPackage(join(root, 'package.json'));
68
+ const candidate = rootPackage?.name === 'noodle-borg'
69
+ ? readPackage(join(root, 'opensource', 'overlay', 'package.json'))
70
+ : rootPackage;
71
+ if (candidate?.name !== 'noodle-core' ||
72
+ candidate.noodleCore?.composeInitVersion !== COMPOSE_INIT_VERSION) {
73
+ throw new Error(`this is not a compatible Noodle Core checkout (requires composeInitVersion ${COMPOSE_INIT_VERSION}); use the checkout-local CLI or a matching pinned @noodleseed/one version`);
74
+ }
75
+ }
76
+ function readPackage(path) {
77
+ try {
78
+ return JSON.parse(readFileSync(path, 'utf8'));
79
+ }
80
+ catch {
81
+ return undefined;
82
+ }
83
+ }
84
+ function rejectSymlink(path, label) {
85
+ try {
86
+ if (lstatSync(path).isSymbolicLink()) {
87
+ throw new Error(`${label} must not be a symbolic link: ${path}`);
88
+ }
89
+ }
90
+ catch (error) {
91
+ if (isMissingPath(error))
92
+ return;
93
+ throw error;
94
+ }
95
+ }
96
+ function rejectTemporaryTarget(path) {
97
+ try {
98
+ const stat = lstatSync(path);
99
+ if (stat.isSymbolicLink()) {
100
+ throw new Error(`temporary target must not be a symbolic link: ${path}`);
101
+ }
102
+ throw new Error(`temporary target already exists: ${path}`);
103
+ }
104
+ catch (error) {
105
+ if (isMissingPath(error))
106
+ return;
107
+ throw error;
108
+ }
109
+ }
110
+ function isMissingPath(error) {
111
+ return (typeof error === 'object' &&
112
+ error !== null &&
113
+ 'code' in error &&
114
+ error.code === 'ENOENT');
115
+ }
116
+ function atomicWrite(target, content, mode, rename) {
117
+ const temporary = `${target}.tmp`;
118
+ mkdirSync(dirname(target), { recursive: true });
119
+ let descriptor;
120
+ try {
121
+ descriptor = openSync(temporary, 'wx', mode);
122
+ writeFileSync(descriptor, content, 'utf8');
123
+ fsyncSync(descriptor);
124
+ closeSync(descriptor);
125
+ descriptor = undefined;
126
+ rename(temporary, target);
127
+ chmodSync(target, mode);
128
+ }
129
+ catch (error) {
130
+ if (descriptor !== undefined)
131
+ closeSync(descriptor);
132
+ rmSync(temporary, { force: true });
133
+ throw error;
134
+ }
135
+ }
136
+ function reconcileGeneratedFile(root, file, force, rename) {
137
+ const target = join(root, file.relativePath);
138
+ if (existsSync(target)) {
139
+ const current = readFileSync(target, 'utf8');
140
+ chmodSync(target, file.mode);
141
+ if (current === file.content)
142
+ return { path: file.relativePath, status: 'unchanged' };
143
+ if (!force)
144
+ return { path: file.relativePath, status: 'skipped' };
145
+ atomicWrite(target, file.content, file.mode, rename);
146
+ return { path: file.relativePath, status: 'replaced' };
147
+ }
148
+ atomicWrite(target, file.content, file.mode, rename);
149
+ return { path: file.relativePath, status: 'created' };
150
+ }
151
+ function renderEnvironment(secrets) {
152
+ return [
153
+ 'POSTGRES_DB=noodle',
154
+ 'POSTGRES_USER=noodle',
155
+ `POSTGRES_PASSWORD=${secrets.postgresPassword}`,
156
+ `DATABASE_URL=postgresql://noodle:${secrets.postgresPassword}@postgres:5432/noodle`,
157
+ `NOODLE_SECRET_MASTER_KEY=${secrets.secretMasterKey}`,
158
+ `NOODLE_SELF_HOST_ADMIN_TOKEN=${secrets.adminToken}`,
159
+ 'NOODLE_ASSET_ROOT=/var/lib/noodle/assets',
160
+ `NOODLE_ASSET_IDENTITY_SALT=${secrets.assetIdentitySalt}`,
161
+ 'HOST=0.0.0.0',
162
+ 'PORT=8787',
163
+ 'PUBLIC_BASE_URL=http://localhost:8787',
164
+ '',
165
+ ].join('\n');
166
+ }
167
+ function generatedComposeTemplate() {
168
+ return [
169
+ '# Generated by noodle service init --profile open-core --compose.',
170
+ '# Re-run the command to reconcile this file; do not put secrets here.',
171
+ 'services:',
172
+ ' postgres:',
173
+ ' image: postgres:16',
174
+ ' user: postgres',
175
+ ' env_file:',
176
+ ' - .env',
177
+ ' volumes:',
178
+ ' - postgres-data:/var/lib/postgresql/data',
179
+ ' healthcheck:',
180
+ ' test:',
181
+ ' - CMD-SHELL',
182
+ ' - \'pg_isready -U "$${POSTGRES_USER}" -d "$${POSTGRES_DB}"\'',
183
+ ' interval: 2s',
184
+ ' timeout: 3s',
185
+ ' retries: 30',
186
+ ' restart: unless-stopped',
187
+ ' stop_grace_period: 30s',
188
+ ' read_only: true',
189
+ ' cap_drop:',
190
+ ' - ALL',
191
+ ' security_opt:',
192
+ ' - no-new-privileges:true',
193
+ ' tmpfs:',
194
+ ' - /tmp:rw,noexec,nosuid,size=64m',
195
+ ' - /var/run/postgresql:rw,noexec,nosuid,size=16m,uid=999,gid=999,mode=0775',
196
+ ' noodle:',
197
+ ' build:',
198
+ ' context: ..',
199
+ ' dockerfile: Dockerfile',
200
+ ' target: service-runtime',
201
+ ' user: node',
202
+ ' env_file:',
203
+ ' - .env',
204
+ ' ports:',
205
+ ' - 127.0.0.1:8787:8787',
206
+ ' volumes:',
207
+ ' - asset-data:/var/lib/noodle/assets',
208
+ ' depends_on:',
209
+ ' postgres:',
210
+ ' condition: service_healthy',
211
+ ' healthcheck:',
212
+ ' test:',
213
+ ' - CMD',
214
+ ' - node',
215
+ ' - -e',
216
+ ' - "fetch(\'http://127.0.0.1:8787/readyz\').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))"',
217
+ ' interval: 2s',
218
+ ' timeout: 3s',
219
+ ' retries: 30',
220
+ ' restart: unless-stopped',
221
+ ' stop_grace_period: 30s',
222
+ ' init: true',
223
+ ' read_only: true',
224
+ ' cap_drop:',
225
+ ' - ALL',
226
+ ' security_opt:',
227
+ ' - no-new-privileges:true',
228
+ ' tmpfs:',
229
+ ' - /tmp:rw,noexec,nosuid,size=64m',
230
+ ' bootstrap:',
231
+ ' build:',
232
+ ' context: ..',
233
+ ' dockerfile: Dockerfile',
234
+ ' target: cli-runtime',
235
+ ' user: node',
236
+ ' env_file:',
237
+ ' - .env',
238
+ ' environment:',
239
+ ' NOODLE_SERVICE_URL: http://noodle:8787',
240
+ ' depends_on:',
241
+ ' noodle:',
242
+ ' condition: service_healthy',
243
+ ' entrypoint:',
244
+ ' - /bin/sh',
245
+ ' - -eu',
246
+ ' - -c',
247
+ ' command:',
248
+ ' - |',
249
+ ' export NOODLE_AUTH_TOKEN="$${NOODLE_SELF_HOST_ADMIN_TOKEN}"',
250
+ ' exec node dist/bin.js orgs create local --display-name Local --json',
251
+ ' restart: no',
252
+ ' init: true',
253
+ ' read_only: true',
254
+ ' cap_drop:',
255
+ ' - ALL',
256
+ ' security_opt:',
257
+ ' - no-new-privileges:true',
258
+ ' tmpfs:',
259
+ ' - /tmp:rw,noexec,nosuid,size=64m',
260
+ 'volumes:',
261
+ ' postgres-data: {}',
262
+ ' asset-data: {}',
263
+ '',
264
+ ].join('\n');
265
+ }
266
+ export function serviceConfigTemplate(profile) {
267
+ if (profile === 'enterprise-governed') {
268
+ return [
269
+ 'profile: enterprise-governed',
270
+ '',
271
+ 'identity:',
272
+ ' admin:',
273
+ ' provider: google-workspace',
274
+ '',
275
+ 'access:',
276
+ ' mode: org-members',
277
+ '',
278
+ 'audit:',
279
+ ' store: postgres',
280
+ '',
281
+ 'controls:',
282
+ ' rateLimits:',
283
+ ' default:',
284
+ ' perMinute: 60',
285
+ '',
286
+ 'apps:',
287
+ ' enabled: true',
288
+ '',
289
+ ].join('\n');
290
+ }
291
+ if (profile === 'agency-managed') {
292
+ return [
293
+ 'profile: agency-managed',
294
+ '',
295
+ 'org:',
296
+ ' slug: acme',
297
+ ' template: mid-market',
298
+ '',
299
+ 'audit:',
300
+ ' store: postgres',
301
+ '',
302
+ 'access:',
303
+ ' mode: org-members',
304
+ '',
305
+ 'controls:',
306
+ ' preset: standard',
307
+ '',
308
+ 'apps:',
309
+ ' enabled: true',
310
+ '',
311
+ ].join('\n');
312
+ }
313
+ return [`profile: ${profile}`, ''].join('\n');
314
+ }
315
+ //# sourceMappingURL=self-host-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-host-init.js","sourceRoot":"","sources":["../src/self-host-init.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ const HOUR = 60 * MINUTE;
17
17
  /** Ceilings. Nothing may exceed these, whatever the manifest or managed config asks for. */
18
18
  export const ADMISSION_MAXIMUM = Object.freeze({
19
19
  messageCharacters: 4_000,
20
- turnsPerSession: 20,
20
+ turnsPerSession: 40,
21
21
  modelStepsPerTurn: 6,
22
22
  toolCallsPerTurn: 8,
23
23
  pendingInteractions: 1,