@cleocode/cleo 2026.4.11 → 2026.4.12
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.
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +123 -19
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +64 -20
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/backup.d.ts +1 -0
- package/dist/cli/commands/backup.d.ts.map +1 -1
- package/dist/cli/commands/backup.js +7 -1
- package/dist/cli/commands/backup.js.map +1 -1
- package/dist/cli/commands/complete.d.ts.map +1 -1
- package/dist/cli/commands/complete.js +55 -6
- package/dist/cli/commands/complete.js.map +1 -1
- package/dist/cli/commands/find.d.ts.map +1 -1
- package/dist/cli/commands/find.js +75 -11
- package/dist/cli/commands/find.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +84 -12
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/observe.d.ts +3 -0
- package/dist/cli/commands/observe.d.ts.map +1 -1
- package/dist/cli/commands/observe.js +12 -9
- package/dist/cli/commands/observe.js.map +1 -1
- package/dist/cli/commands/restore.d.ts +1 -0
- package/dist/cli/commands/restore.d.ts.map +1 -1
- package/dist/cli/commands/restore.js +4 -0
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +27 -0
- package/dist/cli/commands/schema.d.ts.map +1 -0
- package/dist/cli/commands/schema.js +160 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/show.d.ts.map +1 -1
- package/dist/cli/commands/show.js +24 -4
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/help-generator.d.ts +74 -0
- package/dist/cli/help-generator.d.ts.map +1 -0
- package/dist/cli/help-generator.js +229 -0
- package/dist/cli/help-generator.js.map +1 -0
- package/dist/cli/index.js +342 -107991
- package/dist/cli/index.js.map +1 -7
- package/dist/cli/renderers/index.d.ts +35 -7
- package/dist/cli/renderers/index.d.ts.map +1 -1
- package/dist/cli/renderers/index.js +64 -10
- package/dist/cli/renderers/index.js.map +1 -1
- package/dist/cli/renderers/lafs-validator.d.ts +27 -33
- package/dist/cli/renderers/lafs-validator.d.ts.map +1 -1
- package/dist/cli/renderers/lafs-validator.js +45 -98
- package/dist/cli/renderers/lafs-validator.js.map +1 -1
- package/dist/dispatch/adapters/cli.d.ts.map +1 -1
- package/dist/dispatch/adapters/cli.js +16 -2
- package/dist/dispatch/adapters/cli.js.map +1 -1
- package/dist/dispatch/dispatcher.js +7 -7
- package/dist/dispatch/dispatcher.js.map +1 -1
- package/dist/dispatch/domains/_base.js +4 -4
- package/dist/dispatch/domains/_base.js.map +1 -1
- package/dist/dispatch/domains/_meta.d.ts +3 -3
- package/dist/dispatch/domains/_meta.d.ts.map +1 -1
- package/dist/dispatch/domains/_meta.js +2 -2
- package/dist/dispatch/domains/admin.js +19 -19
- package/dist/dispatch/domains/admin.js.map +1 -1
- package/dist/dispatch/domains/check.js +3 -3
- package/dist/dispatch/domains/check.js.map +1 -1
- package/dist/dispatch/domains/nexus.js +2 -2
- package/dist/dispatch/domains/nexus.js.map +1 -1
- package/dist/dispatch/domains/orchestrate.js +3 -3
- package/dist/dispatch/domains/orchestrate.js.map +1 -1
- package/dist/dispatch/domains/pipeline.js +1 -1
- package/dist/dispatch/domains/pipeline.js.map +1 -1
- package/dist/dispatch/domains/sticky.js +1 -1
- package/dist/dispatch/domains/sticky.js.map +1 -1
- package/dist/dispatch/domains/tasks.js +1 -1
- package/dist/dispatch/domains/tasks.js.map +1 -1
- package/dist/dispatch/domains/tools.js +5 -5
- package/dist/dispatch/domains/tools.js.map +1 -1
- package/dist/dispatch/engines/_error.d.ts +34 -0
- package/dist/dispatch/engines/_error.d.ts.map +1 -1
- package/dist/dispatch/engines/_error.js +44 -0
- package/dist/dispatch/engines/_error.js.map +1 -1
- package/dist/dispatch/engines/session-engine.d.ts.map +1 -1
- package/dist/dispatch/engines/session-engine.js +18 -68
- package/dist/dispatch/engines/session-engine.js.map +1 -1
- package/dist/dispatch/engines/system-engine.d.ts.map +1 -1
- package/dist/dispatch/engines/system-engine.js +29 -37
- package/dist/dispatch/engines/system-engine.js.map +1 -1
- package/dist/dispatch/engines/task-engine.d.ts +1 -1
- package/dist/dispatch/engines/task-engine.d.ts.map +1 -1
- package/dist/dispatch/engines/task-engine.js +35 -229
- package/dist/dispatch/engines/task-engine.js.map +1 -1
- package/dist/dispatch/lib/budget.d.ts +1 -0
- package/dist/dispatch/lib/budget.d.ts.map +1 -1
- package/dist/dispatch/lib/budget.js +36 -29
- package/dist/dispatch/lib/budget.js.map +1 -1
- package/dist/dispatch/lib/config.d.ts +1 -1
- package/dist/dispatch/lib/config.d.ts.map +1 -1
- package/dist/dispatch/lib/defaults.d.ts +0 -2
- package/dist/dispatch/lib/defaults.d.ts.map +1 -1
- package/dist/dispatch/lib/defaults.js +3 -0
- package/dist/dispatch/lib/defaults.js.map +1 -1
- package/dist/dispatch/lib/exit-codes.d.ts +35 -0
- package/dist/dispatch/lib/exit-codes.d.ts.map +1 -0
- package/dist/dispatch/lib/exit-codes.js +60 -0
- package/dist/dispatch/lib/exit-codes.js.map +1 -0
- package/dist/dispatch/lib/gateway-meta.d.ts +1 -1
- package/dist/dispatch/lib/meta.d.ts +2 -2
- package/dist/dispatch/lib/meta.d.ts.map +1 -1
- package/dist/dispatch/lib/meta.js +1 -1
- package/dist/dispatch/lib/meta.js.map +1 -1
- package/dist/dispatch/lib/param-utils.d.ts +1 -1
- package/dist/dispatch/lib/param-utils.d.ts.map +1 -1
- package/dist/dispatch/lib/param-utils.js +1 -1
- package/dist/dispatch/lib/param-utils.js.map +1 -1
- package/dist/dispatch/lib/proto-envelope.d.ts +56 -0
- package/dist/dispatch/lib/proto-envelope.d.ts.map +1 -0
- package/dist/dispatch/lib/proto-envelope.js +17 -0
- package/dist/dispatch/lib/proto-envelope.js.map +1 -0
- package/dist/dispatch/middleware/field-filter.d.ts +1 -0
- package/dist/dispatch/middleware/field-filter.d.ts.map +1 -1
- package/dist/dispatch/middleware/field-filter.js +10 -5
- package/dist/dispatch/middleware/field-filter.js.map +1 -1
- package/dist/dispatch/middleware/projection.js +1 -1
- package/dist/dispatch/middleware/projection.js.map +1 -1
- package/dist/dispatch/middleware/protocol-enforcement.d.ts +6 -3
- package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +1 -1
- package/dist/dispatch/middleware/protocol-enforcement.js +28 -17
- package/dist/dispatch/middleware/protocol-enforcement.js.map +1 -1
- package/dist/dispatch/middleware/rate-limiter.js +2 -2
- package/dist/dispatch/middleware/rate-limiter.js.map +1 -1
- package/dist/dispatch/middleware/sanitizer.js +1 -1
- package/dist/dispatch/middleware/sanitizer.js.map +1 -1
- package/dist/dispatch/middleware/verification-gates.js +2 -2
- package/dist/dispatch/middleware/verification-gates.js.map +1 -1
- package/dist/dispatch/types.d.ts +5 -1
- package/dist/dispatch/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/templates/cleoos-hub/pi-extensions/cleo-cant-bridge.ts +180 -0
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* response sizes for context-constrained agents.
|
|
6
6
|
*
|
|
7
7
|
* @task T4701
|
|
8
|
+
* @task T338 — updated for canonical CLI envelope (meta, data)
|
|
8
9
|
* @epic T4663
|
|
9
10
|
*/
|
|
10
11
|
import { applyBudgetEnforcement, checkBudget } from '@cleocode/lafs';
|
|
@@ -30,29 +31,32 @@ const DEFAULT_BUDGET = 4000;
|
|
|
30
31
|
*/
|
|
31
32
|
export function enforceBudget(response, budget) {
|
|
32
33
|
const effectiveBudget = budget ?? DEFAULT_BUDGET;
|
|
33
|
-
// Build
|
|
34
|
+
// Build a proto-envelope stub for the SDK budget checker.
|
|
35
|
+
// The SDK internally uses {_meta, result}, so we bridge from the canonical
|
|
36
|
+
// CLI shape {meta, data} here.
|
|
37
|
+
const protoMeta = (response['meta'] ?? {});
|
|
34
38
|
const envelope = {
|
|
35
39
|
$schema: 'https://lafs.dev/schemas/v1/envelope.schema.json',
|
|
36
|
-
_meta:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
_meta: Object.keys(protoMeta).length > 0
|
|
41
|
+
? protoMeta
|
|
42
|
+
: {
|
|
43
|
+
specVersion: '1.2.3',
|
|
44
|
+
schemaVersion: '2026.2.1',
|
|
45
|
+
timestamp: new Date().toISOString(),
|
|
46
|
+
operation: 'dispatch.response',
|
|
47
|
+
requestId: 'budget-check',
|
|
48
|
+
transport: 'sdk',
|
|
49
|
+
strict: true,
|
|
50
|
+
mvi: 'standard',
|
|
51
|
+
contextVersion: 1,
|
|
52
|
+
},
|
|
47
53
|
success: response['success'] ?? true,
|
|
48
54
|
result: response['data'] ?? null,
|
|
49
55
|
...(response['error'] ? { error: response['error'] } : {}),
|
|
50
56
|
};
|
|
51
|
-
const enforcement = applyBudgetEnforcement(envelope, effectiveBudget, {
|
|
52
|
-
|
|
53
|
-
});
|
|
54
|
-
// Merge budget info back into the response _meta
|
|
55
|
-
const meta = (response['_meta'] ?? {});
|
|
57
|
+
const enforcement = applyBudgetEnforcement(envelope, effectiveBudget, { truncateOnExceed: true });
|
|
58
|
+
// Merge budget info back into the response meta
|
|
59
|
+
const meta = (response['meta'] ?? {});
|
|
56
60
|
meta['_budgetEnforcement'] = {
|
|
57
61
|
budget: effectiveBudget,
|
|
58
62
|
estimatedTokens: enforcement.estimatedTokens,
|
|
@@ -62,7 +66,7 @@ export function enforceBudget(response, budget) {
|
|
|
62
66
|
return {
|
|
63
67
|
response: {
|
|
64
68
|
...response,
|
|
65
|
-
|
|
69
|
+
meta,
|
|
66
70
|
// Replace data with potentially truncated result
|
|
67
71
|
...(enforcement.truncated &&
|
|
68
72
|
enforcement.envelope.result !== undefined && {
|
|
@@ -80,19 +84,22 @@ export function enforceBudget(response, budget) {
|
|
|
80
84
|
*/
|
|
81
85
|
export function isWithinBudget(response, budget) {
|
|
82
86
|
const effectiveBudget = budget ?? DEFAULT_BUDGET;
|
|
87
|
+
const protoMeta = (response['meta'] ?? {});
|
|
83
88
|
const envelope = {
|
|
84
89
|
$schema: 'https://lafs.dev/schemas/v1/envelope.schema.json',
|
|
85
|
-
_meta:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
_meta: Object.keys(protoMeta).length > 0
|
|
91
|
+
? protoMeta
|
|
92
|
+
: {
|
|
93
|
+
specVersion: '1.2.3',
|
|
94
|
+
schemaVersion: '2026.2.1',
|
|
95
|
+
timestamp: new Date().toISOString(),
|
|
96
|
+
operation: 'dispatch.response',
|
|
97
|
+
requestId: 'budget-check',
|
|
98
|
+
transport: 'sdk',
|
|
99
|
+
strict: true,
|
|
100
|
+
mvi: 'standard',
|
|
101
|
+
contextVersion: 1,
|
|
102
|
+
},
|
|
96
103
|
success: true,
|
|
97
104
|
result: response['data'] ?? null,
|
|
98
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../../src/dispatch/lib/budget.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../../src/dispatch/lib/budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* @task T4830
|
|
8
8
|
*/
|
|
9
9
|
export { ConfigValidationError, getConfig, loadConfig, resetConfig, validateConfig, } from './config-loader.js';
|
|
10
|
-
export type { DispatchConfig
|
|
10
|
+
export type { DispatchConfig } from './defaults.js';
|
|
11
11
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -67,8 +67,6 @@ export declare const DEFAULT_PROTOCOL_VALIDATION: ProtocolValidationConfig;
|
|
|
67
67
|
/**
|
|
68
68
|
* Default configuration values
|
|
69
69
|
*/
|
|
70
|
-
/** Alias for DispatchConfig. */
|
|
71
|
-
export type MCPConfig = DispatchConfig;
|
|
72
70
|
export declare const DEFAULT_CONFIG: DispatchConfig;
|
|
73
71
|
/**
|
|
74
72
|
* Environment variable prefix for CLEO configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAIxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,iEAAiE;IACjE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IACpC,uDAAuD;IACvD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uDAAuD;IACvD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,6CAA6C;IAC7C,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAEhB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAE9C,qDAAqD;IACrD,aAAa,EAAE,OAAO,CAAC;IAEvB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IAEpB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IAEtB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAElB,6CAA6C;IAC7C,gBAAgB,EAAE,OAAO,CAAC;IAE1B,yDAAyD;IACzD,oBAAoB,EAAE,0BAA0B,CAAC;IAEjD,uDAAuD;IACvD,kBAAkB,EAAE,wBAAwB,CAAC;IAE7C,iDAAiD;IACjD,YAAY,EAAE,kBAAkB,CAAC;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,0BAI3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAIzC,CAAC;AAEF;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAIxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,iEAAiE;IACjE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IACpC,uDAAuD;IACvD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uDAAuD;IACvD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,6CAA6C;IAC7C,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAEhB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAE9C,qDAAqD;IACrD,aAAa,EAAE,OAAO,CAAC;IAEvB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IAEpB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IAEtB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAElB,6CAA6C;IAC7C,gBAAgB,EAAE,OAAO,CAAC;IAE1B,yDAAyD;IACzD,oBAAoB,EAAE,0BAA0B,CAAC;IAEjD,uDAAuD;IACvD,kBAAkB,EAAE,wBAAwB,CAAC;IAE7C,iDAAiD;IACjD,YAAY,EAAE,kBAAkB,CAAC;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,0BAI3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAIzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,cAa5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,UAAU,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/dispatch/lib/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAgEtE;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA+B;IACvE,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA6B;IACnE,UAAU,EAAE,IAAI;IAChB,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/dispatch/lib/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAgEtE;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA+B;IACvE,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA6B;IACnE,UAAU,EAAE,IAAI;IAChB,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,KAAK,EAAE,aAAa;IAC7B,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,KAAK,EAAE,aAAa;IACnC,QAAQ,EAAE,IAAI;IACd,gBAAgB,EAAE,IAAI;IACtB,oBAAoB,EAAE,EAAE,GAAG,6BAA6B,EAAE;IAC1D,kBAAkB,EAAE,EAAE,GAAG,2BAA2B,EAAE;IACtD,YAAY,EAAE,EAAE,GAAG,qBAAqB,EAAE;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;IACnD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACtE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC/B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;IACtD,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC7B,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;CAC7B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared exit-code mapping utilities for the dispatch layer.
|
|
3
|
+
*
|
|
4
|
+
* Provides a canonical reverse lookup from numeric exit code to string error code,
|
|
5
|
+
* shared between dispatch engines and the CLI adapter.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* The forward mapping (string → number) lives in `engines/_error.ts` as
|
|
9
|
+
* `STRING_TO_EXIT`. This module derives the inverse on first call and memoises
|
|
10
|
+
* it so engines can resolve a caught `CleoError.code` (numeric) to the
|
|
11
|
+
* string code expected by `engineError()`.
|
|
12
|
+
*
|
|
13
|
+
* @task T374
|
|
14
|
+
* @epic T335
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Map a numeric CleoError exit code to the canonical string engine error code.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* Returns `undefined` when the numeric code is not present in the
|
|
21
|
+
* `STRING_TO_EXIT` map, allowing callers to fall back to their own default.
|
|
22
|
+
*
|
|
23
|
+
* @param numericCode - Numeric exit code from a caught `CleoError.code`
|
|
24
|
+
* @returns Canonical string error code (e.g. `'E_NOT_FOUND'`), or `undefined`
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { mapNumericExitCodeToString } from '../lib/exit-codes.js';
|
|
29
|
+
*
|
|
30
|
+
* const code = mapNumericExitCodeToString(4) ?? 'E_NOT_INITIALIZED';
|
|
31
|
+
* // → 'E_NOT_FOUND'
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function mapNumericExitCodeToString(numericCode: number | undefined): string | undefined;
|
|
35
|
+
//# sourceMappingURL=exit-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0BH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG9F"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared exit-code mapping utilities for the dispatch layer.
|
|
3
|
+
*
|
|
4
|
+
* Provides a canonical reverse lookup from numeric exit code to string error code,
|
|
5
|
+
* shared between dispatch engines and the CLI adapter.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* The forward mapping (string → number) lives in `engines/_error.ts` as
|
|
9
|
+
* `STRING_TO_EXIT`. This module derives the inverse on first call and memoises
|
|
10
|
+
* it so engines can resolve a caught `CleoError.code` (numeric) to the
|
|
11
|
+
* string code expected by `engineError()`.
|
|
12
|
+
*
|
|
13
|
+
* @task T374
|
|
14
|
+
* @epic T335
|
|
15
|
+
*/
|
|
16
|
+
import { STRING_TO_EXIT } from '../engines/_error.js';
|
|
17
|
+
/** Lazily built inverse of STRING_TO_EXIT (number → string). */
|
|
18
|
+
let _inverseCache = null;
|
|
19
|
+
/**
|
|
20
|
+
* Build and memoize the inverse of STRING_TO_EXIT.
|
|
21
|
+
*
|
|
22
|
+
* When multiple string codes map to the same exit number (e.g. E_GENERAL
|
|
23
|
+
* and E_GENERAL_ERROR both map to 1), the first occurrence wins.
|
|
24
|
+
*/
|
|
25
|
+
function getInverseMap() {
|
|
26
|
+
if (_inverseCache)
|
|
27
|
+
return _inverseCache;
|
|
28
|
+
const map = new Map();
|
|
29
|
+
for (const [key, value] of Object.entries(STRING_TO_EXIT)) {
|
|
30
|
+
if (!map.has(value)) {
|
|
31
|
+
map.set(value, key);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
_inverseCache = map;
|
|
35
|
+
return map;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Map a numeric CleoError exit code to the canonical string engine error code.
|
|
39
|
+
*
|
|
40
|
+
* @remarks
|
|
41
|
+
* Returns `undefined` when the numeric code is not present in the
|
|
42
|
+
* `STRING_TO_EXIT` map, allowing callers to fall back to their own default.
|
|
43
|
+
*
|
|
44
|
+
* @param numericCode - Numeric exit code from a caught `CleoError.code`
|
|
45
|
+
* @returns Canonical string error code (e.g. `'E_NOT_FOUND'`), or `undefined`
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* import { mapNumericExitCodeToString } from '../lib/exit-codes.js';
|
|
50
|
+
*
|
|
51
|
+
* const code = mapNumericExitCodeToString(4) ?? 'E_NOT_INITIALIZED';
|
|
52
|
+
* // → 'E_NOT_FOUND'
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function mapNumericExitCodeToString(numericCode) {
|
|
56
|
+
if (numericCode === undefined)
|
|
57
|
+
return undefined;
|
|
58
|
+
return getInverseMap().get(numericCode);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=exit-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../../src/dispatch/lib/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,gEAAgE;AAChE,IAAI,aAAa,GAA+B,IAAI,CAAC;AAErD;;;;;GAKG;AACH,SAAS,aAAa;IACpB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,aAAa,GAAG,GAAG,CAAC;IACpB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,0BAA0B,CAAC,WAA+B;IACxE,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,aAAa,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import type { GatewayMeta } from '@cleocode/contracts';
|
|
16
16
|
/**
|
|
17
|
-
* GatewayMeta with an index signature for DomainResponse.
|
|
17
|
+
* GatewayMeta with an index signature for DomainResponse.meta
|
|
18
18
|
* compatibility. All domain handlers receive this from
|
|
19
19
|
* createGatewayMeta().
|
|
20
20
|
*
|
|
@@ -17,10 +17,10 @@ import type { DispatchResponse, Source } from '../types.js';
|
|
|
17
17
|
* @param source - Where the request originated
|
|
18
18
|
* @param requestId - Optional pre-generated request ID
|
|
19
19
|
* @param sessionId - Optional session ID to include in metadata
|
|
20
|
-
* @returns Metadata conforming to DispatchResponse['
|
|
20
|
+
* @returns Metadata conforming to DispatchResponse['meta']
|
|
21
21
|
*
|
|
22
22
|
* @task T4772
|
|
23
23
|
* @task T4959
|
|
24
24
|
*/
|
|
25
|
-
export declare function createDispatchMeta(gateway: string, domain: string, operation: string, startTime: number, source?: Source, requestId?: string, sessionId?: string | null): DispatchResponse['
|
|
25
|
+
export declare function createDispatchMeta(gateway: string, domain: string, operation: string, startTime: number, source?: Source, requestId?: string, sessionId?: string | null): DispatchResponse['meta'];
|
|
26
26
|
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAc,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAc,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,gBAAgB,CAAC,MAAM,CAAC,CAW1B"}
|
|
@@ -17,7 +17,7 @@ import { randomUUID } from 'node:crypto';
|
|
|
17
17
|
* @param source - Where the request originated
|
|
18
18
|
* @param requestId - Optional pre-generated request ID
|
|
19
19
|
* @param sessionId - Optional session ID to include in metadata
|
|
20
|
-
* @returns Metadata conforming to DispatchResponse['
|
|
20
|
+
* @returns Metadata conforming to DispatchResponse['meta']
|
|
21
21
|
*
|
|
22
22
|
* @task T4772
|
|
23
23
|
* @task T4959
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/dispatch/lib/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,MAAc,EACd,SAAiB,EACjB,SAAiB,EACjB,SAAiB,KAAK,EACtB,SAAkB,EAClB,SAAyB;IAEzB,OAAO;QACL,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/dispatch/lib/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,MAAc,EACd,SAAiB,EACjB,SAAiB,EACjB,SAAiB,KAAK,EACtB,SAAkB,EAClB,SAAyB;IAEzB,OAAO;QACL,OAAO,EAAE,OAA8C;QACvD,MAAM;QACN,SAAS;QACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QACnC,MAAM;QACN,SAAS,EAAE,SAAS,IAAI,UAAU,EAAE;QACpC,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* @task T5706
|
|
8
8
|
*/
|
|
9
9
|
export type { CommanderArgSplit, JSONSchemaObject, JsonSchemaProperty, JsonSchemaType, } from '@cleocode/core/internal';
|
|
10
|
-
export { buildCommanderArgs, buildCommanderOptionString, buildMcpInputSchema, camelToKebab, validateRequiredParamsDef, } from '@cleocode/core/internal';
|
|
10
|
+
export { buildCommanderArgs, buildCommanderOptionString, buildDispatchInputSchema, buildMcpInputSchema, camelToKebab, validateRequiredParamsDef, } from '@cleocode/core/internal';
|
|
11
11
|
//# sourceMappingURL=param-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"param-utils.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/param-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"param-utils.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/param-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @task T5706
|
|
8
8
|
*/
|
|
9
|
-
export { buildCommanderArgs, buildCommanderOptionString, buildMcpInputSchema, camelToKebab, validateRequiredParamsDef, } from '@cleocode/core/internal';
|
|
9
|
+
export { buildCommanderArgs, buildCommanderOptionString, buildDispatchInputSchema, buildMcpInputSchema, camelToKebab, validateRequiredParamsDef, } from '@cleocode/core/internal';
|
|
10
10
|
//# sourceMappingURL=param-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"param-utils.js","sourceRoot":"","sources":["../../../src/dispatch/lib/param-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"param-utils.js","sourceRoot":"","sources":["../../../src/dispatch/lib/param-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared bridge stub type for LAFS SDK protocol-shape envelopes.
|
|
3
|
+
*
|
|
4
|
+
* The LAFS SDK's internal `LAFSEnvelope` uses the proto-shape `{_meta, result}`.
|
|
5
|
+
* The canonical CLEO CLI envelope uses `{meta, data}`. Several dispatch-layer
|
|
6
|
+
* modules (budget enforcement, field filtering) need to map between the two.
|
|
7
|
+
*
|
|
8
|
+
* This stub captures the SDK's expected shape so both `budget.ts` and
|
|
9
|
+
* `field-filter.ts` share a single, consistent definition rather than
|
|
10
|
+
* duplicating it inline.
|
|
11
|
+
*
|
|
12
|
+
* @task T338
|
|
13
|
+
* @epic T335
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Minimal stub of the LAFS SDK's `LAFSEnvelope` proto-shape.
|
|
18
|
+
*
|
|
19
|
+
* Used to bridge `DispatchResponse` (canonical CLI envelope with `meta` + `data`)
|
|
20
|
+
* into the SDK's expected `{_meta, result}` shape for budget checking and
|
|
21
|
+
* field filtering. After the SDK call, results are mapped back to the canonical
|
|
22
|
+
* shape.
|
|
23
|
+
*
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export interface _ProtoEnvelopeStub {
|
|
27
|
+
/** LAFS JSON Schema URL. */
|
|
28
|
+
$schema: string;
|
|
29
|
+
/**
|
|
30
|
+
* Protocol-level metadata block (SDK proto-shape).
|
|
31
|
+
*
|
|
32
|
+
* This mirrors the required fields of `LAFSMeta` so the SDK's validators
|
|
33
|
+
* accept the stub without a full `LAFSMeta` import.
|
|
34
|
+
*/
|
|
35
|
+
_meta: {
|
|
36
|
+
specVersion: string;
|
|
37
|
+
schemaVersion: string;
|
|
38
|
+
timestamp: string;
|
|
39
|
+
operation: string;
|
|
40
|
+
requestId: string;
|
|
41
|
+
transport: string;
|
|
42
|
+
strict: boolean;
|
|
43
|
+
mvi: string;
|
|
44
|
+
contextVersion: number;
|
|
45
|
+
[key: string]: unknown;
|
|
46
|
+
};
|
|
47
|
+
/** Whether the operation succeeded. */
|
|
48
|
+
success: boolean;
|
|
49
|
+
/** Operation result payload (SDK proto-shape uses `result`, not `data`). */
|
|
50
|
+
result: Record<string, unknown> | Record<string, unknown>[] | null;
|
|
51
|
+
/** Optional error payload. */
|
|
52
|
+
error?: Record<string, unknown>;
|
|
53
|
+
/** Extensible: additional SDK fields pass through the index signature. */
|
|
54
|
+
[key: string]: unknown;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=proto-envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto-envelope.d.ts","sourceRoot":"","sources":["../../../src/dispatch/lib/proto-envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,cAAc,EAAE,MAAM,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;IACnE,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,0EAA0E;IAC1E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared bridge stub type for LAFS SDK protocol-shape envelopes.
|
|
3
|
+
*
|
|
4
|
+
* The LAFS SDK's internal `LAFSEnvelope` uses the proto-shape `{_meta, result}`.
|
|
5
|
+
* The canonical CLEO CLI envelope uses `{meta, data}`. Several dispatch-layer
|
|
6
|
+
* modules (budget enforcement, field filtering) need to map between the two.
|
|
7
|
+
*
|
|
8
|
+
* This stub captures the SDK's expected shape so both `budget.ts` and
|
|
9
|
+
* `field-filter.ts` share a single, consistent definition rather than
|
|
10
|
+
* duplicating it inline.
|
|
11
|
+
*
|
|
12
|
+
* @task T338
|
|
13
|
+
* @epic T335
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=proto-envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proto-envelope.js","sourceRoot":"","sources":["../../../src/dispatch/lib/proto-envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-filter.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/field-filter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"field-filter.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/field-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAqC,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CAsD9C"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @epic T4820
|
|
10
10
|
* @task T4979
|
|
11
|
+
* @task T338 — updated for canonical CLI envelope (meta, data)
|
|
11
12
|
*/
|
|
12
13
|
import { isMVILevel, applyFieldFilter as sdkApplyFieldFilter } from '@cleocode/lafs';
|
|
13
14
|
/**
|
|
@@ -38,16 +39,17 @@ export function createFieldFilter() {
|
|
|
38
39
|
req._mvi = _mvi;
|
|
39
40
|
const response = await next();
|
|
40
41
|
// Apply _fields filter via SDK — handles all four result shapes,
|
|
41
|
-
// preserves envelope structure
|
|
42
|
+
// preserves envelope structure. Bridges DispatchResponse (canonical CLI shape)
|
|
43
|
+
// to the lafs SDK proto-envelope shape for filtering, then maps back.
|
|
42
44
|
if (_fields?.length && response.success && response.data !== undefined) {
|
|
43
45
|
const stub = {
|
|
44
46
|
$schema: 'https://lafs.dev/schemas/v1/envelope.schema.json',
|
|
45
47
|
_meta: {
|
|
46
48
|
specVersion: '',
|
|
47
49
|
schemaVersion: '',
|
|
48
|
-
timestamp: response.
|
|
49
|
-
operation: response.
|
|
50
|
-
requestId: response.
|
|
50
|
+
timestamp: response.meta.timestamp,
|
|
51
|
+
operation: response.meta.operation,
|
|
52
|
+
requestId: response.meta.requestId,
|
|
51
53
|
transport: 'sdk',
|
|
52
54
|
strict: true,
|
|
53
55
|
mvi: 'minimal',
|
|
@@ -56,8 +58,11 @@ export function createFieldFilter() {
|
|
|
56
58
|
success: true,
|
|
57
59
|
result: response.data,
|
|
58
60
|
};
|
|
61
|
+
// Type assertion: applyFieldFilter expects LAFSEnvelope (proto shape) but
|
|
62
|
+
// our stub satisfies the structural contract at runtime.
|
|
59
63
|
const filtered = sdkApplyFieldFilter(stub, _fields);
|
|
60
|
-
|
|
64
|
+
// Map filtered.result back to the canonical DispatchResponse.data field
|
|
65
|
+
response.data = filtered.result ?? undefined;
|
|
61
66
|
}
|
|
62
67
|
return response;
|
|
63
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-filter.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/field-filter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"field-filter.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/field-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIrF;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,KAAK,EACV,GAAoB,EACpB,IAAqC,EACV,EAAE;QAC7B,sEAAsE;QACtE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAK,GAAG,CAAC,MAAM,EAAE,OAAgC,CAAC;QAC7E,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,IAAK,GAAG,CAAC,MAAM,EAAE,IAA2B,CAAC;QACpE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAErD,uDAAuD;QACvD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,gDAAgD;QAChD,IAAI,OAAO;YAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACnC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAE1B,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;QAE9B,iEAAiE;QACjE,+EAA+E;QAC/E,sEAAsE;QACtE,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACvE,MAAM,IAAI,GAAuB;gBAC/B,OAAO,EAAE,kDAAkD;gBAC3D,KAAK,EAAE;oBACL,WAAW,EAAE,EAAE;oBACf,aAAa,EAAE,EAAE;oBACjB,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;oBAClC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;oBAClC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS;oBAClC,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,IAAI;oBACZ,GAAG,EAAE,SAAS;oBACd,cAAc,EAAE,CAAC;iBAClB;gBACD,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ,CAAC,IAAoC;aACtD,CAAC;YACF,0EAA0E;YAC1E,yDAAyD;YACzD,MAAM,QAAQ,GAAG,mBAAmB,CAClC,IAAiD,EACjD,OAAO,CACR,CAAC;YACF,wEAAwE;YACxE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC;QAC/C,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -117,7 +117,7 @@ export function createProjectionMiddleware() {
|
|
|
117
117
|
// Check domain access at this tier
|
|
118
118
|
if (!config.allowedDomains.includes(req.domain)) {
|
|
119
119
|
return {
|
|
120
|
-
|
|
120
|
+
meta: {
|
|
121
121
|
gateway: req.gateway,
|
|
122
122
|
domain: req.domain,
|
|
123
123
|
operation: req.operation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/projection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/dispatch/middleware/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,12 @@ import type { Middleware } from '../types.js';
|
|
|
9
9
|
* - In strict mode, blocks operations with protocol violations (exit codes 60-70)
|
|
10
10
|
*
|
|
11
11
|
* @remarks
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* ProtocolEnforcer.enforceProtocol uses the core's proto-shape (`_meta`) while
|
|
13
|
+
* the dispatch layer uses the canonical CLI envelope shape (`meta`). This
|
|
14
|
+
* middleware bridges between the two shapes:
|
|
15
|
+
* - Wraps `next` to map `DispatchResponse.meta` → proto-shape `_meta` for the enforcer
|
|
16
|
+
* - Maps the enforcer's proto-shape result back to `DispatchResponse` (with `meta`)
|
|
17
|
+
* - Ensures `source` and `requestId` are always populated on the returned `meta`
|
|
15
18
|
*
|
|
16
19
|
* @param strictMode - When true, blocks operations that violate protocol rules
|
|
17
20
|
* @returns Middleware function that enforces protocol compliance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-enforcement.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/protocol-enforcement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmD,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/F
|
|
1
|
+
{"version":3,"file":"protocol-enforcement.d.ts","sourceRoot":"","sources":["../../../src/dispatch/middleware/protocol-enforcement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmD,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,GAAE,OAAc,GAAG,UAAU,CA8BhF"}
|
|
@@ -9,9 +9,12 @@ import { ProtocolEnforcer } from '@cleocode/core/internal';
|
|
|
9
9
|
* - In strict mode, blocks operations with protocol violations (exit codes 60-70)
|
|
10
10
|
*
|
|
11
11
|
* @remarks
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* ProtocolEnforcer.enforceProtocol uses the core's proto-shape (`_meta`) while
|
|
13
|
+
* the dispatch layer uses the canonical CLI envelope shape (`meta`). This
|
|
14
|
+
* middleware bridges between the two shapes:
|
|
15
|
+
* - Wraps `next` to map `DispatchResponse.meta` → proto-shape `_meta` for the enforcer
|
|
16
|
+
* - Maps the enforcer's proto-shape result back to `DispatchResponse` (with `meta`)
|
|
17
|
+
* - Ensures `source` and `requestId` are always populated on the returned `meta`
|
|
15
18
|
*
|
|
16
19
|
* @param strictMode - When true, blocks operations that violate protocol rules
|
|
17
20
|
* @returns Middleware function that enforces protocol compliance
|
|
@@ -26,20 +29,28 @@ import { ProtocolEnforcer } from '@cleocode/core/internal';
|
|
|
26
29
|
export function createProtocolEnforcement(strictMode = true) {
|
|
27
30
|
const enforcer = new ProtocolEnforcer(strictMode);
|
|
28
31
|
return async (req, next) => {
|
|
29
|
-
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
32
|
+
// Bridge DispatchNext (returns DispatchResponse with `meta`) to the proto-shape
|
|
33
|
+
// expected by ProtocolEnforcer (ProtocolResponse with `_meta`).
|
|
34
|
+
const protoNext = async () => {
|
|
35
|
+
const dispatchResult = await next();
|
|
36
|
+
// Map canonical `meta` → proto-shape `_meta` for the enforcer
|
|
37
|
+
const { meta, ...rest } = dispatchResult;
|
|
38
|
+
return { ...rest, _meta: meta };
|
|
39
|
+
};
|
|
40
|
+
const protoResult = await enforcer.enforceProtocol(req, protoNext);
|
|
41
|
+
// Map proto-shape result back to canonical DispatchResponse shape.
|
|
42
|
+
// enforceProtocol may return a minimal proto-response (missing source/requestId)
|
|
43
|
+
// when it constructs an error response — fill those in from the request.
|
|
44
|
+
const { _meta, ...protoRest } = protoResult;
|
|
45
|
+
const responseMeta = {
|
|
46
|
+
..._meta,
|
|
47
|
+
source: _meta.source ?? req.source,
|
|
48
|
+
requestId: _meta.requestId ?? req.requestId,
|
|
49
|
+
};
|
|
50
|
+
return {
|
|
51
|
+
...protoRest,
|
|
52
|
+
meta: responseMeta,
|
|
53
|
+
};
|
|
43
54
|
};
|
|
44
55
|
}
|
|
45
56
|
//# sourceMappingURL=protocol-enforcement.js.map
|