@makaio/framework 1.0.0-dev-1790614475240 → 1.0.0-dev-1790624115602

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 (44) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/clients/hook-subjects.d.mts +124 -0
  3. package/dist/clients/hook-subjects.mjs +1 -0
  4. package/dist/clients/index.d.mts +2 -118
  5. package/dist/clients/index.mjs +1 -1
  6. package/dist/contracts/artifact/index.d.mts +1 -1
  7. package/dist/contracts/capabilities/index.d.mts +1 -1
  8. package/dist/contracts/client/index.d.mts +1 -1
  9. package/dist/contracts/extension/index.d.mts +2 -2
  10. package/dist/contracts/index.d.mts +16 -16
  11. package/dist/contracts/materialization/index.d.mts +2 -2
  12. package/dist/contracts/worker/index.d.mts +1 -1
  13. package/dist/contracts/workflow/index.d.mts +1 -1
  14. package/dist/{index-BYMgvz_a2.d.mts → index-BUtnnwzK2.d.mts} +4 -4
  15. package/dist/{index-e3AB0Iyv.d.mts → index-BhvXJhTY.d.mts} +35 -35
  16. package/dist/{index-CU0AgN84.d.mts → index-BstMoG8p.d.mts} +1 -1
  17. package/dist/{index-C-tLT_IE.d.mts → index-BtyeBaw-.d.mts} +30 -30
  18. package/dist/{index-3G70bNLs.d.mts → index-CQAriG-z.d.mts} +2 -2
  19. package/dist/{index-bXozN5vc.d.mts → index-CbVqpQBu.d.mts} +66 -66
  20. package/dist/{index-1mY0aNe3.d.mts → index-CpaWzUE5.d.mts} +1 -1
  21. package/dist/{index-_CsKmUOy.d.mts → index-DpiNhNHS.d.mts} +11 -11
  22. package/dist/{index-BM8oUon_.d.mts → index-UbOsrzp6.d.mts} +12 -12
  23. package/dist/{index-B1uHTa1l.d.mts → index-oE2q0pTG.d.mts} +1 -1
  24. package/dist/kernel/extension/index.d.mts +2 -2
  25. package/dist/kernel/index.d.mts +2 -2
  26. package/dist/kernel/observability/index.d.mts +1 -1
  27. package/dist/{namespace-CNX4llM5.d.mts → namespace-C1-ZAKEG.d.mts} +6 -6
  28. package/dist/package.json +1 -1
  29. package/dist/{schemas-DnyXA-9o.d.mts → schemas-CYjPZwlQ.d.mts} +2 -2
  30. package/dist/{schemas-D9pXu76T.d.mts → schemas-Dyp3rHZ7.d.mts} +4 -4
  31. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  32. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  33. package/dist/services/filesystem/namespace.d.mts +6 -6
  34. package/dist/services/filesystem/schemas.d.mts +3 -3
  35. package/dist/services/index.d.mts +10 -10
  36. package/dist/services/provider-context/index.d.mts +1 -1
  37. package/dist/services/session/index.d.mts +1 -1
  38. package/dist/services/settings/namespace.d.mts +2 -2
  39. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  40. package/dist/services/subagent-template/index.d.mts +1 -1
  41. package/dist/services/subagent-template/schemas.d.mts +1 -1
  42. package/dist/{view-builder-tgwZ1ucc.d.mts → view-builder-Nffvg8MI.d.mts} +1 -1
  43. package/dist/workflow-engine/index.d.mts +46 -46
  44. package/package.json +5 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
- "fingerprint": "02099fc14700c8fd141dc3449adbc6c5e6c2f2bfb8d9f88975d94e31a00888ad",
4
- "builtAt": "2026-09-28T16:55:26.154Z",
3
+ "fingerprint": "12cfa25b43c1d0b6ceffbfc306b6c65b8a121b97d4326c03b26904dd23fae81a",
4
+ "builtAt": "2026-09-28T19:36:01.348Z",
5
5
  "declarations": true,
6
6
  "declarationBackend": "tsc"
7
7
  }
