@cleocode/contracts 2026.6.12 → 2026.6.14
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/__tests__/operation-def.test.js +5 -1
- package/dist/__tests__/operation-def.test.js.map +1 -1
- package/dist/__tests__/provider-def.test.d.ts +12 -0
- package/dist/__tests__/provider-def.test.d.ts.map +1 -0
- package/dist/__tests__/provider-def.test.js +84 -0
- package/dist/__tests__/provider-def.test.js.map +1 -0
- package/dist/__tests__/sealed-credential.test.d.ts +19 -0
- package/dist/__tests__/sealed-credential.test.d.ts.map +1 -0
- package/dist/__tests__/sealed-credential.test.js +74 -0
- package/dist/__tests__/sealed-credential.test.js.map +1 -0
- package/dist/__tests__/service-provider.test.d.ts +17 -0
- package/dist/__tests__/service-provider.test.d.ts.map +1 -0
- package/dist/__tests__/service-provider.test.js +108 -0
- package/dist/__tests__/service-provider.test.js.map +1 -0
- package/dist/__tests__/skill-executor-contract.test.js +3 -0
- package/dist/__tests__/skill-executor-contract.test.js.map +1 -1
- package/dist/acceptance-gate.d.ts +2 -3
- package/dist/acceptance-gate.d.ts.map +1 -1
- package/dist/boundary.d.ts +52 -0
- package/dist/boundary.d.ts.map +1 -1
- package/dist/boundary.js +24 -19
- package/dist/boundary.js.map +1 -1
- package/dist/conduit.d.ts +171 -0
- package/dist/conduit.d.ts.map +1 -1
- package/dist/config/index.d.ts +23 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +22 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config.d.ts +104 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/data-accessor.d.ts +21 -1
- package/dist/data-accessor.d.ts.map +1 -1
- package/dist/data-accessor.js.map +1 -1
- package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.d.ts +21 -0
- package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.d.ts.map +1 -0
- package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.js +84 -0
- package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.js.map +1 -0
- package/dist/dispatch/identity.d.ts +1 -1
- package/dist/dispatch/identity.d.ts.map +1 -1
- package/dist/dispatch/identity.js +25 -0
- package/dist/dispatch/identity.js.map +1 -1
- package/dist/dispatch/operation-def.d.ts +20 -0
- package/dist/dispatch/operation-def.d.ts.map +1 -1
- package/dist/dispatch/operations-registry.d.ts.map +1 -1
- package/dist/dispatch/operations-registry.js +1044 -182
- package/dist/dispatch/operations-registry.js.map +1 -1
- package/dist/docs/read.d.ts +2 -2
- package/dist/index.d.ts +25 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/lease-ipc/__tests__/freeze.test.d.ts +15 -0
- package/dist/lease-ipc/__tests__/freeze.test.d.ts.map +1 -0
- package/dist/lease-ipc/__tests__/freeze.test.js +313 -0
- package/dist/lease-ipc/__tests__/freeze.test.js.map +1 -0
- package/dist/lease-ipc/index.d.ts +17 -0
- package/dist/lease-ipc/index.d.ts.map +1 -0
- package/dist/lease-ipc/index.js +16 -0
- package/dist/lease-ipc/index.js.map +1 -0
- package/dist/lease-ipc/messages.d.ts +918 -0
- package/dist/lease-ipc/messages.d.ts.map +1 -0
- package/dist/lease-ipc/messages.js +476 -0
- package/dist/lease-ipc/messages.js.map +1 -0
- package/dist/lease-ipc/version.d.ts +41 -0
- package/dist/lease-ipc/version.d.ts.map +1 -0
- package/dist/lease-ipc/version.js +43 -0
- package/dist/lease-ipc/version.js.map +1 -0
- package/dist/llm/catalog-schema.d.ts +242 -0
- package/dist/llm/catalog-schema.d.ts.map +1 -0
- package/dist/llm/catalog-schema.js +153 -0
- package/dist/llm/catalog-schema.js.map +1 -0
- package/dist/llm/catalog-schema.json +139 -0
- package/dist/llm/index.d.ts +15 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +14 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/interfaces.d.ts +23 -0
- package/dist/llm/interfaces.d.ts.map +1 -1
- package/dist/llm/oauth.d.ts +16 -2
- package/dist/llm/oauth.d.ts.map +1 -1
- package/dist/llm/onboarding.d.ts +126 -0
- package/dist/llm/onboarding.d.ts.map +1 -0
- package/dist/llm/onboarding.js +34 -0
- package/dist/llm/onboarding.js.map +1 -0
- package/dist/llm/provider-def.d.ts +254 -0
- package/dist/llm/provider-def.d.ts.map +1 -0
- package/dist/llm/provider-def.js +93 -0
- package/dist/llm/provider-def.js.map +1 -0
- package/dist/llm/sealed-credential.d.ts +164 -0
- package/dist/llm/sealed-credential.d.ts.map +1 -0
- package/dist/llm/sealed-credential.js +43 -0
- package/dist/llm/sealed-credential.js.map +1 -0
- package/dist/llm/system-of-use.d.ts +383 -0
- package/dist/llm/system-of-use.d.ts.map +1 -0
- package/dist/llm/system-of-use.js +238 -0
- package/dist/llm/system-of-use.js.map +1 -0
- package/dist/llm/system-resolver.d.ts +87 -11
- package/dist/llm/system-resolver.d.ts.map +1 -1
- package/dist/llm/system-resolver.js +14 -7
- package/dist/llm/system-resolver.js.map +1 -1
- package/dist/operations/__tests__/ensures-schema-registry.test.d.ts +17 -0
- package/dist/operations/__tests__/ensures-schema-registry.test.d.ts.map +1 -0
- package/dist/operations/__tests__/ensures-schema-registry.test.js +113 -0
- package/dist/operations/__tests__/ensures-schema-registry.test.js.map +1 -0
- package/dist/operations/admin.d.ts +124 -1
- package/dist/operations/admin.d.ts.map +1 -1
- package/dist/operations/ensures-schema-registry.d.ts +172 -0
- package/dist/operations/ensures-schema-registry.d.ts.map +1 -0
- package/dist/operations/ensures-schema-registry.js +226 -0
- package/dist/operations/ensures-schema-registry.js.map +1 -0
- package/dist/operations/entities.d.ts +110 -0
- package/dist/operations/entities.d.ts.map +1 -0
- package/dist/operations/entities.js +695 -0
- package/dist/operations/entities.js.map +1 -0
- package/dist/operations/llm.d.ts +116 -9
- package/dist/operations/llm.d.ts.map +1 -1
- package/dist/operations/output-contracts-data.d.ts.map +1 -1
- package/dist/operations/output-contracts-data.js +230 -0
- package/dist/operations/output-contracts-data.js.map +1 -1
- package/dist/operations/service.d.ts +68 -0
- package/dist/operations/service.d.ts.map +1 -0
- package/dist/operations/service.js +336 -0
- package/dist/operations/service.js.map +1 -0
- package/dist/operations/tasks.d.ts +109 -0
- package/dist/operations/tasks.d.ts.map +1 -1
- package/dist/operations/tasks.js.map +1 -1
- package/dist/operations/validate.d.ts +1 -12
- package/dist/operations/validate.d.ts.map +1 -1
- package/dist/operations/validate.js +1 -1
- package/dist/playbook.d.ts +116 -0
- package/dist/playbook.d.ts.map +1 -1
- package/dist/release/plan.d.ts +5 -5
- package/dist/session.d.ts +11 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js.map +1 -1
- package/dist/templates/manifest.d.ts +1 -1
- package/dist/tools/agent-tools.d.ts +231 -0
- package/dist/tools/agent-tools.d.ts.map +1 -0
- package/dist/tools/agent-tools.js +25 -0
- package/dist/tools/agent-tools.js.map +1 -0
- package/dist/tools/atomic.d.ts +19 -0
- package/dist/tools/atomic.d.ts.map +1 -1
- package/dist/tools/atomic.js +17 -0
- package/dist/tools/atomic.js.map +1 -1
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/skill-executor.d.ts +7 -0
- package/dist/tools/skill-executor.d.ts.map +1 -1
- package/dist/tools/web-tools.d.ts +217 -0
- package/dist/tools/web-tools.d.ts.map +1 -0
- package/dist/tools/web-tools.js +31 -0
- package/dist/tools/web-tools.js.map +1 -0
- package/dist/vault/service-provider.d.ts +343 -0
- package/dist/vault/service-provider.d.ts.map +1 -0
- package/dist/vault/service-provider.js +857 -0
- package/dist/vault/service-provider.js.map +1 -0
- package/dist/workgraph.d.ts +12 -12
- package/package.json +14 -2
- package/src/__tests__/__snapshots__/operations-registry.test.ts.snap +1 -1
- package/src/__tests__/operation-def.test.ts +7 -1
- package/src/__tests__/provider-def.test.ts +93 -0
- package/src/__tests__/sealed-credential.test.ts +100 -0
- package/src/__tests__/service-provider.test.ts +129 -0
- package/src/__tests__/skill-executor-contract.test.ts +3 -0
- package/src/acceptance-gate.ts +2 -3
- package/src/boundary.ts +70 -20
- package/src/conduit.ts +200 -0
- package/src/config/index.ts +35 -0
- package/src/config.ts +106 -1
- package/src/data-accessor.ts +22 -1
- package/src/dispatch/__tests__/tasks-gateway-crud-ops.test.ts +99 -0
- package/src/dispatch/identity.ts +25 -0
- package/src/dispatch/operation-def.ts +21 -0
- package/src/dispatch/operations-registry.ts +1083 -176
- package/src/index.ts +240 -25
- package/src/lease-ipc/__tests__/freeze.test.ts +342 -0
- package/src/lease-ipc/index.ts +75 -0
- package/src/lease-ipc/messages.ts +588 -0
- package/src/lease-ipc/version.ts +46 -0
- package/src/llm/catalog-schema.json +139 -0
- package/src/llm/catalog-schema.ts +184 -0
- package/src/llm/index.ts +29 -0
- package/src/llm/interfaces.ts +23 -0
- package/src/llm/oauth.ts +16 -2
- package/src/llm/onboarding.ts +131 -0
- package/src/llm/provider-def.ts +291 -0
- package/src/llm/sealed-credential.ts +166 -0
- package/src/llm/system-of-use.ts +503 -0
- package/src/llm/system-resolver.ts +91 -11
- package/src/operations/__tests__/ensures-schema-registry.test.ts +169 -0
- package/src/operations/admin.ts +144 -0
- package/src/operations/ensures-schema-registry.ts +260 -0
- package/src/operations/entities.ts +758 -0
- package/src/operations/llm.ts +120 -8
- package/src/operations/output-contracts-data.ts +264 -0
- package/src/operations/service.ts +360 -0
- package/src/operations/tasks.ts +119 -0
- package/src/operations/validate.ts +1 -14
- package/src/playbook.ts +117 -0
- package/src/session.ts +11 -0
- package/src/tools/agent-tools.ts +270 -0
- package/src/tools/atomic.ts +21 -0
- package/src/tools/index.ts +46 -0
- package/src/tools/skill-executor.ts +7 -0
- package/src/tools/web-tools.ts +247 -0
- package/src/vault/service-provider.ts +1137 -0
- package/dist/tessera.d.ts +0 -32
- package/dist/tessera.d.ts.map +0 -1
- package/dist/tessera.js +0 -11
- package/dist/tessera.js.map +0 -1
- package/dist/warp-chain.d.ts +0 -129
- package/dist/warp-chain.d.ts.map +0 -1
- package/dist/warp-chain.js +0 -13
- package/dist/warp-chain.js.map +0 -1
- package/src/tessera.ts +0 -35
- package/src/warp-chain.ts +0 -185
|
@@ -32,7 +32,11 @@ describe('dispatch/operation-def contracts', () => {
|
|
|
32
32
|
expect(CANONICAL_DOMAINS.length).toBeGreaterThan(0);
|
|
33
33
|
// T9954 — snapshot the current count so accidental additions/removals
|
|
34
34
|
// trip this test and force an explicit human review.
|
|
35
|
-
|
|
35
|
+
// T11889-D — +1 for the new 'selfimprove' domain (self-dogfooding loop verb).
|
|
36
|
+
// T11939 — +1 for the new 'service' domain (universal service-vault OAuth flow).
|
|
37
|
+
// T11700 — +4 for the 5-entity provider experience: 'account', 'provider',
|
|
38
|
+
// 'model', 'profile' (North-Star §2 addressable provider surface).
|
|
39
|
+
expect(CANONICAL_DOMAINS.length).toBe(29);
|
|
36
40
|
});
|
|
37
41
|
it('CANONICAL_DOMAINS contains the four sentinel newly-promoted domains', () => {
|
|
38
42
|
// Spot-check the canonical surface: T964 conduit, T1726 sentient/release,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-def.test.js","sourceRoot":"","sources":["../../src/__tests__/operation-def.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"operation-def.test.js","sourceRoot":"","sources":["../../src/__tests__/operation-def.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T11702 — `ProviderDef` declarative contract shape.
|
|
3
|
+
*
|
|
4
|
+
* Type-level + value-level assertions that the contract is a closed, discriminated,
|
|
5
|
+
* serializable shape (the endpoint union is keyed on the `transport` literal, no
|
|
6
|
+
* `any`/`unknown` shortcut). No DB, no network.
|
|
7
|
+
*
|
|
8
|
+
* @task T11702
|
|
9
|
+
* @epic T11667
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=provider-def.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-def.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/provider-def.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T11702 — `ProviderDef` declarative contract shape.
|
|
3
|
+
*
|
|
4
|
+
* Type-level + value-level assertions that the contract is a closed, discriminated,
|
|
5
|
+
* serializable shape (the endpoint union is keyed on the `transport` literal, no
|
|
6
|
+
* `any`/`unknown` shortcut). No DB, no network.
|
|
7
|
+
*
|
|
8
|
+
* @task T11702
|
|
9
|
+
* @epic T11667
|
|
10
|
+
*/
|
|
11
|
+
import { describe, expect, it } from 'vitest';
|
|
12
|
+
import { PROVIDER_TRANSPORTS, REQUEST_QUIRK_KINDS, } from '../llm/provider-def.js';
|
|
13
|
+
describe('ProviderDef contract (T11702)', () => {
|
|
14
|
+
it('exposes the closed transport discriminant set', () => {
|
|
15
|
+
expect([...PROVIDER_TRANSPORTS]).toEqual([
|
|
16
|
+
'openai-completions',
|
|
17
|
+
'openai-responses',
|
|
18
|
+
'anthropic-messages',
|
|
19
|
+
'aisdk',
|
|
20
|
+
]);
|
|
21
|
+
});
|
|
22
|
+
it('exposes the closed request-quirk-kind set', () => {
|
|
23
|
+
expect(REQUEST_QUIRK_KINDS).toContain('grok-conv-id');
|
|
24
|
+
expect(REQUEST_QUIRK_KINDS).toContain('gemini-thinking-config');
|
|
25
|
+
expect(REQUEST_QUIRK_KINDS).toContain('moonshot-schema-sanitize');
|
|
26
|
+
});
|
|
27
|
+
it('accepts a fully-populated declarative provider def with an OAuth flow + alt endpoint', () => {
|
|
28
|
+
const def = {
|
|
29
|
+
id: 'openai',
|
|
30
|
+
displayName: 'OpenAI Codex (ChatGPT)',
|
|
31
|
+
aliases: ['codex', 'chatgpt', 'openai-codex'],
|
|
32
|
+
authMethods: ['api_key', 'oauth'],
|
|
33
|
+
endpoint: { transport: 'openai-completions', baseUrl: 'https://api.openai.com/v1' },
|
|
34
|
+
altEndpoints: [{ transport: 'openai-responses', baseUrl: 'https://api.openai.com/v1' }],
|
|
35
|
+
modelsDevId: 'openai',
|
|
36
|
+
oauth: {
|
|
37
|
+
mode: 'pkce',
|
|
38
|
+
clientId: 'app_test',
|
|
39
|
+
tokenEndpoint: 'https://auth.openai.com/oauth/token',
|
|
40
|
+
authorizationEndpoint: 'https://auth.openai.com/oauth/authorize',
|
|
41
|
+
},
|
|
42
|
+
requestQuirks: [{ kind: 'openrouter-pareto' }],
|
|
43
|
+
};
|
|
44
|
+
// Round-trips through JSON — the shape is serializable (no closures).
|
|
45
|
+
const roundTripped = JSON.parse(JSON.stringify(def));
|
|
46
|
+
expect(roundTripped.id).toBe('openai');
|
|
47
|
+
expect(roundTripped.endpoint.transport).toBe('openai-completions');
|
|
48
|
+
expect(roundTripped.altEndpoints?.[0]?.transport).toBe('openai-responses');
|
|
49
|
+
expect(roundTripped.oauth?.mode).toBe('pkce');
|
|
50
|
+
});
|
|
51
|
+
it('narrows the endpoint discriminated union on the transport literal', () => {
|
|
52
|
+
const endpoints = [
|
|
53
|
+
{ transport: 'anthropic-messages', baseUrl: 'https://api.anthropic.com' },
|
|
54
|
+
{ transport: 'aisdk', baseUrl: 'https://example.com', aiSdkProvider: 'google' },
|
|
55
|
+
];
|
|
56
|
+
for (const ep of endpoints) {
|
|
57
|
+
if (ep.transport === 'aisdk') {
|
|
58
|
+
// Only the aisdk variant carries aiSdkProvider — narrowing proves the union.
|
|
59
|
+
expect(ep.aiSdkProvider).toBe('google');
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
expect(ep.baseUrl.startsWith('https://')).toBe(true);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
it('accepts a minimal def (no optional fields)', () => {
|
|
67
|
+
const def = {
|
|
68
|
+
id: 'bedrock',
|
|
69
|
+
displayName: 'AWS Bedrock',
|
|
70
|
+
aliases: ['aws-bedrock'],
|
|
71
|
+
authMethods: ['aws_sdk'],
|
|
72
|
+
endpoint: {
|
|
73
|
+
transport: 'aisdk',
|
|
74
|
+
baseUrl: 'https://bedrock.example',
|
|
75
|
+
aiSdkProvider: 'bedrock',
|
|
76
|
+
},
|
|
77
|
+
modelsDevId: 'bedrock',
|
|
78
|
+
};
|
|
79
|
+
expect(def.oauth).toBeUndefined();
|
|
80
|
+
expect(def.requestQuirks).toBeUndefined();
|
|
81
|
+
expect(def.altEndpoints).toBeUndefined();
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=provider-def.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-def.test.js","sourceRoot":"","sources":["../../src/__tests__/provider-def.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type + purity tests for the E10 sealed credential handle (T11752).
|
|
3
|
+
*
|
|
4
|
+
* Pins the {@link SealedCredential} / {@link DecryptedToken} contract so that:
|
|
5
|
+
* - `SealedCredential` is exactly `{ provider, account, fetch }` with
|
|
6
|
+
* `fetch: () => Promise<DecryptedToken>` (AC1).
|
|
7
|
+
* - `ResolvedLLM` carries a sealed-credential-typed field (AC2).
|
|
8
|
+
* - `DecryptedToken` is a *branded* string — a plain `string` is NOT
|
|
9
|
+
* assignable to it, so the secret cannot be silently fabricated and a
|
|
10
|
+
* `DecryptedToken` cannot leak into an arbitrary `string` sink without an
|
|
11
|
+
* explicit `.value` read (the "never serialized" invariant, AC2).
|
|
12
|
+
* - The module is types-only (no runtime export), satisfying contracts
|
|
13
|
+
* purity (Gate 10 · AC3).
|
|
14
|
+
*
|
|
15
|
+
* @task T11752
|
|
16
|
+
* @epic T11746
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=sealed-credential.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sealed-credential.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/sealed-credential.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type + purity tests for the E10 sealed credential handle (T11752).
|
|
3
|
+
*
|
|
4
|
+
* Pins the {@link SealedCredential} / {@link DecryptedToken} contract so that:
|
|
5
|
+
* - `SealedCredential` is exactly `{ provider, account, fetch }` with
|
|
6
|
+
* `fetch: () => Promise<DecryptedToken>` (AC1).
|
|
7
|
+
* - `ResolvedLLM` carries a sealed-credential-typed field (AC2).
|
|
8
|
+
* - `DecryptedToken` is a *branded* string — a plain `string` is NOT
|
|
9
|
+
* assignable to it, so the secret cannot be silently fabricated and a
|
|
10
|
+
* `DecryptedToken` cannot leak into an arbitrary `string` sink without an
|
|
11
|
+
* explicit `.value` read (the "never serialized" invariant, AC2).
|
|
12
|
+
* - The module is types-only (no runtime export), satisfying contracts
|
|
13
|
+
* purity (Gate 10 · AC3).
|
|
14
|
+
*
|
|
15
|
+
* @task T11752
|
|
16
|
+
* @epic T11746
|
|
17
|
+
*/
|
|
18
|
+
import { describe, expect, expectTypeOf, it } from 'vitest';
|
|
19
|
+
describe('SealedCredential shape (AC1)', () => {
|
|
20
|
+
it('is exactly { provider, account, tokenPreview, fetch } — pins the field set', () => {
|
|
21
|
+
expectTypeOf().toEqualTypeOf();
|
|
22
|
+
});
|
|
23
|
+
it('provider is a ProviderId', () => {
|
|
24
|
+
expectTypeOf().toEqualTypeOf();
|
|
25
|
+
});
|
|
26
|
+
it('account is a plain (loggable) string', () => {
|
|
27
|
+
expectTypeOf().toEqualTypeOf();
|
|
28
|
+
});
|
|
29
|
+
it('tokenPreview is a plain (loggable, non-secret) string (T11754)', () => {
|
|
30
|
+
expectTypeOf().toEqualTypeOf();
|
|
31
|
+
});
|
|
32
|
+
it('fetch resolves to a DecryptedToken (never a bare string)', () => {
|
|
33
|
+
expectTypeOf().toEqualTypeOf();
|
|
34
|
+
expectTypeOf().resolves.toEqualTypeOf();
|
|
35
|
+
});
|
|
36
|
+
it('all fields are readonly (a handle cannot be mutated in place)', () => {
|
|
37
|
+
// Removing `readonly` from any field would make this fail to compile.
|
|
38
|
+
expectTypeOf().toEqualTypeOf();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('DecryptedToken branding (AC2 — never serialized / never fabricated)', () => {
|
|
42
|
+
it('is NOT assignable from a plain string (nominal brand)', () => {
|
|
43
|
+
// A plain string lacks the phantom `__decryptedToken` brand, so it cannot
|
|
44
|
+
// be passed where a DecryptedToken is required.
|
|
45
|
+
expectTypeOf().not.toMatchTypeOf();
|
|
46
|
+
});
|
|
47
|
+
it('is NOT a plain string sink (must read .value explicitly to serialize)', () => {
|
|
48
|
+
expectTypeOf().not.toEqualTypeOf();
|
|
49
|
+
});
|
|
50
|
+
it('exposes a readonly plaintext .value of type string', () => {
|
|
51
|
+
expectTypeOf().toEqualTypeOf();
|
|
52
|
+
});
|
|
53
|
+
it('carries the phantom brand marker (compile-time only)', () => {
|
|
54
|
+
expectTypeOf().toEqualTypeOf();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe('ResolvedLLM.sealedCredential (AC2 · T11753)', () => {
|
|
58
|
+
it('is the required (non-optional) canonical credential surface', () => {
|
|
59
|
+
// T11753 promotes the field from optional to required: the resolver ALWAYS
|
|
60
|
+
// populates it (a handle when a credential resolved, `null` otherwise).
|
|
61
|
+
expectTypeOf().toEqualTypeOf();
|
|
62
|
+
});
|
|
63
|
+
it('the inline credential metadata carries NO plaintext apiKey (T11753)', () => {
|
|
64
|
+
expectTypeOf().not.toHaveProperty('apiKey');
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('contracts purity (AC3) — sealed-credential is types-only', () => {
|
|
68
|
+
it('the module exposes no runtime exports (no decrypt logic in contracts)', async () => {
|
|
69
|
+
const mod = await import('../llm/sealed-credential.js');
|
|
70
|
+
// A pure type module compiles to an empty ESM namespace at runtime.
|
|
71
|
+
expect(Object.keys(mod)).toHaveLength(0);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=sealed-credential.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sealed-credential.test.js","sourceRoot":"","sources":["../../src/__tests__/sealed-credential.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAK5D,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,YAAY,EAA0B,CAAC,aAAa,EAEjD,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,YAAY,EAAgC,CAAC,aAAa,EAAc,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,YAAY,EAA+B,CAAC,aAAa,EAAU,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,YAAY,EAAoC,CAAC,aAAa,EAAU,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,YAAY,EAA6B,CAAC,aAAa,EAAiC,CAAC;QACzF,YAAY,EAAyC,CAAC,QAAQ,CAAC,aAAa,EAAkB,CAAC;IACjG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,sEAAsE;QACtE,YAAY,EAAoB,CAAC,aAAa,EAK1C,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qEAAqE,EAAE,GAAG,EAAE;IACnF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,0EAA0E;QAC1E,gDAAgD;QAChD,YAAY,EAAU,CAAC,GAAG,CAAC,aAAa,EAAkB,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,YAAY,EAAkB,CAAC,GAAG,CAAC,aAAa,EAAU,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,YAAY,EAA2B,CAAC,aAAa,EAAU,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,YAAY,EAAsC,CAAC,aAAa,EAAoB,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,2EAA2E;QAC3E,wEAAwE;QACxE,YAAY,EAAmC,CAAC,aAAa,EAA2B,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAI7E,YAAY,EAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACxE,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACxD,oEAAoE;QACpE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T11937 seed + T11938 BREADTH — service-provider registry contract.
|
|
3
|
+
*
|
|
4
|
+
* Asserts the declarative `SERVICE_PROVIDERS` registry: the two pattern seeds
|
|
5
|
+
* (github + google) keep their precise shape (T11937), and the full ~40-service
|
|
6
|
+
* census (T11938) is well-formed — every entry self-consistent on its key, every
|
|
7
|
+
* provider carrying a NON-EMPTY `hostRules` array, and every OAuth (non-`api-key`)
|
|
8
|
+
* provider carrying either a `refresh` config or an explicit re-auth shape. The
|
|
9
|
+
* registry is DATA (no runtime helper) — this test is the only consumer that
|
|
10
|
+
* exercises its shape.
|
|
11
|
+
*
|
|
12
|
+
* @task T11937
|
|
13
|
+
* @task T11938
|
|
14
|
+
* @epic T11765
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=service-provider.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-provider.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/service-provider.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T11937 seed + T11938 BREADTH — service-provider registry contract.
|
|
3
|
+
*
|
|
4
|
+
* Asserts the declarative `SERVICE_PROVIDERS` registry: the two pattern seeds
|
|
5
|
+
* (github + google) keep their precise shape (T11937), and the full ~40-service
|
|
6
|
+
* census (T11938) is well-formed — every entry self-consistent on its key, every
|
|
7
|
+
* provider carrying a NON-EMPTY `hostRules` array, and every OAuth (non-`api-key`)
|
|
8
|
+
* provider carrying either a `refresh` config or an explicit re-auth shape. The
|
|
9
|
+
* registry is DATA (no runtime helper) — this test is the only consumer that
|
|
10
|
+
* exercises its shape.
|
|
11
|
+
*
|
|
12
|
+
* @task T11937
|
|
13
|
+
* @task T11938
|
|
14
|
+
* @epic T11765
|
|
15
|
+
*/
|
|
16
|
+
import { describe, expect, it } from 'vitest';
|
|
17
|
+
import { REFRESH_KINDS, SERVICE_AUTH_KINDS, SERVICE_PROVIDERS, } from '../vault/service-provider.js';
|
|
18
|
+
describe('SERVICE_PROVIDERS registry (T11937 seed + T11938 breadth)', () => {
|
|
19
|
+
it('contains the full ~40-service census (≥ 38 providers, T11938 AC1)', () => {
|
|
20
|
+
// 2 seeds (github, google) + ~37 breadth entries = ~40 declarative providers.
|
|
21
|
+
expect(Object.keys(SERVICE_PROVIDERS).length).toBeGreaterThanOrEqual(38);
|
|
22
|
+
});
|
|
23
|
+
it('includes a representative spread across provider families', () => {
|
|
24
|
+
const keys = Object.keys(SERVICE_PROVIDERS);
|
|
25
|
+
// Seeds + Google family + Atlassian + api-key + JWT/client-credentials.
|
|
26
|
+
for (const expected of [
|
|
27
|
+
'github',
|
|
28
|
+
'google',
|
|
29
|
+
'gmail',
|
|
30
|
+
'notion',
|
|
31
|
+
'dropbox',
|
|
32
|
+
'jira',
|
|
33
|
+
'confluence',
|
|
34
|
+
'supabase',
|
|
35
|
+
'todoist',
|
|
36
|
+
'resend',
|
|
37
|
+
'cloudflare',
|
|
38
|
+
'github-app',
|
|
39
|
+
'mongodb-atlas',
|
|
40
|
+
'vertex-ai',
|
|
41
|
+
]) {
|
|
42
|
+
expect(keys).toContain(expected);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
it('each entry is well-formed and self-consistent on its key', () => {
|
|
46
|
+
for (const [key, def] of Object.entries(SERVICE_PROVIDERS)) {
|
|
47
|
+
expect(def.provider).toBe(key);
|
|
48
|
+
expect(def.displayName.length).toBeGreaterThan(0);
|
|
49
|
+
expect(def.description.length).toBeGreaterThan(0);
|
|
50
|
+
expect(SERVICE_AUTH_KINDS).toContain(def.authKind);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
it('every provider declares a NON-EMPTY hostRules array (T11938 AC4)', () => {
|
|
54
|
+
for (const [key, def] of Object.entries(SERVICE_PROVIDERS)) {
|
|
55
|
+
expect(Array.isArray(def.hostRules), `${key} must declare hostRules`).toBe(true);
|
|
56
|
+
expect(def.hostRules.length, `${key} hostRules must be non-empty`).toBeGreaterThan(0);
|
|
57
|
+
for (const rule of def.hostRules) {
|
|
58
|
+
expect(rule.host.length).toBeGreaterThan(0);
|
|
59
|
+
expect(['bearer', 'basic-x-access-token', 'header']).toContain(rule.strategy);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
it('every OAuth (non api-key) provider declares a refresh config OR an oauth re-auth shape (T11938 AC4)', () => {
|
|
64
|
+
for (const [key, def] of Object.entries(SERVICE_PROVIDERS)) {
|
|
65
|
+
if (def.authKind === 'api-key') {
|
|
66
|
+
// api-key services have no token to refresh — refresh MUST be absent.
|
|
67
|
+
expect(def.refresh, `${key} (api-key) must not declare refresh`).toBeUndefined();
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
// An OAuth provider must be refreshable OR at least carry a full oauth
|
|
71
|
+
// block the flow can re-authorize against.
|
|
72
|
+
const hasRefresh = def.refresh !== undefined;
|
|
73
|
+
const hasOAuth = def.oauth !== undefined;
|
|
74
|
+
expect(hasRefresh || hasOAuth, `${key} must declare refresh or oauth`).toBe(true);
|
|
75
|
+
if (hasRefresh && def.refresh) {
|
|
76
|
+
expect(REFRESH_KINDS).toContain(def.refresh.kind);
|
|
77
|
+
expect(def.refresh.tokenUrl.length).toBeGreaterThan(0);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
it('declares the three special-case refresh-kind discriminants (T11938 AC3)', () => {
|
|
82
|
+
const kinds = new Set(Object.values(SERVICE_PROVIDERS)
|
|
83
|
+
.map((d) => d.refresh?.kind)
|
|
84
|
+
.filter((k) => k !== undefined));
|
|
85
|
+
expect(kinds.has('github-app')).toBe(true);
|
|
86
|
+
expect(kinds.has('client-credentials')).toBe(true);
|
|
87
|
+
expect(kinds.has('refresh-token')).toBe(true);
|
|
88
|
+
});
|
|
89
|
+
it('github is a classic OAuth2 web flow with complete endpoints (T11937)', () => {
|
|
90
|
+
const gh = SERVICE_PROVIDERS['github'];
|
|
91
|
+
expect(gh).toBeDefined();
|
|
92
|
+
expect(gh?.authKind).toBe('oauth2');
|
|
93
|
+
expect(gh?.oauth?.authorizationEndpoint).toContain('github.com');
|
|
94
|
+
expect(gh?.oauth?.tokenEndpoint).toContain('github.com');
|
|
95
|
+
expect(gh?.oauth?.clientId.length).toBeGreaterThan(0);
|
|
96
|
+
expect(gh?.defaultScopes).toContain('repo');
|
|
97
|
+
});
|
|
98
|
+
it('google is an installed-app OAuth2 + PKCE flow that requests offline access (T11937)', () => {
|
|
99
|
+
const g = SERVICE_PROVIDERS['google'];
|
|
100
|
+
expect(g).toBeDefined();
|
|
101
|
+
expect(g?.authKind).toBe('oauth2-pkce');
|
|
102
|
+
expect(g?.oauth?.authorizationEndpoint).toContain('accounts.google.com');
|
|
103
|
+
expect(g?.oauth?.tokenEndpoint).toContain('oauth2.googleapis.com');
|
|
104
|
+
// Google needs access_type=offline + prompt=consent to issue a refresh token.
|
|
105
|
+
expect(g?.oauth?.extraAuthParams?.['access_type']).toBe('offline');
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=service-provider.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-provider.test.js","sourceRoot":"","sources":["../../src/__tests__/service-provider.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,9 @@ const fakeTools = {
|
|
|
28
28
|
async executeShell(_input) {
|
|
29
29
|
return { stdout: '', stderr: '', code: 0 };
|
|
30
30
|
},
|
|
31
|
+
async executePty(_input) {
|
|
32
|
+
return { stdout: '', stderr: '', code: 0, mode: 'spawn', ptyFellBack: false };
|
|
33
|
+
},
|
|
31
34
|
async runGit(_input) {
|
|
32
35
|
return { stdout: '', stderr: '', code: 0 };
|
|
33
36
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-executor-contract.test.js","sourceRoot":"","sources":["../../src/__tests__/skill-executor-contract.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-executor-contract.test.js","sourceRoot":"","sources":["../../src/__tests__/skill-executor-contract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -304,9 +304,8 @@ export type GateResultDetails = {
|
|
|
304
304
|
* Persisted to `lifecycle_gate_results` and summarised in
|
|
305
305
|
* `task.verification.gateResults`.
|
|
306
306
|
*
|
|
307
|
-
* NOTE: Named `AcceptanceGateResult` (not `GateResult`)
|
|
308
|
-
*
|
|
309
|
-
* WarpChain LOOM-gate evaluation outcomes.
|
|
307
|
+
* NOTE: Named `AcceptanceGateResult` (not `GateResult`) for historical
|
|
308
|
+
* clarity — it describes acceptance-criterion gate outcomes specifically.
|
|
310
309
|
*/
|
|
311
310
|
export interface AcceptanceGateResult {
|
|
312
311
|
/** Zero-based index in the task's acceptance array. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptance-gate.d.ts","sourceRoot":"","sources":["../src/acceptance-gate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"acceptance-gate.d.ts","sourceRoot":"","sources":["../src/acceptance-gate.ts"],"names":[],"mappings":"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"}
|
package/dist/boundary.d.ts
CHANGED
|
@@ -163,6 +163,58 @@ export interface BoundaryEntry {
|
|
|
163
163
|
* @see ADR-078 — Boundary Registry as SSoT for Rust/TS layering
|
|
164
164
|
*/
|
|
165
165
|
export declare const BOUNDARY_REGISTRY: readonly BoundaryEntry[];
|
|
166
|
+
/**
|
|
167
|
+
* Trust posture for an inbound channel sender.
|
|
168
|
+
*
|
|
169
|
+
* - `verified` — sender messages bypass the HITL approval gate and dispatch
|
|
170
|
+
* directly to the agent.
|
|
171
|
+
* - `unverified` — sender messages route through the resumeToken approval gate
|
|
172
|
+
* before dispatch (T11854 AC5).
|
|
173
|
+
*/
|
|
174
|
+
export type ChannelTrustPosture = 'verified' | 'unverified';
|
|
175
|
+
/**
|
|
176
|
+
* One row in {@link CHANNEL_BOUNDARY_REGISTRY}. Declares a messaging channel's
|
|
177
|
+
* delivery boundary: which transport it rides, whether it crosses the network,
|
|
178
|
+
* whether a platform credential is required, and the default trust posture for
|
|
179
|
+
* inbound senders.
|
|
180
|
+
*
|
|
181
|
+
* This is the channel-layer companion to the ADR-078 module {@link BoundaryEntry}.
|
|
182
|
+
* Where {@link BoundaryEntry} governs Rust/TS package layering (one row per
|
|
183
|
+
* crate/package, validated against the filesystem), a {@link ChannelBoundaryEntry}
|
|
184
|
+
* governs the conversation-surface boundary (one row per channel adapter) and is
|
|
185
|
+
* NOT filesystem-validated — channels are runtime concepts, not on-disk modules.
|
|
186
|
+
*
|
|
187
|
+
* @see T11854 AC4 — every channel registers a boundary entry in boundary.ts.
|
|
188
|
+
* @see ConduitMessage — the wire shape channels exchange.
|
|
189
|
+
*/
|
|
190
|
+
export interface ChannelBoundaryEntry {
|
|
191
|
+
/** Stable, kebab-case channel id (e.g. `'local-tui'`, `'telegram'`). */
|
|
192
|
+
channel: string;
|
|
193
|
+
/** Underlying conduit transport the adapter rides (e.g. `'local'`, `'http'`). */
|
|
194
|
+
transport: string;
|
|
195
|
+
/** Whether the channel originates outbound network traffic. */
|
|
196
|
+
networkEgress: 'none' | 'required';
|
|
197
|
+
/** Whether the channel requires a platform credential to operate. */
|
|
198
|
+
credentialRequired: boolean;
|
|
199
|
+
/** Default trust posture applied to inbound senders lacking explicit verification. */
|
|
200
|
+
defaultTrust: ChannelTrustPosture;
|
|
201
|
+
/** 1-2 sentence rationale for the channel's boundary posture. */
|
|
202
|
+
rationale: string;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Canonical registry of messaging-channel boundaries.
|
|
206
|
+
*
|
|
207
|
+
* The Local-TUI adapter (T11952) is the first reference channel: it rides the
|
|
208
|
+
* in-process conduit `LocalTransport`, never touches the network, needs no
|
|
209
|
+
* platform credential, and treats the single local operator as a verified
|
|
210
|
+
* sender. Platform adapters (Telegram/Discord/Slack/WhatsApp — T11855) append
|
|
211
|
+
* their own entries as they land.
|
|
212
|
+
*
|
|
213
|
+
* Entries are kept alphabetical by `channel` for diff-friendliness.
|
|
214
|
+
*
|
|
215
|
+
* @see T11854 AC4
|
|
216
|
+
*/
|
|
217
|
+
export declare const CHANNEL_BOUNDARY_REGISTRY: readonly ChannelBoundaryEntry[];
|
|
166
218
|
/**
|
|
167
219
|
* The canonical home-and-consumption boundary for the CORE-SDK tool layer.
|
|
168
220
|
*
|
package/dist/boundary.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../src/boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,iBAAiB,GACjB,aAAa,GACb,oBAAoB,GACpB,eAAe,GACf,iBAAiB,GACjB,UAAU,GACV,2BAA2B,GAC3B,mBAAmB,GACnB,cAAc,CAAC;AAMnB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,uBAAuB,CAAC;IACrD;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,4BAA4B,CAAC;IACzD;;;;OAIG;IACH,cAAc,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC;IAChD;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClD;AAMD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,qBAAqB,GACrB,yBAAyB,GACzB,UAAU,GACV;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAMzB;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,EAAE,cAAc,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,aAAa,EAAE,aAAa,CAAC;IAC7B,6DAA6D;IAC7D,UAAU,EAAE,UAAU,CAAC;IACvB,0DAA0D;IAC1D,YAAY,EAAE,YAAY,CAAC;IAC3B,gHAAgH;IAChH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kGAAkG;IAClG,SAAS,EAAE,MAAM,CAAC;IAClB,wGAAwG;IACxG,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,aAAa,
|
|
1
|
+
{"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../src/boundary.ts"],"names":[],"mappings":"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"}
|
package/dist/boundary.js
CHANGED
|
@@ -91,24 +91,6 @@ export const BOUNDARY_REGISTRY = [
|
|
|
91
91
|
amendments: [],
|
|
92
92
|
rationale: 'napi binding shim for cant-core + cant-runtime. Loaded via packages/cant/src/native-loader.ts and packages/core/src/system/dependencies.ts. Internal-only — shipped via per-platform packages/cant-napi-* npm packages, not crates.io. cant-router bindings removed (E8 T11432).',
|
|
93
93
|
},
|
|
94
|
-
{
|
|
95
|
-
module: 'cant-router',
|
|
96
|
-
intent: 'cpu-bound',
|
|
97
|
-
rustCore: 'crates/cant-router',
|
|
98
|
-
canonicalHome: 'cleocode',
|
|
99
|
-
perfBudget: {
|
|
100
|
-
latency_p50_ms: 5,
|
|
101
|
-
latency_p99_ms: 50,
|
|
102
|
-
},
|
|
103
|
-
safetyBudget: {
|
|
104
|
-
panic_unwind: 'forbidden',
|
|
105
|
-
root_escape: 'forbidden',
|
|
106
|
-
},
|
|
107
|
-
amendments: [],
|
|
108
|
-
rationale: 'Cant Router (984 LOC) — RETIRED from cant-napi dep-set (E8 T11432: zero live TS consumers). ' +
|
|
109
|
-
'Preserved in the workspace for reference; not linked into the published napi binary. ' +
|
|
110
|
-
'publish=false. Relocation/deletion tracked in T11432.',
|
|
111
|
-
},
|
|
112
94
|
{
|
|
113
95
|
module: 'cant-runtime',
|
|
114
96
|
intent: 'cpu-bound',
|
|
@@ -187,7 +169,7 @@ export const BOUNDARY_REGISTRY = [
|
|
|
187
169
|
root_escape: 'forbidden',
|
|
188
170
|
},
|
|
189
171
|
amendments: [],
|
|
190
|
-
rationale: 'Internal Rust test harness
|
|
172
|
+
rationale: 'Internal Rust test harness over lafs-core/cleo-conduit-core/cant-core. publish=false intentional — test code never ships.',
|
|
191
173
|
},
|
|
192
174
|
{
|
|
193
175
|
module: 'lafs-core',
|
|
@@ -694,6 +676,29 @@ export const BOUNDARY_REGISTRY = [
|
|
|
694
676
|
rationale: 'Worktree SSoT primitive layer (1,972 LOC) — canonical create/destroy/list/prune/include/copy-on-write bound by @cleocode/paths. Post-PR-#487 the responsibilities are distinct from packages/core/src/worktree/ (SDK-level enrichment). Consumes worktrunk-core via the worktree-napi binding, whose native .node binaries are bundled into native/ (Pattern P1) / fetched from the GitHub Release (Pattern P2) — no separate per-platform npm package is published (D14prime / ADR-087, T11398).',
|
|
695
677
|
},
|
|
696
678
|
];
|
|
679
|
+
/**
|
|
680
|
+
* Canonical registry of messaging-channel boundaries.
|
|
681
|
+
*
|
|
682
|
+
* The Local-TUI adapter (T11952) is the first reference channel: it rides the
|
|
683
|
+
* in-process conduit `LocalTransport`, never touches the network, needs no
|
|
684
|
+
* platform credential, and treats the single local operator as a verified
|
|
685
|
+
* sender. Platform adapters (Telegram/Discord/Slack/WhatsApp — T11855) append
|
|
686
|
+
* their own entries as they land.
|
|
687
|
+
*
|
|
688
|
+
* Entries are kept alphabetical by `channel` for diff-friendliness.
|
|
689
|
+
*
|
|
690
|
+
* @see T11854 AC4
|
|
691
|
+
*/
|
|
692
|
+
export const CHANNEL_BOUNDARY_REGISTRY = [
|
|
693
|
+
{
|
|
694
|
+
channel: 'local-tui',
|
|
695
|
+
transport: 'local',
|
|
696
|
+
networkEgress: 'none',
|
|
697
|
+
credentialRequired: false,
|
|
698
|
+
defaultTrust: 'verified',
|
|
699
|
+
rationale: 'In-process stdin/stdout terminal channel riding the conduit LocalTransport (conduit.db). Fully offline, daemon-OFF, no network, no platform credential; the single local operator is a verified sender.',
|
|
700
|
+
},
|
|
701
|
+
];
|
|
697
702
|
/** {@inheritDoc AtomicToolBoundary} */
|
|
698
703
|
export const ATOMIC_TOOL_BOUNDARY = {
|
|
699
704
|
primitiveHomes: ['packages/core/src/tools', 'packages/contracts/src/tools'],
|