@arki/dot 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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +201 -0
  3. package/dist/cli/discover.d.ts +65 -0
  4. package/dist/cli/discover.d.ts.map +1 -0
  5. package/dist/cli/discover.js +184 -0
  6. package/dist/cli/discover.js.map +1 -0
  7. package/dist/cli/error-codes.d.ts +49 -0
  8. package/dist/cli/error-codes.d.ts.map +1 -0
  9. package/dist/cli/error-codes.js +61 -0
  10. package/dist/cli/error-codes.js.map +1 -0
  11. package/dist/cli/files.d.ts +67 -0
  12. package/dist/cli/files.d.ts.map +1 -0
  13. package/dist/cli/files.js +80 -0
  14. package/dist/cli/files.js.map +1 -0
  15. package/dist/cli/index.d.ts +95 -0
  16. package/dist/cli/index.d.ts.map +1 -0
  17. package/dist/cli/index.js +456 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/cli/json.d.ts +38 -0
  20. package/dist/cli/json.d.ts.map +1 -0
  21. package/dist/cli/json.js +18 -0
  22. package/dist/cli/json.js.map +1 -0
  23. package/dist/cli/new.d.ts +105 -0
  24. package/dist/cli/new.d.ts.map +1 -0
  25. package/dist/cli/new.js +322 -0
  26. package/dist/cli/new.js.map +1 -0
  27. package/dist/cli/observability-probe.d.ts +28 -0
  28. package/dist/cli/observability-probe.d.ts.map +1 -0
  29. package/dist/cli/observability-probe.js +44 -0
  30. package/dist/cli/observability-probe.js.map +1 -0
  31. package/dist/cli/render-doctor.d.ts +26 -0
  32. package/dist/cli/render-doctor.d.ts.map +1 -0
  33. package/dist/cli/render-doctor.js +183 -0
  34. package/dist/cli/render-doctor.js.map +1 -0
  35. package/dist/cli/render-explain.d.ts +43 -0
  36. package/dist/cli/render-explain.d.ts.map +1 -0
  37. package/dist/cli/render-explain.js +127 -0
  38. package/dist/cli/render-explain.js.map +1 -0
  39. package/dist/define-app.d.ts +125 -0
  40. package/dist/define-app.d.ts.map +1 -0
  41. package/dist/define-app.js +126 -0
  42. package/dist/define-app.js.map +1 -0
  43. package/dist/dependency-graph.d.ts +25 -0
  44. package/dist/dependency-graph.d.ts.map +1 -0
  45. package/dist/dependency-graph.js +86 -0
  46. package/dist/dependency-graph.js.map +1 -0
  47. package/dist/diagnostics.d.ts +83 -0
  48. package/dist/diagnostics.d.ts.map +1 -0
  49. package/dist/diagnostics.js +14 -0
  50. package/dist/diagnostics.js.map +1 -0
  51. package/dist/index.d.ts +24 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +17 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/kernel/app-instance.d.ts +62 -0
  56. package/dist/kernel/app-instance.d.ts.map +1 -0
  57. package/dist/kernel/app-instance.js +1040 -0
  58. package/dist/kernel/app-instance.js.map +1 -0
  59. package/dist/kernel/otel.d.ts +105 -0
  60. package/dist/kernel/otel.d.ts.map +1 -0
  61. package/dist/kernel/otel.js +218 -0
  62. package/dist/kernel/otel.js.map +1 -0
  63. package/dist/lifecycle-observer.d.ts +95 -0
  64. package/dist/lifecycle-observer.d.ts.map +1 -0
  65. package/dist/lifecycle-observer.js +19 -0
  66. package/dist/lifecycle-observer.js.map +1 -0
  67. package/dist/lifecycle.d.ts +94 -0
  68. package/dist/lifecycle.d.ts.map +1 -0
  69. package/dist/lifecycle.js +78 -0
  70. package/dist/lifecycle.js.map +1 -0
  71. package/dist/manifest.d.ts +75 -0
  72. package/dist/manifest.d.ts.map +1 -0
  73. package/dist/manifest.js +14 -0
  74. package/dist/manifest.js.map +1 -0
  75. package/dist/pip-contract.d.ts +219 -0
  76. package/dist/pip-contract.d.ts.map +1 -0
  77. package/dist/pip-contract.js +90 -0
  78. package/dist/pip-contract.js.map +1 -0
  79. package/dist/pip.d.ts +33 -0
  80. package/dist/pip.d.ts.map +1 -0
  81. package/dist/pip.js +25 -0
  82. package/dist/pip.js.map +1 -0
  83. package/dist/plugin-contract.d.ts +175 -0
  84. package/dist/plugin-contract.d.ts.map +1 -0
  85. package/dist/plugin-contract.js +45 -0
  86. package/dist/plugin-contract.js.map +1 -0
  87. package/dist/plugin.d.ts +30 -0
  88. package/dist/plugin.d.ts.map +1 -0
  89. package/dist/plugin.js +24 -0
  90. package/dist/plugin.js.map +1 -0
  91. package/dist/test-harness.d.ts +42 -0
  92. package/dist/test-harness.d.ts.map +1 -0
  93. package/dist/test-harness.js +46 -0
  94. package/dist/test-harness.js.map +1 -0
  95. package/dist/timeline.d.ts +43 -0
  96. package/dist/timeline.d.ts.map +1 -0
  97. package/dist/timeline.js +121 -0
  98. package/dist/timeline.js.map +1 -0
  99. package/package.json +68 -0
  100. package/templates/app-minimal/.gitignore.tmpl +6 -0
  101. package/templates/app-minimal/AGENTS.md.tmpl +66 -0
  102. package/templates/app-minimal/README.md.tmpl +24 -0
  103. package/templates/app-minimal/package.json.tmpl +21 -0
  104. package/templates/app-minimal/src/app.ts.tmpl +20 -0
  105. package/templates/app-minimal/src/env.ts.tmpl +12 -0
  106. package/templates/app-minimal/tests/boot.test.ts.tmpl +25 -0
  107. package/templates/app-minimal/tsconfig.json.tmpl +22 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-instance.js","sourceRoot":"","sources":["../../src/kernel/app-instance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * OpenTelemetry instrumentation for the DOT kernel.