@@ -0,0 +1,124 @@
1
+ import { z } from "zod";
2
+ import { EventMessagePayload, RequestMessagePayload, SubjectDefinition, SubjectRecord } from "@makaio/framework/core";
3
+
4
+ //#region subsystems/client/src/hook-subjects.d.ts
5
+ /**
6
+ * Canonical schema for the raw catch-all hook payload delivered on
7
+ * `client:<id>.hook.received`.
8
+ *
9
+ * Client ingress CLIs are dumb bridges: they accept any native hook event and
10
+ * publish it verbatim on this subject. Downstream normalizers are responsible
11
+ * for interpreting `eventName` and mapping the `payload` to structured
12
+ * `client.session.*` observations.
13
+ *
14
+ * Fields:
15
+ * - `eventName` — the hook event name as reported by the client CLI
16
+ * (e.g. `'PreToolUse'`, `'Stop'`).
17
+ * - `receivedAt` — Unix epoch timestamp in milliseconds when the bridge
18
+ * received the hook call.
19
+ * - `payload` — raw JSON object forwarded verbatim from the client CLI.
20
+ * - `metadata` — optional pass-through metadata added by the bridge (e.g.
21
+ * process PID, invocation arguments).
22
+ */
23
+ declare const RawClientHookPayloadSchema: z.ZodObject<{
24
+ eventName: z.ZodString;
25
+ receivedAt: z.ZodNumber;
26
+ payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
27
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
28
+ }, z.core.$strip>;
29
+ /** Parsed raw catch-all hook payload; see {@link RawClientHookPayloadSchema}. */
30
+ type RawClientHookPayload = z.infer<typeof RawClientHookPayloadSchema>;
31
+ /**
32
+ * Normalize user-provided client identifiers to the stable suffix used in
33
+ * `client:<id>` namespaces.
34
+ * @param clientId - Raw client identifier, optionally prefixed with `client:`
35
+ * @param caller - Optional function name used in thrown error messages
36
+ * @returns Canonical lowercase client identifier without the `client:` prefix
37
+ */
38
+ declare function canonicalizeClientId(clientId: string, caller?: string): string;
39
+ type RawClientHookSubjectRecord = SubjectRecord<'hook.received', EventMessagePayload<RawClientHookPayload>>;
40
+ /**
41
+ * Subject definition for the raw catch-all hook event in a concrete
42
+ * `client:<id>` namespace.
43
+ */
44
+ type RawClientHookReceivedSubject = SubjectDefinition<RawClientHookSubjectRecord, 'hook.received', `client:${string}`>;
45
+ /**
46
+ * Build a non-owning subject definition for `client:<id>.hook.received`.
47
+ *
48
+ * This is intentionally not a namespace registration. Concrete client packages
49
+ * own their full `client:<id>` namespace via `createClientNamespace`; the
50
+ * generic CLI bridge only needs to emit the shared hook subject and must not
51
+ * accidentally register a narrower namespace before the concrete owner loads.
52
+ * When the concrete owner is loaded, normal bus schema validation applies. When
53
+ * it is not loaded, the ad-hoc subject still allows the raw event to traverse
54
+ * transports to a process that owns the namespace.
55
+ * @param clientId - Stable client identifier, optionally prefixed with `client:`
56
+ * @returns Non-owning subject definition for the client's raw hook ingress
57
+ */
58
+ declare function createRawClientHookReceivedSubject(clientId: string): RawClientHookReceivedSubject;
59
+ /**
60
+ * Default timeout in milliseconds for hook handle requests.
61
+ *
62
+ * Shared between the CLI schema default (client-hooks extension) and the
63
+ * wiring descriptor trailing flags (claude-code client) so both always agree
64
+ * on the configured wait budget without independent magic numbers.
65
+ */
66
+ declare const DEFAULT_HOOK_HANDLE_TIMEOUT_MS = 5000;
67
+ /**
68
+ * Schema for the response payload returned by a `makaio hook handle` command.
69
+ *
70
+ * The client binary reads this from the command's stdout after the process
71
+ * exits. All fields default to safe zero-values so partial responses are
72
+ * still valid.
73
+ *
74
+ * Fields:
75
+ * - `exitCode` — process exit code the binary should use (0–255). Defaults to `0`.
76
+ * - `stdout` — text written to stdout, forwarded verbatim to the client.
77
+ * Defaults to `''`.
78
+ * - `stderr` — text written to stderr, forwarded verbatim to the client.
79
+ * Defaults to `''`.
80
+ */
81
+ declare const ClientHookHandleResponseSchema: z.ZodObject<{
82
+ exitCode: z.ZodDefault<z.ZodNumber>;
83
+ stdout: z.ZodDefault<z.ZodString>;
84
+ stderr: z.ZodDefault<z.ZodString>;
85
+ }, z.core.$strip>;
86
+ /** Parsed hook handle response; see {@link ClientHookHandleResponseSchema}. */
87
+ type ClientHookHandleResponse = z.infer<typeof ClientHookHandleResponseSchema>;
88
+ /**
89
+ * Frozen no-op hook handle response shared across all client composers.
90
+ *
91
+ * exitCode 0 with empty stdout/stderr is the provider-valid passthrough
92
+ * that permits the tool invocation to proceed unchanged. A single frozen
93
+ * instance avoids per-client duplication and per-call object allocation.
94
+ */
95
+ declare const NOOP_HOOK_HANDLE_RESPONSE: ClientHookHandleResponse;
96
+ type RawClientHookHandleSubjectRecord = SubjectRecord<'hook.handle', RequestMessagePayload<RawClientHookPayload, ClientHookHandleResponse>>;
97
+ /**
98
+ * Subject definition for the raw hook handle request/response subject in a
99
+ * concrete `client:<id>` namespace.
100
+ *
101
+ * Carries `RequestMessagePayload<RawClientHookPayload, ClientHookHandleResponse>`
102
+ * as a phantom type so `bus.requestOptional` infers the correct generics without
103
+ * additional type annotations at the call site.
104
+ */
105
+ type RawClientHookHandleSubject = SubjectDefinition<RawClientHookHandleSubjectRecord, 'hook.handle', `client:${string}`>;
106
+ /**
107
+ * Build a non-owning subject definition for `client:<id>.hook.handle`.
108
+ *
109
+ * The returned definition uses `isRequest: true` so the bus dispatches it
110
+ * through the request/response pipeline, and `hostLocalRequest: true` so the
111
+ * bus accepts direct remote ingress but never relays the request onward to
112
+ * other transports. This matches the owning namespace registration in
113
+ * `createClientNamespace`, which wraps the schema with `hostLocalRequest()`.
114
+ *
115
+ * Concrete client packages own their full `client:<id>` namespace via
116
+ * `createClientNamespace`; this helper is intentionally non-owning for
117
+ * the same reasons as {@link createRawClientHookReceivedSubject} — see that
118
+ * function's doc for the full rationale.
119
+ * @param rawClientId - Stable client identifier, optionally prefixed with `client:`
120
+ * @returns Non-owning subject definition for the client's raw hook handle ingress
121
+ */
122
+ declare function createRawClientHookHandleSubject(rawClientId: string): RawClientHookHandleSubject;
123
+ //#endregion
124
+ export { ClientHookHandleResponse, ClientHookHandleResponseSchema, DEFAULT_HOOK_HANDLE_TIMEOUT_MS, NOOP_HOOK_HANDLE_RESPONSE, RawClientHookHandleSubject, RawClientHookPayload, RawClientHookPayloadSchema, RawClientHookReceivedSubject, canonicalizeClientId, createRawClientHookHandleSubject, createRawClientHookReceivedSubject };
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";const t=e.object({eventName:e.string(),receivedAt:e.number().int().finite().nonnegative().describe(`Unix epoch timestamp in milliseconds`),payload:e.record(e.string(),e.unknown()),metadata:e.record(e.string(),e.unknown()).optional()}),n=/^[a-z0-9-]+$/;function r(e,t=`canonicalizeClientId`){let r=e.trim().toLowerCase(),i=r.startsWith(`client:`)?r.slice(7):r;if(i.length===0)throw Error(`[${t}] clientId must be a non-empty string`);if(!n.test(i))throw Error(`[${t}] clientId must contain only lowercase letters, numbers, and hyphens after an optional client: prefix`);return i}function i(e){return{subject:`hook.received`,$meta:{namespace:`client:${r(e,`createRawClientHookReceivedSubject`)}`,isRequest:!1,local:!1,channel:!1}}}const a=5e3,o=e.object({exitCode:e.number().int().min(0).max(255).default(0),stdout:e.string().default(``),stderr:e.string().default(``)}),s=Object.freeze({exitCode:0,stdout:``,stderr:``});function c(e){return{subject:`hook.handle`,$meta:{namespace:`client:${r(e,`createRawClientHookHandleSubject`)}`,isRequest:!0,local:!1,channel:!1,hostLocalRequest:!0}}}export{o as ClientHookHandleResponseSchema,a as DEFAULT_HOOK_HANDLE_TIMEOUT_MS,s as NOOP_HOOK_HANDLE_RESPONSE,t as RawClientHookPayloadSchema,r as canonicalizeClientId,c as createRawClientHookHandleSubject,i as createRawClientHookReceivedSubject};
@@ -1,8 +1,9 @@
1
+ import { ClientHookHandleResponse, ClientHookHandleResponseSchema, DEFAULT_HOOK_HANDLE_TIMEOUT_MS, NOOP_HOOK_HANDLE_RESPONSE, RawClientHookHandleSubject, RawClientHookPayload, RawClientHookPayloadSchema, RawClientHookReceivedSubject, canonicalizeClientId, createRawClientHookHandleSubject, createRawClientHookReceivedSubject } from "./hook-subjects.mjs";
1
2
  import { a as StrategyDependencies, i as InstallStrategy, n as createStrategy, r as InstallArtifact, t as verifyInstalledVersion } from "../client-binary-version-verifier-C8gtKQFO.mjs";
