@kindgi/handler-runtime 0.0.0-bootstrap.0 → 0.1.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 (68) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +218 -2
  3. package/dist/build-extensions.d.ts +75 -0
  4. package/dist/build-extensions.d.ts.map +1 -0
  5. package/dist/build-extensions.js +27 -0
  6. package/dist/build-extensions.js.map +1 -0
  7. package/dist/discovery.d.ts +19 -0
  8. package/dist/discovery.d.ts.map +1 -0
  9. package/dist/discovery.js +81 -0
  10. package/dist/discovery.js.map +1 -0
  11. package/dist/entrypoint.d.ts +10 -0
  12. package/dist/entrypoint.d.ts.map +1 -0
  13. package/dist/entrypoint.js +24 -0
  14. package/dist/entrypoint.js.map +1 -0
  15. package/dist/handler-runner.d.ts +127 -0
  16. package/dist/handler-runner.d.ts.map +1 -0
  17. package/dist/handler-runner.js +318 -0
  18. package/dist/handler-runner.js.map +1 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +7 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/kindgi-index-main.d.ts +2 -0
  24. package/dist/kindgi-index-main.d.ts.map +1 -0
  25. package/dist/kindgi-index-main.js +15 -0
  26. package/dist/kindgi-index-main.js.map +1 -0
  27. package/dist/kindgi-index.d.ts +316 -0
  28. package/dist/kindgi-index.d.ts.map +1 -0
  29. package/dist/kindgi-index.js +1201 -0
  30. package/dist/kindgi-index.js.map +1 -0
  31. package/dist/pack-env.d.ts +66 -0
  32. package/dist/pack-env.d.ts.map +1 -0
  33. package/dist/pack-env.js +97 -0
  34. package/dist/pack-env.js.map +1 -0
  35. package/dist/pack-service/index.d.ts +7 -0
  36. package/dist/pack-service/index.d.ts.map +1 -0
  37. package/dist/pack-service/index.js +6 -0
  38. package/dist/pack-service/index.js.map +1 -0
  39. package/dist/pack-service/main.d.ts +47 -0
  40. package/dist/pack-service/main.d.ts.map +1 -0
  41. package/dist/pack-service/main.js +201 -0
  42. package/dist/pack-service/main.js.map +1 -0
  43. package/dist/pack-service/service.d.ts +61 -0
  44. package/dist/pack-service/service.d.ts.map +1 -0
  45. package/dist/pack-service/service.js +341 -0
  46. package/dist/pack-service/service.js.map +1 -0
  47. package/dist/pack-service/supervisor.d.ts +138 -0
  48. package/dist/pack-service/supervisor.d.ts.map +1 -0
  49. package/dist/pack-service/supervisor.js +424 -0
  50. package/dist/pack-service/supervisor.js.map +1 -0
  51. package/dist/protocol.d.ts +104 -0
  52. package/dist/protocol.d.ts.map +1 -0
  53. package/dist/protocol.js +116 -0
  54. package/dist/protocol.js.map +1 -0
  55. package/package.json +87 -4
  56. package/src/build-extensions.ts +100 -0
  57. package/src/discovery.ts +89 -0
  58. package/src/entrypoint.ts +23 -0
  59. package/src/handler-runner.ts +500 -0
  60. package/src/index.ts +66 -0
  61. package/src/kindgi-index-main.ts +17 -0
  62. package/src/kindgi-index.ts +1605 -0
  63. package/src/pack-env.ts +148 -0
  64. package/src/pack-service/index.ts +17 -0
  65. package/src/pack-service/main.ts +246 -0
  66. package/src/pack-service/service.ts +478 -0
  67. package/src/pack-service/supervisor.ts +600 -0
  68. package/src/protocol.ts +214 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kindgi-index.js","sourceRoot":"","sources":["../src/kindgi-index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * The process environment a pack's code reads: names its handlers and the