3
+ *
4
+ * DOT is OTel-first: every lifecycle phase and every per-pip hook
5
+ * automatically emits a span and a duration histogram. When no SDK is
6
+ * registered, the OTel API returns no-op implementations and the kernel
7
+ * pays zero allocation per call — the discipline that makes "OTel-first"
8
+ * compatible with principle 5 (zero optional dependencies in the kernel).
9
+ *
10
+ * Consumers wire the SDK however they like (`@opentelemetry/sdk-node`,
11
+ * `@arki/meter`, etc.); the kernel never touches the SDK directly.
12
+ *
13
+ * Span / attribute conventions:
14
+ *
15
+ * - Phase span: `dot.app.<phase>` — one root span per `configure()` /
16
+ * `boot()` / `start()` / `stop()` / `dispose()` call. Children
17
+ * auto-link via async-context.
18
+ * - Hook span: `dot.pip.<hook>` — one child span per pip's hook
19
+ * execution. The pip name lives on `dot.pip.name`, not in the span
20
+ * name, so backends can aggregate by hook across pips.
21
+ * - Attributes (`dot.app.name`, `dot.pip.name`, `dot.pip.version`,
22
+ * `dot.hook`, `dot.pip.order`) follow the OTel convention of
23
+ * namespacing under the library's prefix.
24
+ *
25
+ * @see packages/dot/docs/principles.md — principle 3 (deterministic) +
26
+ * principle 4 (agent-discoverable).
27
+ */
28
+ import { type Span } from '@opentelemetry/api';
29
+ import type { Logger } from '@arki/log';
30
+ import type { DotLifecycleHook } from '../lifecycle.js';
31
+ /** OTel tracer for the DOT kernel. No-op when no SDK is registered. */
32
+ export declare const tracer: import("@opentelemetry/api").Tracer;
33
+ /** OTel meter for the DOT kernel. No-op when no SDK is registered. */
34
+ export declare const meter: import("@opentelemetry/api").Meter;
35
+ /**
36
+ * Histogram recording per-pip per-hook execution duration in milliseconds.
37
+ *
38
+ * Attributes:
39
+ * - `dot.app.name` — app name
40
+ * - `dot.pip.name` — pip name
41
+ * - `dot.hook` — which lifecycle hook (`configure` | `boot` | ...)
42
+ * - `dot.status` — `ok` | `failed`
43
+ */
44
+ export declare const hookDurationHistogram: import("@opentelemetry/api").Histogram<import("@opentelemetry/api").Attributes>;
45
+ /**
46
+ * Histogram recording per-phase (app-level) execution duration.
47
+ *
48
+ * Attributes:
49
+ * - `dot.app.name` — app name
50
+ * - `dot.app.phase` — which phase (`configure` | `boot` | `start` | `stop` | `dispose`)
51
+ * - `dot.status` — `ok` | `failed`
52
+ */
53
+ export declare const phaseDurationHistogram: import("@opentelemetry/api").Histogram<import("@opentelemetry/api").Attributes>;
54
+ /**
55
+ * Wrap a single pip-hook execution in a child span and record its
56
+ * duration in the histogram. The span auto-links to the active phase
57
+ * span (set by {@link withPhaseSpan}) so traces show a clean parent-child
58
+ * hierarchy:
59
+ *
60
+ * dot.app.boot
61
+ * ├── dot.pip.boot (dot.pip.name=env, dot.hook=boot)
62
+ * ├── dot.pip.boot (dot.pip.name=db, dot.hook=boot)
63
+ * └── dot.pip.boot (dot.pip.name=kv, dot.hook=boot)
64
+ *
65
+ * Re-throws on failure after marking the span ERROR so the caller's
66
+ * existing error-handling path stays intact.
67
+ */
68
+ export declare function withPipHookSpan<R>(opts: {
69
+ readonly appName: string;
70
+ readonly pipName: string;
71
+ readonly pipVersion?: string;
72
+ readonly hook: DotLifecycleHook;
73
+ readonly order: number;
74
+ /**
75
+ * Optional pip-scoped logger. When present, the helper threads the
76
+ * span's `traceId` + `spanId` onto the logger via `setTraceContext`
77
+ * before invoking the body — every log line emitted from within the
78
+ * pip's hook is automatically correlated with this span in the
79
+ * `traceId`/`spanId` fields of `LogRecord`.
80
+ */
81
+ readonly logger?: Logger;
82
+ }, fn: (span: Span) => R): R;
83
+ /**
84
+ * Wrap an entire app-level phase (`configure`/`boot`/`start`/`stop`/`dispose`)
85
+ * in an active span. Children created by {@link withPipHookSpan} inherit
86
+ * this span as their parent via async-context.
87
+ *
88
+ * The callback's return value (sync or Promise) is propagated unchanged
89
+ * to preserve the kernel's existing control flow.
90
+ */
91
+ export declare function withPhaseSpan<R>(opts: {
92
+ readonly appName: string;
93
+ readonly appVersion?: string;
94
+ readonly phase: DotLifecycleHook;
95
+ readonly pipCount: number;
96
+ /**
97
+ * Optional phase-scoped logger. When present, the helper threads
98
+ * the span's `traceId` + `spanId` onto the logger before invoking
99
+ * the body — every log line written during the phase carries the
100
+ * trace context so it's groupable with the corresponding span in
101
+ * any OTel-compatible backend.
102
+ */
103
+ readonly logger?: Logger;
104
+ }, fn: (span: Span) => R): R;
105
+ //# sourceMappingURL=otel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/kernel/otel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAkC,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,uEAAuE;AACvE,eAAO,MAAM,MAAM,qCAAiE,CAAC;AAErF,sEAAsE;AACtE,eAAO,MAAM,KAAK,oCAAkE,CAAC;AAErF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,iFAGhC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,iFAGjC,CAAC;AA6BH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,IAAI,EAAE;IACJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GACpB,CAAC,CAsDH;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE;IACJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GACpB,CAAC,CAyDH"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * OpenTelemetry instrumentation for the DOT kernel.
3
+ *
4
+ * DOT is OTel-first: every lifecycle phase and every per-pip hook
5
+ * automatically emits a span and a duration histogram. When no SDK is
6
+ * registered, the OTel API returns no-op implementations and the kernel
7
+ * pays zero allocation per call — the discipline that makes "OTel-first"
8
+ * compatible with principle 5 (zero optional dependencies in the kernel).
9
+ *
10
+ * Consumers wire the SDK however they like (`@opentelemetry/sdk-node`,
11
+ * `@arki/meter`, etc.); the kernel never touches the SDK directly.
12
+ *
13
+ * Span / attribute conventions:
14
+ *
15
+ * - Phase span: `dot.app.<phase>` — one root span per `configure()` /
16
+ * `boot()` / `start()` / `stop()` / `dispose()` call. Children
17
+ * auto-link via async-context.
18
+ * - Hook span: `dot.pip.<hook>` — one child span per pip's hook
19
+ * execution. The pip name lives on `dot.pip.name`, not in the span
20
+ * name, so backends can aggregate by hook across pips.
21
+ * - Attributes (`dot.app.name`, `dot.pip.name`, `dot.pip.version`,
22
+ * `dot.hook`, `dot.pip.order`) follow the OTel convention of
23
+ * namespacing under the library's prefix.
24
+ *
25
+ * @see packages/dot/docs/principles.md — principle 3 (deterministic) +
26
+ * principle 4 (agent-discoverable).
27
+ */
28
+ import { metrics, SpanStatusCode, trace } from '@opentelemetry/api';
29
+ const INSTRUMENTATION_NAME = '@arki/dot';
30
+ const INSTRUMENTATION_VERSION = '0.1.0';
31
+ /** OTel tracer for the DOT kernel. No-op when no SDK is registered. */
32
+ export const tracer = trace.getTracer(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION);
33
+ /** OTel meter for the DOT kernel. No-op when no SDK is registered. */
34
+ export const meter = metrics.getMeter(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION);
35
+ /**
36
+ * Histogram recording per-pip per-hook execution duration in milliseconds.
37
+ *
38
+ * Attributes:
39
+ * - `dot.app.name` — app name
40
+ * - `dot.pip.name` — pip name
41
+ * - `dot.hook` — which lifecycle hook (`configure` | `boot` | ...)
42
+ * - `dot.status` — `ok` | `failed`
43
+ */
44
+ export const hookDurationHistogram = meter.createHistogram('dot.pip.hook.duration', {
45
+ description: 'Wall-clock duration of a single pip lifecycle hook execution.',
46
+ unit: 'ms',
47
+ });
48
+ /**
49
+ * Histogram recording per-phase (app-level) execution duration.
50
+ *
51
+ * Attributes:
52
+ * - `dot.app.name` — app name
53
+ * - `dot.app.phase` — which phase (`configure` | `boot` | `start` | `stop` | `dispose`)
54
+ * - `dot.status` — `ok` | `failed`
55
+ */
56
+ export const phaseDurationHistogram = meter.createHistogram('dot.app.phase.duration', {
57
+ description: 'Wall-clock duration of a complete app-level lifecycle phase.',
58
+ unit: 'ms',
59
+ });
60
+ /**
61
+ * Sanitize attribute values — OTel rejects `undefined` and strips out
62
+ * keys whose values aren't primitives or arrays of primitives. We drop
63
+ * `undefined` here so call sites can pass optional fields without
64
+ * branching.
65
+ */
66
+ function attrs(source) {
67
+ const out = {};
68
+ for (const [k, v] of Object.entries(source)) {
69
+ if (v !== undefined)
70
+ out[k] = v;
71
+ }
72
+ return out;
73
+ }
74
+ /** Stringify any thrown value for span status / exception recording. */
75
+ function stringifyForSpan(value) {
76
+ if (value instanceof Error)
77
+ return value.message;
78
+ if (typeof value === 'string')
79
+ return value;
80
+ try {
81
+ return JSON.stringify(value);
82
+ }
83
+ catch {
84
+ return String(value);
85
+ }
86
+ }
87
+ /**
88
+ * Wrap a single pip-hook execution in a child span and record its
89
+ * duration in the histogram. The span auto-links to the active phase
90
+ * span (set by {@link withPhaseSpan}) so traces show a clean parent-child
91
+ * hierarchy:
92
+ *
93
+ * dot.app.boot
94
+ * ├── dot.pip.boot (dot.pip.name=env, dot.hook=boot)
95
+ * ├── dot.pip.boot (dot.pip.name=db, dot.hook=boot)
96
+ * └── dot.pip.boot (dot.pip.name=kv, dot.hook=boot)
97
+ *
98
+ * Re-throws on failure after marking the span ERROR so the caller's
99
+ * existing error-handling path stays intact.
100
+ */
101
+ export function withPipHookSpan(opts, fn) {
102
+ const span = tracer.startSpan(`dot.pip.${opts.hook}`, {
103
+ attributes: attrs({
104
+ 'dot.app.name': opts.appName,
105
+ 'dot.pip.name': opts.pipName,
106
+ 'dot.pip.version': opts.pipVersion,
107
+ 'dot.hook': opts.hook,
108
+ 'dot.pip.order': opts.order,
109
+ }),
110
+ });
111
+ if (opts.logger) {
112
+ const sc = span.spanContext();
113
+ opts.logger.setTraceContext(sc.traceId, sc.spanId);
114
+ }
115
+ const started = performance.now();
116
+ let status = 'ok';
117
+ const finish = () => {
118
+ const durationMs = performance.now() - started;
119
+ hookDurationHistogram.record(durationMs, {
120
+ 'dot.app.name': opts.appName,
121
+ 'dot.pip.name': opts.pipName,
122
+ 'dot.hook': opts.hook,
123
+ 'dot.status': status,
124
+ });
125
+ span.end();
126
+ };
127
+ try {
128
+ const result = fn(span);
129
+ if (result instanceof Promise) {
130
+ return result.then(v => {
131
+ span.setStatus({ code: SpanStatusCode.OK });
132
+ finish();
133
+ return v;
134
+ }, (e) => {
135
+ status = 'failed';
136
+ span.setStatus({ code: SpanStatusCode.ERROR, message: stringifyForSpan(e) });
137
+ if (e instanceof Error)
138
+ span.recordException(e);
139
+ finish();
140
+ throw e;
141
+ });
142
+ }
143
+ span.setStatus({ code: SpanStatusCode.OK });
144
+ finish();
145
+ return result;
146
+ }
147
+ catch (e) {
148
+ status = 'failed';
149
+ span.setStatus({ code: SpanStatusCode.ERROR, message: stringifyForSpan(e) });
150
+ if (e instanceof Error)
151
+ span.recordException(e);
152
+ finish();
153
+ throw e;
154
+ }
155
+ }
156
+ /**
157
+ * Wrap an entire app-level phase (`configure`/`boot`/`start`/`stop`/`dispose`)
158
+ * in an active span. Children created by {@link withPipHookSpan} inherit
159
+ * this span as their parent via async-context.
160
+ *
161
+ * The callback's return value (sync or Promise) is propagated unchanged
162
+ * to preserve the kernel's existing control flow.
163
+ */
164
+ export function withPhaseSpan(opts, fn) {
165
+ return tracer.startActiveSpan(`dot.app.${opts.phase}`, {
166
+ attributes: attrs({
167
+ 'dot.app.name': opts.appName,
168
+ 'dot.app.version': opts.appVersion,
169
+ 'dot.app.phase': opts.phase,
170
+ 'dot.app.pip.count': opts.pipCount,
171
+ }),
172
+ }, (span) => {
173
+ if (opts.logger) {
174
+ const sc = span.spanContext();
175
+ opts.logger.setTraceContext(sc.traceId, sc.spanId);
176
+ }
177
+ const started = performance.now();
178
+ let status = 'ok';
179
+ const finish = () => {
180
+ const durationMs = performance.now() - started;
181
+ phaseDurationHistogram.record(durationMs, {
182
+ 'dot.app.name': opts.appName,
183
+ 'dot.app.phase': opts.phase,
184
+ 'dot.status': status,
185
+ });
186
+ span.end();
187
+ };
188
+ try {
189
+ const result = fn(span);
190
+ if (result instanceof Promise) {
191
+ return result.then(v => {
192
+ span.setStatus({ code: SpanStatusCode.OK });
193
+ finish();
194
+ return v;
195
+ }, (e) => {
196
+ status = 'failed';
197
+ span.setStatus({ code: SpanStatusCode.ERROR, message: stringifyForSpan(e) });
198
+ if (e instanceof Error)
199
+ span.recordException(e);
200
+ finish();
201
+ throw e;
202
+ });
203
+ }
204
+ span.setStatus({ code: SpanStatusCode.OK });
205
+ finish();
206
+ return result;
207
+ }
208
+ catch (e) {
209
+ status = 'failed';
210
+ span.setStatus({ code: SpanStatusCode.ERROR, message: stringifyForSpan(e) });
211
+ if (e instanceof Error)
212
+ span.recordException(e);
213
+ finish();
214
+ throw e;
215
+ }
216
+ });
217
+ }
218
+ //# sourceMappingURL=otel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/kernel/otel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Lifecycle observer surface for the DOT kernel.
3
+ *
4
+ * `DotLifecycleObserver` is the in-process companion to the OTel signals
5
+ * emitted by {@link withPhaseSpan} / {@link withPipHookSpan}. Where OTel
6
+ * is the contract for cross-process tracing (consumers register an SDK
7
+ * and ship spans to a backend), the observer is the contract for *local*
8
+ * programmatic inspection — used by tests, CLI tooling, ASCII waterfalls,
9
+ * and ad-hoc diagnostics that don't require an SDK to be registered.
10
+ *
11
+ * Both signals are emitted from the same kernel sites; neither is layered
12
+ * under the other. A consumer can use one, both, or neither — the kernel
13
+ * pays zero allocation for the observer fan-out when no observers are
14
+ * registered.
15
+ *
16
+ * @see packages/dot/docs/observability.md — consumer-facing surface
17
+ * @see packages/dot/docs/principles.md — principle 5 (zero optional deps)
18
+ */
19
+ import type { DotLifecycleHook } from './lifecycle.js';
20
+ /**
21
+ * The single fan-out event type emitted by the kernel to every registered
22
+ * observer. Discriminated by `kind`:
23
+ *
24
+ * - `'phase'` — boundary of a top-level lifecycle phase
25
+ * - `'pip-hook'` — boundary of a single pip's hook execution
26
+ *
27
+ * Status discriminates the boundary itself:
28
+ *
29
+ * - `'starting'` — emitted *before* the work begins
30
+ * - `'completed'` — emitted *after* the work finished successfully
31
+ * - `'failed'` — emitted *after* the work threw or rejected
32
+ *
33
+ * `starting` events never carry `durationMs` / `error`. `completed` events
34
+ * carry `durationMs`. `failed` events carry both `durationMs` and `error`.
35
+ */
36
+ export type DotLifecycleEvent = DotPhaseLifecycleEvent | DotPipHookLifecycleEvent;
37
+ /** Possible event statuses. See {@link DotLifecycleEvent}. */
38
+ export type DotLifecycleEventStatus = 'starting' | 'completed' | 'failed';
39
+ /** Boundary of a top-level lifecycle phase. */
40
+ export type DotPhaseLifecycleEvent = {
41
+ readonly kind: 'phase';
42
+ /** The phase the event belongs to. */
43
+ readonly phase: DotLifecycleHook;
44
+ readonly status: DotLifecycleEventStatus;
45
+ /** App name (so multiplexed observers can disambiguate). */
46
+ readonly appName: string;
47
+ /** Wall-clock duration in milliseconds. Present on `completed` / `failed`. */
48
+ readonly durationMs?: number;
49
+ /** The error value, if `status === 'failed'`. */
50
+ readonly error?: unknown;
51
+ /** Wall-clock timestamp in ms-since-epoch (`Date.now()` semantics). */
52
+ readonly timestamp: number;
53
+ };
54
+ /** Boundary of a single pip's hook execution. */
55
+ export type DotPipHookLifecycleEvent = {
56
+ readonly kind: 'pip-hook';
57
+ /** The phase the hook belongs to. */
58
+ readonly phase: DotLifecycleHook;
59
+ /** The pip whose hook is being executed. */
60
+ readonly pip: string;
61
+ /** Topological order of the pip within the phase (0-based). */
62
+ readonly order: number;
63
+ readonly status: DotLifecycleEventStatus;
64
+ readonly appName: string;
65
+ readonly durationMs?: number;
66
+ readonly error?: unknown;
67
+ readonly timestamp: number;
68
+ };
69
+ /**
70
+ * Observer function signature. Synchronous by contract — observers MUST
71
+ * NOT block the lifecycle. If a long-running side effect is needed
72
+ * (e.g. shipping events to a remote sink), the observer should buffer
73
+ * the event and process it on a separate cadence.
74
+ *
75
+ * Exceptions thrown by an observer are caught and dropped on the kernel
76
+ * floor (with a DEBUG log on `arki:dot:lifecycle`). One observer's
77
+ * misbehaviour can never cause another observer to miss an event, nor
78
+ * can it break the lifecycle.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * import { defineApp } from '@arki/dot';
83
+ *
84
+ * const events: DotLifecycleEvent[] = [];
85
+ * const app = await defineApp('my-app', {
86
+ * observers: [(event) => events.push(event)],
87
+ * })
88
+ * .use(myPip)
89
+ * .boot();
90
+ *
91
+ * // events now contains the full configure + boot event stream.
92
+ * ```
93
+ */
94
+ export type DotLifecycleObserver = (event: DotLifecycleEvent) => void;
95
+ //# sourceMappingURL=lifecycle-observer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-observer.d.ts","sourceRoot":"","sources":["../src/lifecycle-observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;AAElF,8DAA8D;AAC9D,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1E,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,4CAA4C;IAC5C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Lifecycle observer surface for the DOT kernel.
3
+ *
4
+ * `DotLifecycleObserver` is the in-process companion to the OTel signals
5
+ * emitted by {@link withPhaseSpan} / {@link withPipHookSpan}. Where OTel
6
+ * is the contract for cross-process tracing (consumers register an SDK
7
+ * and ship spans to a backend), the observer is the contract for *local*
8
+ * programmatic inspection — used by tests, CLI tooling, ASCII waterfalls,
9
+ * and ad-hoc diagnostics that don't require an SDK to be registered.
10
+ *
11
+ * Both signals are emitted from the same kernel sites; neither is layered
12
+ * under the other. A consumer can use one, both, or neither — the kernel
13
+ * pays zero allocation for the observer fan-out when no observers are
14
+ * registered.
15
+ *
16
+ * @see packages/dot/docs/observability.md — consumer-facing surface
17
+ * @see packages/dot/docs/principles.md — principle 5 (zero optional deps)
18
+ */
19
+ //# sourceMappingURL=lifecycle-observer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-observer.js","sourceRoot":"","sources":["../src/lifecycle-observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Lifecycle primitives for the DOT kernel.
3
+ *
4
+ * The kernel uses a 5-hook lifecycle that runs in dependency order:
5
+ *
6
+ * - `configure` — synchronous registration of metadata, routes, services
7
+ * - `boot` — async open of resources, publishes services into `app.services`
8
+ * - `start` — async start of active work (workers, schedulers, listeners)
9
+ * - `stop` — async stop of active work, runs in reverse-topological order
10
+ * - `dispose` — async release of booted resources, runs in reverse-topological order
11
+ *
12
+ * Hook semantics, failure ordering, and idempotency rules are documented on the
13
+ * public `DotApp` interface in `./define-app.ts`.
14
+ */
15
+ /** Identifier of a single hook in the DOT lifecycle. */
16
+ export type DotLifecycleHook = 'configure' | 'boot' | 'start' | 'stop' | 'dispose';
17
+ /**
18
+ * The complete set of lifecycle hooks in topological execution order.
19
+ * `stop` and `dispose` run in reverse-topological order across pips, but the
20
+ * sequence of hooks themselves is always `configure -> boot -> start -> stop -> dispose`.
21
+ */
22
+ export declare const DOT_LIFECYCLE_HOOKS: readonly DotLifecycleHook[];
23
+ /**
24
+ * Macro-states the DotApp can occupy.
25
+ *
26
+ * State transitions:
27
+ *
28
+ * defined -> configured -> booted -> started -> stopped -> disposed
29
+ * |
30
+ * +-> disposed (skip stopped if never started)
31
+ *
32
+ * any-of(configure|boot|start) failure -> failed
33
+ *
34
+ * `failed` and `disposed` are terminal — callers must create a new instance.
35
+ */
36
+ export type DotLifecycleState = 'defined' | 'configured' | 'booted' | 'started' | 'stopped' | 'disposed' | 'failed';
37
+ /** Stable error codes for lifecycle failures. */
38
+ export declare const DotLifecycleErrorCode: {
39
+ /** A `configure` hook attempted async work (returned a Promise). */
40
+ readonly ConfigureAsync: "DOT_LIFECYCLE_E001";
41
+ /** A `configure` hook threw. */
42
+ readonly ConfigureFailed: "DOT_LIFECYCLE_E002";
43
+ /** A `boot` hook threw. */
44
+ readonly BootFailed: "DOT_LIFECYCLE_E003";
45
+ /** A `start` hook threw. */
46
+ readonly StartFailed: "DOT_LIFECYCLE_E004";
47
+ /** One or more `stop` hooks threw — aggregate. */
48
+ readonly StopFailed: "DOT_LIFECYCLE_E005";
49
+ /** One or more `dispose` hooks threw — aggregate. */
50
+ readonly DisposeFailed: "DOT_LIFECYCLE_E006";
51
+ /** Caller tried to reuse the app after dispose. */
52
+ readonly ReuseAfterDispose: "DOT_LIFECYCLE_E007";
53
+ /** Caller tried to reuse the app after a failed lifecycle. */
54
+ readonly ReuseAfterFailure: "DOT_LIFECYCLE_E008";
55
+ /** Dependency graph contains a cycle. */
56
+ readonly DependencyCycle: "DOT_LIFECYCLE_E009";
57
+ /** Pip declared a dependency that isn't registered. */
58
+ readonly MissingDependency: "DOT_LIFECYCLE_E010";
59
+ /** Pip registered twice. */
60
+ readonly DuplicatePip: "DOT_LIFECYCLE_E011";
61
+ };
62
+ export type DotLifecycleErrorCodeValue = (typeof DotLifecycleErrorCode)[keyof typeof DotLifecycleErrorCode];
63
+ /**
64
+ * Structured error thrown for any lifecycle failure or misuse.
65
+ *
66
+ * Carries:
67
+ * - `code` — stable machine-readable error code (see {@link DotLifecycleErrorCode}).
68
+ * - `phase` — which hook (or pseudo-hook) failed.
69
+ * - `pip` — which pip name, when applicable.
70
+ * - `cause` — original error if wrapped from a hook throw.
71
+ * - `failures` — for aggregate errors (stop/dispose), the per-pip failures.
72
+ */
73
+ export declare class DotLifecycleError extends Error {
74
+ readonly code: DotLifecycleErrorCodeValue;
75
+ readonly phase: DotLifecycleHook;
76
+ readonly pip?: string;
77
+ readonly cause?: unknown;
78
+ readonly failures?: readonly DotLifecyclePipFailure[];
79
+ constructor(args: {
80
+ code: DotLifecycleErrorCodeValue;
81
+ phase: DotLifecycleHook;
82
+ message: string;
83
+ pip?: string;
84
+ cause?: unknown;
85
+ failures?: readonly DotLifecyclePipFailure[];
86
+ });
87
+ }
88
+ /** Single pip failure inside an aggregate lifecycle error (stop/dispose). */
89
+ export type DotLifecyclePipFailure = {
90
+ pip: string;
91
+ phase: DotLifecycleHook;
92
+ error: unknown;
93
+ };
94
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAMjD,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEpH,iDAAiD;AACjD,eAAO,MAAM,qBAAqB;IAChC,oEAAoE;;IAEpE,gCAAgC;;IAEhC,2BAA2B;;IAE3B,4BAA4B;;IAE5B,kDAAkD;;IAElD,qDAAqD;;IAErD,mDAAmD;;IAEnD,8DAA8D;;IAE9D,yCAAyC;;IAEzC,uDAAuD;;IAEvD,4BAA4B;;CAEpB,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAE5G;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;gBAE1C,IAAI,EAAE;QAChB,IAAI,EAAE,0BAA0B,CAAC;QACjC,KAAK,EAAE,gBAAgB,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;KAC9C;CASF;AAED,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC"}