2
3
  import * as _$zod from "zod";
3
4
  import { z } from "zod";
4
5
  import * as _$_makaio_core0 from "@makaio/framework/core";
5
- import { EventMessagePayload, RequestMessagePayload, SchemaRecord, SubjectDefinition, SubjectRecord } from "@makaio/framework/core";
6
+ import { RequestMessagePayload, SchemaRecord, SubjectDefinition, SubjectRecord } from "@makaio/framework/core";
6
7
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
7
8
  import { ClientDefinition, ExtensionServiceLifecycle, MakaioNodeExtension } from "@makaio/framework/contracts";
8
9
  import { IMakaioBus } from "@makaio/framework/bus";
@@ -1400,123 +1401,6 @@ declare class ClientSessionTokenService extends BaseService implements ClientSes
1400
1401
  }
1401
1402
  //#endregion
1402
1403
  //#region subsystems/client/src/client-session-observed-semantics.d.ts
1403
- /**
1404
- * Canonical schema for the raw catch-all hook payload delivered on
1405
- * `client:<id>.hook.received`.
1406
- *
1407
- * Client ingress CLIs are dumb bridges: they accept any native hook event and
1408
- * publish it verbatim on this subject. Downstream normalizers are responsible
1409
- * for interpreting `eventName` and mapping the `payload` to structured
1410
- * `client.session.*` observations.
1411
- *
1412
- * Fields:
1413
- * - `eventName` — the hook event name as reported by the client CLI
1414
- * (e.g. `'PreToolUse'`, `'Stop'`).
1415
- * - `receivedAt` — Unix epoch timestamp in milliseconds when the bridge
1416
- * received the hook call.
1417
- * - `payload` — raw JSON object forwarded verbatim from the client CLI.
1418
- * - `metadata` — optional pass-through metadata added by the bridge (e.g.
1419
- * process PID, invocation arguments).
1420
- */
1421
- declare const RawClientHookPayloadSchema: z.ZodObject<{
1422
- eventName: z.ZodString;
1423
- receivedAt: z.ZodNumber;
1424
- payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1425
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1426
- }, z.core.$strip>;
1427
- type RawClientHookPayload = z.infer<typeof RawClientHookPayloadSchema>;
1428
- /**
1429
- * Normalize user-provided client identifiers to the stable suffix used in
1430
- * `client:<id>` namespaces.
1431
- * @param clientId - Raw client identifier, optionally prefixed with `client:`
1432
- * @param caller - Optional function name used in thrown error messages
1433
- * @returns Canonical lowercase client identifier without the `client:` prefix
1434
- */
1435
- declare function canonicalizeClientId(clientId: string, caller?: string): string;
1436
- type RawClientHookSubjectRecord = SubjectRecord<'hook.received', EventMessagePayload<RawClientHookPayload>>;
1437
- /**
1438
- * Subject definition for the raw catch-all hook event in a concrete
1439
- * `client:<id>` namespace.
1440
- */
1441
- type RawClientHookReceivedSubject = SubjectDefinition<RawClientHookSubjectRecord, 'hook.received', `client:${string}`>;
1442
- /**
1443
- * Build a non-owning subject definition for `client:<id>.hook.received`.
1444
- *
1445
- * This is intentionally not a namespace registration. Concrete client packages
1446
- * own their full `client:<id>` namespace via {@link createClientNamespace}; the
1447
- * generic CLI bridge only needs to emit the shared hook subject and must not
1448
- * accidentally register a narrower namespace before the concrete owner loads.
1449
- * When the concrete owner is loaded, normal bus schema validation applies. When
1450
- * it is not loaded, the ad-hoc subject still allows the raw event to traverse
1451
- * transports to a process that owns the namespace.
1452
- * @param clientId - Stable client identifier, optionally prefixed with `client:`
1453
- * @returns Non-owning subject definition for the client's raw hook ingress
1454
- */
1455
- declare function createRawClientHookReceivedSubject(clientId: string): RawClientHookReceivedSubject;
1456
- /**
1457
- * Default timeout in milliseconds for hook handle requests.
1458
- *
1459
- * Shared between the CLI schema default (client-hooks extension) and the
1460
- * wiring descriptor trailing flags (claude-code client) so both always agree
1461
- * on the configured wait budget without independent magic numbers.
1462
- */
1463
- declare const DEFAULT_HOOK_HANDLE_TIMEOUT_MS = 5000;
1464
- /**
1465
- * Schema for the response payload returned by a `makaio hook handle` command.
1466
- *
1467
- * The client binary reads this from the command's stdout after the process
1468
- * exits. All fields default to safe zero-values so partial responses are
1469
- * still valid.
1470
- *
1471
- * Fields:
1472
- * - `exitCode` — process exit code the binary should use (0–255). Defaults to `0`.
1473
- * - `stdout` — text written to stdout, forwarded verbatim to the client.
1474
- * Defaults to `''`.
1475
- * - `stderr` — text written to stderr, forwarded verbatim to the client.
1476
- * Defaults to `''`.
1477
- */
1478
- declare const ClientHookHandleResponseSchema: z.ZodObject<{
1479
- exitCode: z.ZodDefault<z.ZodNumber>;
1480
- stdout: z.ZodDefault<z.ZodString>;
1481
- stderr: z.ZodDefault<z.ZodString>;
1482
- }, z.core.$strip>;
1483
- type ClientHookHandleResponse = z.infer<typeof ClientHookHandleResponseSchema>;
1484
- /**
1485
- * Frozen no-op hook handle response shared across all client composers.
1486
- *
1487
- * exitCode 0 with empty stdout/stderr is the provider-valid passthrough
1488
- * that permits the tool invocation to proceed unchanged. A single frozen
1489
- * instance avoids per-client duplication and per-call object allocation.
1490
- */
1491
- declare const NOOP_HOOK_HANDLE_RESPONSE: ClientHookHandleResponse;
1492
- type RawClientHookHandleSubjectRecord = SubjectRecord<'hook.handle', RequestMessagePayload<RawClientHookPayload, ClientHookHandleResponse>>;
1493
- /**
1494
- * Subject definition for the raw hook handle request/response subject in a
1495
- * concrete `client:<id>` namespace.
1496
- *
1497
- * Carries `RequestMessagePayload<RawClientHookPayload, ClientHookHandleResponse>`
1498
- * as a phantom type so `bus.requestOptional` infers the correct generics without
1499
- * additional type annotations at the call site.
1500
- */
1501
- type RawClientHookHandleSubject = SubjectDefinition<RawClientHookHandleSubjectRecord, 'hook.handle', `client:${string}`>;
1502
- /**
1503
- * Build a non-owning subject definition for `client:<id>.hook.handle`.
1504
- *
1505
- * The returned definition uses `isRequest: true` so the bus dispatches it
1506
- * through the request/response pipeline, and `hostLocalRequest: true` so the
1507
- * bus accepts direct remote ingress but never relays the request onward to
1508
- * other transports. This matches the owning namespace registration in
1509
- * {@link createClientNamespace}, which wraps the schema with
1510
- * `hostLocalRequest()`.
1511
- *
1512
- * Concrete client packages own their full `client:<id>` namespace via
1513
- * {@link createClientNamespace}; this helper is intentionally non-owning for
1514
- * the same reasons as {@link createRawClientHookReceivedSubject} — see that
1515
- * function's doc for the full rationale.
1516
- * @param rawClientId - Stable client identifier, optionally prefixed with `client:`
1517
- * @returns Non-owning subject definition for the client's raw hook handle ingress
1518
- */
1519
- declare function createRawClientHookHandleSubject(rawClientId: string): RawClientHookHandleSubject;
1520
1404
  /**
1521
1405
  * Trim and return a string value when non-empty, otherwise `undefined`.
1522
1406
  *