3
+ * libraries they import take from `process.env` (a database URL a client
4
+ * reads at import, a bucket name). Declared once per pack, in
5
+ * `kindgi.config` (`env: { required, optional }`; Python:
6
+ * `[tool.kindgi.env]`), and carried in `index.json`, so the pack service
7
+ * in an image knows what it needs.
8
+ *
9
+ * A deployment injects exactly these names: `required` must be there for
10
+ * the pack service to be ready, `optional` is injected when the target
11
+ * has a value. Nothing else from an env file reaches the process.
12
+ *
13
+ * Distinct from `needsSpec.env` / `ctx.env`, the per-call values the
14
+ * runtime resolves for a call's tenant, and from `needsSpec.secrets` /
15
+ * `ctx.secrets`.
16
+ */
17
+ /** A pack's declared process environment, as `index.json` carries it. */
18
+ export interface PackEnvDeclaration {
19
+ /** Names the pack service needs, set and non-empty, to be ready. Sorted. */
20
+ readonly required: readonly string[];
21
+ /** Names the pack reads when present. Sorted. */
22
+ readonly optional: readonly string[];
23
+ }
24
+ /** `env` in `kindgi.config`, as the author writes it. */
25
+ export interface PackEnvConfig {
26
+ readonly required?: readonly string[];
27
+ readonly optional?: readonly string[];
28
+ }
29
+ /** A process environment variable name. */
30
+ export declare const PACK_ENV_NAME: RegExp;
31
+ /** The prefix of the names that configure Kindgi itself; never a pack's. */
32
+ export declare const RESERVED_ENV_PREFIX = "KINDGI_";
33
+ export type PackEnvResult = {
34
+ readonly kind: 'ok';
35
+ readonly value: PackEnvDeclaration | undefined;
36
+ } | {
37
+ readonly kind: 'err';
38
+ readonly message: string;
39
+ };
40
+ /**
41
+ * Validate a config's `env` and normalize it to what the index carries:
42
+ * both lists, each sorted (code-unit order). `undefined` when nothing is
43
+ * declared, so an index without `env` stays byte-identical.
44
+ *
45
+ * Refused: a name that isn't an environment variable name, a `KINDGI_*`
46
+ * name, a name listed twice, and a name in both lists.
47
+ */
48
+ export declare function resolvePackEnv(env: unknown): PackEnvResult;
49
+ /**
50
+ * The required names `environment` doesn't provide: not set, or set to
51
+ * the empty string. Sorted, like the declaration.
52
+ */
53
+ export declare function missingPackEnv(declaration: PackEnvDeclaration | undefined, environment: Readonly<Record<string, string | undefined>>): readonly string[];
54
+ /** How the pack service treats missing required names (`KINDGI_PACK_ENV_CHECK`). */
55
+ export type PackEnvCheck = 'strict' | 'warn';
56
+ /** The variable that sets {@link PackEnvCheck}. */
57
+ export declare const PACK_ENV_CHECK_VAR = "KINDGI_PACK_ENV_CHECK";
58
+ /** `KINDGI_PACK_ENV_CHECK`'s value; unset or empty is `strict`. */
59
+ export declare function parsePackEnvCheck(raw: string | undefined): {
60
+ readonly kind: 'ok';
61
+ readonly value: PackEnvCheck;
62
+ } | {
63
+ readonly kind: 'err';
64
+ readonly message: string;
65
+ };
66
+ //# sourceMappingURL=pack-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-env.d.ts","sourceRoot":"","sources":["../src/pack-env.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,2CAA2C;AAC3C,eAAO,MAAM,aAAa,QAA6B,CAAC;AAExD,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAwD1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,kBAAkB,GAAG,SAAS,EAC3C,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GACxD,SAAS,MAAM,EAAE,CAMnB;AAED,oFAAoF;AACpF,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7C,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAE1D,mEAAmE;AACnE,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,GAErB;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAOrD"}
@@ -0,0 +1,97 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /** A process environment variable name. */
4
+ export const PACK_ENV_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
5
+ /** The prefix of the names that configure Kindgi itself; never a pack's. */
6
+ export const RESERVED_ENV_PREFIX = 'KINDGI_';
7
+ /**
8
+ * Validate a config's `env` and normalize it to what the index carries:
9
+ * both lists, each sorted (code-unit order). `undefined` when nothing is
10
+ * declared, so an index without `env` stays byte-identical.
11
+ *
12
+ * Refused: a name that isn't an environment variable name, a `KINDGI_*`
13
+ * name, a name listed twice, and a name in both lists.
14
+ */
15
+ export function resolvePackEnv(env) {
16
+ if (env === undefined)
17
+ return { kind: 'ok', value: undefined };
18
+ if (env === null || typeof env !== 'object' || Array.isArray(env)) {
19
+ return {
20
+ kind: 'err',
21
+ message: '`env` must be an object: { required?: string[], optional?: string[] }',
22
+ };
23
+ }
24
+ const unknownKeys = Object.keys(env).filter((k) => k !== 'required' && k !== 'optional');
25
+ if (unknownKeys.length > 0) {
26
+ return {
27
+ kind: 'err',
28
+ message: `\`env\` takes only \`required\` and \`optional\`, not ${unknownKeys.map((k) => `\`${k}\``).join(', ')}`,
29
+ };
30
+ }
31
+ const { required, optional } = env;
32
+ const lists = { required, optional };
33
+ const problems = [];
34
+ const seen = new Map();
35
+ for (const [list, names] of Object.entries(lists)) {
36
+ if (names === undefined)
37
+ continue;
38
+ if (!Array.isArray(names) || names.some((n) => typeof n !== 'string')) {
39
+ problems.push(`\`env.${list}\` must be a list of names`);
40
+ continue;
41
+ }
42
+ for (const name of names) {
43
+ if (!PACK_ENV_NAME.test(name)) {
44
+ problems.push(`"${name}" in \`env.${list}\` isn't an environment variable name`);
45
+ }
46
+ else if (name.startsWith(RESERVED_ENV_PREFIX)) {
47
+ problems.push(`"${name}" in \`env.${list}\`: \`${RESERVED_ENV_PREFIX}*\` names configure Kindgi, not the pack`);
48
+ }
49
+ else if (seen.has(name)) {
50
+ const first = seen.get(name);
51
+ problems.push(first === list
52
+ ? `"${name}" is listed twice in \`env.${list}\``
53
+ : `"${name}" is in both \`env.required\` and \`env.optional\``);
54
+ }
55
+ else {
56
+ seen.set(name, list);
57
+ }
58
+ }
59
+ }
60
+ if (problems.length > 0)
61
+ return { kind: 'err', message: problems.join('; ') };
62
+ const sorted = (names) => Array.isArray(names) ? [...names].sort(byCodeUnit) : [];
63
+ const declaration = { optional: sorted(optional), required: sorted(required) };
64
+ if (declaration.required.length === 0 && declaration.optional.length === 0) {
65
+ return { kind: 'ok', value: undefined };
66
+ }
67
+ return { kind: 'ok', value: declaration };
68
+ }
69
+ /**
70
+ * The required names `environment` doesn't provide: not set, or set to
71
+ * the empty string. Sorted, like the declaration.
72
+ */
73
+ export function missingPackEnv(declaration, environment) {
74
+ if (declaration === undefined)
75
+ return [];
76
+ return declaration.required.filter((name) => {
77
+ const value = environment[name];
78
+ return value === undefined || value === '';
79
+ });
80
+ }
81
+ /** The variable that sets {@link PackEnvCheck}. */
82
+ export const PACK_ENV_CHECK_VAR = 'KINDGI_PACK_ENV_CHECK';
83
+ /** `KINDGI_PACK_ENV_CHECK`'s value; unset or empty is `strict`. */
84
+ export function parsePackEnvCheck(raw) {
85
+ if (raw === undefined || raw === '' || raw === 'strict')
86
+ return { kind: 'ok', value: 'strict' };
87
+ if (raw === 'warn')
88
+ return { kind: 'ok', value: 'warn' };
89
+ return {
90
+ kind: 'err',
91
+ message: `${PACK_ENV_CHECK_VAR} must be \`strict\` or \`warn\`, not "${raw}"`,
92
+ };
93
+ }
94
+ function byCodeUnit(a, b) {
95
+ return a < b ? -1 : a > b ? 1 : 0;
96
+ }
97
+ //# sourceMappingURL=pack-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-env.js","sourceRoot":"","sources":["../src/pack-env.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAiCjC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,0BAA0B,CAAC;AAExD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAM7C;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC/D,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,OAAO;YACL,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,uEAAuE;SACjF,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;IACzF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,yDAAyD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAClH,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAG9B,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YACtE,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,4BAA4B,CAAC,CAAC;YACzD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,IAAI,uCAAuC,CAAC,CAAC;YACnF,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,IAAI,CACX,IAAI,IAAI,cAAc,IAAI,SAAS,mBAAmB,0CAA0C,CACjG,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CACX,KAAK,KAAK,IAAI;oBACZ,CAAC,CAAC,IAAI,IAAI,8BAA8B,IAAI,IAAI;oBAChD,CAAC,CAAC,IAAI,IAAI,oDAAoD,CACjE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAE9E,MAAM,MAAM,GAAG,CAAC,KAAc,EAAY,EAAE,CAC1C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAI,KAAkB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,WAAW,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/E,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,WAA2C,EAC3C,WAAyD;IAEzD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAKD,mDAAmD;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAE1D,mEAAmE;AACnE,MAAM,UAAU,iBAAiB,CAC/B,GAAuB;IAIvB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAChG,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACzD,OAAO;QACL,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,GAAG,kBAAkB,yCAAyC,GAAG,GAAG;KAC9E,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { createPackService } from './service.js';
2
+ export type { PackService, PackServiceLogEvent, PackServiceOptions } from './service.js';
3
+ export { PACK_SERVICE_DRAIN_MS, main, readPackServiceConfig, startPackService } from './main.js';
4
+ export type { PackServiceConfig, RunningPackService } from './main.js';
5
+ export { createPackServiceSupervisor } from './supervisor.js';
6
+ export type { BootFailure, PackRelay, PackRelayCall, PackRelayOutcome, PackServiceSupervisor, PackServiceSupervisorEvent, PackServiceSupervisorOptions, } from './supervisor.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pack-service/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACjG,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,YAAY,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ export { createPackService } from './service.js';
4
+ export { PACK_SERVICE_DRAIN_MS, main, readPackServiceConfig, startPackService } from './main.js';
5
+ export { createPackServiceSupervisor } from './supervisor.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pack-service/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type Server } from 'node:http';
2
+ import { type PackEnvCheck } from '../pack-env.js';
3
+ import { type PackService, type PackServiceLogEvent } from './service.js';
4
+ export interface PackServiceConfig {
5
+ readonly indexPath: string;
6
+ readonly moduleRoot: string;
7
+ /** A build's bundle map (source path → bundle path under `moduleRoot`). */
8
+ readonly bundleMapPath?: string;
9
+ readonly token: string;
10
+ readonly port: number;
11
+ /** The listen address. Absent: every interface. */
12
+ readonly host?: string;
13
+ readonly maxConcurrency?: number;
14
+ /** Default `strict`. */
15
+ readonly envCheck?: PackEnvCheck;
16
+ }
17
+ type ConfigOutcome = {
18
+ readonly kind: 'ok';
19
+ readonly value: PackServiceConfig;
20
+ } | {
21
+ readonly kind: 'err';
22
+ readonly problems: readonly string[];
23
+ };
24
+ /** Read the process configuration from arguments and environment. */
25
+ export declare function readPackServiceConfig(argv: readonly string[], env: Readonly<Record<string, string | undefined>>): ConfigOutcome;
26
+ /** How long SIGTERM lets in-flight calls finish (sized for Cloud Run's 10 s SIGTERM→SIGKILL window). */
27
+ export declare const PACK_SERVICE_DRAIN_MS = 8000;
28
+ export interface RunningPackService {
29
+ readonly service: PackService;
30
+ readonly server: Server;
31
+ readonly port: number;
32
+ /** Drain in-flight calls (up to `graceMs`), then stop listening. */
33
+ stop(graceMs?: number): Promise<void>;
34
+ }
35
+ type StartOutcome = {
36
+ readonly kind: 'ok';
37
+ readonly value: RunningPackService;
38
+ } | {
39
+ readonly kind: 'err';
40
+ readonly problems: readonly string[];
41
+ };
42
+ /** Load the index, check and prewarm every module, then listen. */
43
+ export declare function startPackService(config: PackServiceConfig, logger?: (event: PackServiceLogEvent | Record<string, unknown>) => void): Promise<StartOutcome>;
44
+ /** Process entry. Resolves with the exit code. */
45
+ export declare function main(argv?: readonly string[], env?: Readonly<Record<string, string | undefined>>): Promise<number>;
46
+ export {};
47
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/pack-service/main.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,WAAW,CAAC;AAMtD,OAAO,EAAsB,KAAK,YAAY,EAAqB,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAqB,MAAM,cAAc,CAAC;AAE7F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;CAClC;AAED,KAAK,aAAa,GACd;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEnE,qEAAqE;AACrE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAChD,aAAa,CAuCf;AAED,wGAAwG;AACxG,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,KAAK,YAAY,GACb;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEnE,mEAAmE;AACnE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,iBAAiB,EACzB,MAAM,GAAE,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAc,GAC/E,OAAO,CAAC,YAAY,CAAC,CA4EvB;AAED,kDAAkD;AAClD,wBAAsB,IAAI,CACxB,IAAI,GAAE,SAAS,MAAM,EAA0B,EAC/C,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,GAC9D,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
@@ -0,0 +1,201 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /**
4
+ * The pack service process: `node dist/pack-service/main.js
5
+ * [--index <path>] [--module-root <dir>] [--bundle-map <path>]
6
+ * [--host <address>]` (package export
7
+ * `@kindgi/handler-runtime/pack-service-main`).
8
+ *
9
+ * Configuration (arguments win over environment):
10
+ * - index: `--index`, else `KINDGI_PACK_INDEX`, else `/app/index.json`
11
+ * - module root: `--module-root`, else the index's directory — where
12
+ * the index's module paths resolve
13
+ * - bundle map: `--bundle-map` (optional) — a build's map of each
14
+ * source path the index names to its bundle, relative
15
+ * to the module root (`kindgi build` writes
16
+ * `dist/bundle-map.json`): modules load from the bundles
17
+ * - token: `KINDGI_PACK_SERVICE_TOKEN` (required)
18
+ * - concurrency: `KINDGI_PACK_SERVICE_MAX_CONCURRENCY` (default 32)
19
+ * - env check: `KINDGI_PACK_ENV_CHECK`, `strict` (default) | `warn`:
20
+ * whether a required env name the index declares and the
21
+ * process lacks keeps the service from being ready
22
+ * - port: `PORT` (platform convention; default 8080; `0` picks one)
23
+ * - host: `--host`, else every interface (a container platform
24
+ * such as Cloud Run needs that); a local supervisor
25
+ * passes `127.0.0.1`
26
+ *
27
+ * Boot fails (exit 1, listing every problem) when the index can't be
28
+ * read, a module it names is missing, or a module fails to import — so a
29
+ * broken build never becomes ready. SIGTERM drains in-flight calls
30
+ * (readyz answers 503 meanwhile) and exits 0.
31
+ *
32
+ * Logs are JSON lines on stderr. The `listening` line carries the bound
33
+ * port, for callers that start it with `PORT=0`.
34
+ */
35
+ import { access, readFile } from 'node:fs/promises';
36
+ import { createServer } from 'node:http';
37
+ import { dirname, isAbsolute, resolve } from 'node:path';
38
+ import { isProcessEntrypoint } from '../entrypoint.js';
39
+ import { INDEX_ENVELOPE_VERSION, readBundleMap } from '../kindgi-index.js';
40
+ import { PACK_ENV_CHECK_VAR, parsePackEnvCheck } from '../pack-env.js';
41
+ import { createPackService } from './service.js';
42
+ /** Read the process configuration from arguments and environment. */
43
+ export function readPackServiceConfig(argv, env) {
44
+ const arg = (name) => {
45
+ const at = argv.indexOf(name);
46
+ return at >= 0 ? argv[at + 1] : undefined;
47
+ };
48
+ const problems = [];
49
+ const indexPath = resolve(arg('--index') ?? env.KINDGI_PACK_INDEX ?? '/app/index.json');
50
+ const moduleRoot = resolve(arg('--module-root') ?? dirname(indexPath));
51
+ const bundleMap = arg('--bundle-map');
52
+ if (bundleMap === '')
53
+ problems.push('--bundle-map needs a path');
54
+ const host = arg('--host');
55
+ if (host === '')
56
+ problems.push('--host needs an address');
57
+ const token = env.KINDGI_PACK_SERVICE_TOKEN ?? '';
58
+ if (token.length === 0)
59
+ problems.push('KINDGI_PACK_SERVICE_TOKEN is required');
60
+ const port = Number(env.PORT ?? '8080');
61
+ if (!Number.isInteger(port) || port < 0 || port > 65535) {
62
+ problems.push(`PORT must be a port number, got ${JSON.stringify(env.PORT)}`);
63
+ }
64
+ const rawConcurrency = env.KINDGI_PACK_SERVICE_MAX_CONCURRENCY;
65
+ const maxConcurrency = rawConcurrency === undefined ? undefined : Number(rawConcurrency);
66
+ if (maxConcurrency !== undefined && (!Number.isInteger(maxConcurrency) || maxConcurrency < 1)) {
67
+ problems.push('KINDGI_PACK_SERVICE_MAX_CONCURRENCY must be a positive integer');
68
+ }
69
+ const envCheck = parsePackEnvCheck(env[PACK_ENV_CHECK_VAR]);
70
+ if (envCheck.kind === 'err')
71
+ problems.push(envCheck.message);
72
+ if (problems.length > 0 || envCheck.kind === 'err')
73
+ return { kind: 'err', problems };
74
+ return {
75
+ kind: 'ok',
76
+ value: {
77
+ indexPath,
78
+ moduleRoot,
79
+ ...(bundleMap && { bundleMapPath: resolve(bundleMap) }),
80
+ token,
81
+ port,
82
+ ...(host && { host }),
83
+ ...(maxConcurrency !== undefined && { maxConcurrency }),
84
+ envCheck: envCheck.value,
85
+ },
86
+ };
87
+ }
88
+ /** How long SIGTERM lets in-flight calls finish (sized for Cloud Run's 10 s SIGTERM→SIGKILL window). */
89
+ export const PACK_SERVICE_DRAIN_MS = 8_000;
90
+ /** Load the index, check and prewarm every module, then listen. */
91
+ export async function startPackService(config, logger = logJson) {
92
+ let index;
93
+ try {
94
+ index = JSON.parse(await readFile(config.indexPath, 'utf8'));
95
+ }
96
+ catch (cause) {
97
+ return { kind: 'err', problems: [`Cannot read the pack index: ${describe(cause)}`] };
98
+ }
99
+ if (index.v !== INDEX_ENVELOPE_VERSION) {
100
+ return {
101
+ kind: 'err',
102
+ problems: [`Index envelope v${String(index.v)} is not v${INDEX_ENVELOPE_VERSION}`],
103
+ };
104
+ }
105
+ let bundles = {};
106
+ if (config.bundleMapPath !== undefined) {
107
+ const read = await readBundleMap(config.bundleMapPath);
108
+ if (read.kind === 'err')
109
+ return { kind: 'err', problems: [read.message] };
110
+ bundles = read.value;
111
+ }
112
+ // A module the index names loads from its bundle when the build mapped it.
113
+ const resolveModule = (modulePath) => {
114
+ const target = bundles[modulePath] ?? modulePath;
115
+ return isAbsolute(target) ? target : resolve(config.moduleRoot, target);
116
+ };
117
+ const missing = [];
118
+ const paths = [
119
+ ...index.tools.map((t) => t.modulePath),
120
+ ...index.guardrails.map((g) => g.checkModulePath),
121
+ ];
122
+ for (const p of paths) {
123
+ await access(resolveModule(p)).catch(() => missing.push(`Missing module: ${p}`));
124
+ }
125
+ if (missing.length > 0)
126
+ return { kind: 'err', problems: missing };
127
+ const service = createPackService({
128
+ index,
129
+ resolveModule,
130
+ token: config.token,
131
+ ...(config.maxConcurrency !== undefined && { maxConcurrency: config.maxConcurrency }),
132
+ ...(config.envCheck !== undefined && { envCheck: config.envCheck }),
133
+ logger,
134
+ });
135
+ const failures = await service.prewarm();
136
+ if (failures.length > 0)
137
+ return { kind: 'err', problems: failures.map((f) => f.message) };
138
+ const server = createServer(service.handle);
139
+ await new Promise((ready) => config.host === undefined
140
+ ? server.listen(config.port, ready)
141
+ : server.listen(config.port, config.host, ready));
142
+ const port = server.address().port;
143
+ logger({
144
+ kind: 'listening',
145
+ port,
146
+ packId: index.packId,
147
+ artifactVersion: index.artifactVersion,
148
+ });
149
+ return {
150
+ kind: 'ok',
151
+ value: {
152
+ service,
153
+ server,
154
+ port,
155
+ async stop(graceMs = PACK_SERVICE_DRAIN_MS) {
156
+ await service.drain(graceMs);
157
+ // Calls have finished (or the grace ran out). What is left is an idle
158
+ // keep-alive or a caller that went away mid-call, whose half-open
159
+ // connection would otherwise hold `close` for seconds.
160
+ const closed = new Promise((done) => server.close(() => done()));
161
+ server.closeAllConnections();
162
+ await closed;
163
+ },
164
+ },
165
+ };
166
+ }
167
+ /** Process entry. Resolves with the exit code. */
168
+ export async function main(argv = process.argv.slice(2), env = process.env) {
169
+ const config = readPackServiceConfig(argv, env);
170
+ if (config.kind === 'err') {
171
+ logJson({ kind: 'config-invalid', problems: config.problems });
172
+ return 1;
173
+ }
174
+ // The token is for the service's callers. The pack's code, loaded
175
+ // next, runs in this process and has no use for it — and a dependency
176
+ // that read it could call the pack's tools around the runtime.
177
+ Reflect.deleteProperty(process.env, 'KINDGI_PACK_SERVICE_TOKEN');
178
+ const started = await startPackService(config.value);
179
+ if (started.kind === 'err') {
180
+ logJson({ kind: 'boot-failed', problems: started.problems });
181
+ return 1;
182
+ }
183
+ await new Promise((stopped) => {
184
+ process.once('SIGTERM', () => {
185
+ logJson({ kind: 'draining' });
186
+ void started.value.stop().then(stopped);
187
+ });
188
+ });
189
+ logJson({ kind: 'stopped' });
190
+ return 0;
191
+ }
192
+ function logJson(event) {
193
+ process.stderr.write(`${JSON.stringify(event)}\n`);
194
+ }
195
+ function describe(cause) {
196
+ return cause instanceof Error ? cause.message : String(cause);
197
+ }
198
+ if (isProcessEntrypoint(import.meta.url)) {
199
+ void main().then((code) => process.exit(code));
200
+ }
201
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/pack-service/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { Index } from '../kindgi-index.js';
3
+ import { type PackEnvCheck } from '../pack-env.js';
4
+ import { type PackErrorCode, type PackErrorMessage } from '../protocol.js';
5
+ export interface PackServiceOptions {
6
+ /** The pack's `index.json`, as built. */
7
+ readonly index: Index;
8
+ /** Where an index entry's `modulePath` lives on this host (absolute path). */
9
+ readonly resolveModule: (modulePath: string) => string;
10
+ /** Callers must send it in the `kindgi-pack-token` header. */
11
+ readonly token: string;
12
+ /** Concurrent calls before the service answers 503. Default 32. */
13
+ readonly maxConcurrency?: number;
14
+ /** Largest accepted request body. Default 10 MiB. */
15
+ readonly maxBodyBytes?: number;
16
+ /** Deadline when a call sends no `kindgi-timeout-ms`. Default 120 s. */
17
+ readonly defaultTimeoutMs?: number;
18
+ readonly logger?: (event: PackServiceLogEvent) => void;
19
+ /**
20
+ * The process environment the index's `env.required` names are checked
21
+ * against, once, at creation. Default `process.env`.
22
+ */
23
+ readonly env?: Readonly<Record<string, string | undefined>>;
24
+ /**
25
+ * `strict` (default): with a required name missing, the service isn't
26
+ * ready (`/readyz` and calls answer 503 naming it). `warn`: it serves,
27
+ * and reports the names in the log and `/v1/info`.
28
+ */
29
+ readonly envCheck?: PackEnvCheck;
30
+ /** Test seam: how a module is loaded from its absolute path. */
31
+ readonly importModule?: (absolutePath: string) => Promise<unknown>;
32
+ }
33
+ export type PackServiceLogEvent = {
34
+ readonly kind: 'call';
35
+ readonly target: 'tool' | 'check';
36
+ readonly id: string;
37
+ readonly durationMs: number;
38
+ readonly outcome: 'ok' | PackErrorCode;
39
+ } | {
40
+ /** A handler ignored its abort signal and finished after its call ended. */
41
+ readonly kind: 'handler-finished-late';
42
+ readonly target: 'tool' | 'check';
43
+ readonly id: string;
44
+ readonly afterMs: number;
45
+ } | {
46
+ /** Required env names the process doesn't have, logged once at startup. */
47
+ readonly kind: 'missing-env';
48
+ readonly check: PackEnvCheck;
49
+ readonly names: readonly string[];
50
+ };
51
+ export interface PackService {
52
+ readonly handle: (req: IncomingMessage, res: ServerResponse) => void;
53
+ /** Import every tool and check module; returns the ones that failed. */
54
+ prewarm(): Promise<readonly PackErrorMessage[]>;
55
+ /** Stop accepting calls (readyz → 503) and wait for in-flight ones, up to `graceMs`. */
56
+ drain(graceMs: number): Promise<void>;
57
+ inFlight(): number;
58
+ ready(): boolean;
59
+ }
60
+ export declare function createPackService(options: PackServiceOptions): PackService;
61
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/pack-service/service.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjE,OAAO,KAAK,EAAE,KAAK,EAAiC,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAKtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,gEAAgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE;AAED,MAAM,MAAM,mBAAmB,GAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,aAAa,CAAC;CACxC,GACD;IACE,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEN,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACrE,wEAAwE;IACxE,OAAO,IAAI,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAAC;IAChD,wFAAwF;IACxF,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,IAAI,MAAM,CAAC;IACnB,KAAK,IAAI,OAAO,CAAC;CAClB;AAMD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CA6Q1E"}