@cleocode/contracts 2026.6.13 → 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.
Files changed (128) hide show
  1. package/dist/__tests__/operation-def.test.js +4 -1
  2. package/dist/__tests__/operation-def.test.js.map +1 -1
  3. package/dist/__tests__/provider-def.test.d.ts +12 -0
  4. package/dist/__tests__/provider-def.test.d.ts.map +1 -0
  5. package/dist/__tests__/provider-def.test.js +84 -0
  6. package/dist/__tests__/provider-def.test.js.map +1 -0
  7. package/dist/__tests__/service-provider.test.d.ts +17 -0
  8. package/dist/__tests__/service-provider.test.d.ts.map +1 -0
  9. package/dist/__tests__/service-provider.test.js +108 -0
  10. package/dist/__tests__/service-provider.test.js.map +1 -0
  11. package/dist/boundary.d.ts +52 -0
  12. package/dist/boundary.d.ts.map +1 -1
  13. package/dist/boundary.js +23 -0
  14. package/dist/boundary.js.map +1 -1
  15. package/dist/conduit.d.ts +171 -0
  16. package/dist/conduit.d.ts.map +1 -1
  17. package/dist/config/index.d.ts +23 -0
  18. package/dist/config/index.d.ts.map +1 -0
  19. package/dist/config/index.js +22 -0
  20. package/dist/config/index.js.map +1 -0
  21. package/dist/config.d.ts +2 -1
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.d.ts +21 -0
  24. package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.d.ts.map +1 -0
  25. package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.js +84 -0
  26. package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.js.map +1 -0
  27. package/dist/dispatch/identity.d.ts +1 -1
  28. package/dist/dispatch/identity.d.ts.map +1 -1
  29. package/dist/dispatch/identity.js +20 -0
  30. package/dist/dispatch/identity.js.map +1 -1
  31. package/dist/dispatch/operation-def.d.ts +20 -0
  32. package/dist/dispatch/operation-def.d.ts.map +1 -1
  33. package/dist/dispatch/operations-registry.d.ts.map +1 -1
  34. package/dist/dispatch/operations-registry.js +1030 -46
  35. package/dist/dispatch/operations-registry.js.map +1 -1
  36. package/dist/index.d.ts +15 -6
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +15 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/lease-ipc/__tests__/freeze.test.js +92 -0
  41. package/dist/lease-ipc/__tests__/freeze.test.js.map +1 -1
  42. package/dist/lease-ipc/index.d.ts +2 -2
  43. package/dist/lease-ipc/index.d.ts.map +1 -1
  44. package/dist/lease-ipc/index.js +1 -1
  45. package/dist/lease-ipc/index.js.map +1 -1
  46. package/dist/lease-ipc/messages.d.ts +167 -3
  47. package/dist/lease-ipc/messages.d.ts.map +1 -1
  48. package/dist/lease-ipc/messages.js +93 -0
  49. package/dist/lease-ipc/messages.js.map +1 -1
  50. package/dist/llm/catalog-schema.d.ts +242 -0
  51. package/dist/llm/catalog-schema.d.ts.map +1 -0
  52. package/dist/llm/catalog-schema.js +153 -0
  53. package/dist/llm/catalog-schema.js.map +1 -0
  54. package/dist/llm/catalog-schema.json +139 -0
  55. package/dist/llm/index.d.ts +15 -0
  56. package/dist/llm/index.d.ts.map +1 -0
  57. package/dist/llm/index.js +14 -0
  58. package/dist/llm/index.js.map +1 -0
  59. package/dist/llm/oauth.d.ts +16 -2
  60. package/dist/llm/oauth.d.ts.map +1 -1
  61. package/dist/llm/onboarding.d.ts +126 -0
  62. package/dist/llm/onboarding.d.ts.map +1 -0
  63. package/dist/llm/onboarding.js +34 -0
  64. package/dist/llm/onboarding.js.map +1 -0
  65. package/dist/llm/provider-def.d.ts +254 -0
  66. package/dist/llm/provider-def.d.ts.map +1 -0
  67. package/dist/llm/provider-def.js +93 -0
  68. package/dist/llm/provider-def.js.map +1 -0
  69. package/dist/llm/system-resolver.d.ts +42 -0
  70. package/dist/llm/system-resolver.d.ts.map +1 -1
  71. package/dist/operations/admin.d.ts +124 -1
  72. package/dist/operations/admin.d.ts.map +1 -1
  73. package/dist/operations/entities.d.ts +110 -0
  74. package/dist/operations/entities.d.ts.map +1 -0
  75. package/dist/operations/entities.js +695 -0
  76. package/dist/operations/entities.js.map +1 -0
  77. package/dist/operations/llm.d.ts +15 -0
  78. package/dist/operations/llm.d.ts.map +1 -1
  79. package/dist/operations/output-contracts-data.d.ts.map +1 -1
  80. package/dist/operations/output-contracts-data.js +230 -0
  81. package/dist/operations/output-contracts-data.js.map +1 -1
  82. package/dist/operations/service.d.ts +68 -0
  83. package/dist/operations/service.d.ts.map +1 -0
  84. package/dist/operations/service.js +336 -0
  85. package/dist/operations/service.js.map +1 -0
  86. package/dist/operations/tasks.d.ts +109 -0
  87. package/dist/operations/tasks.d.ts.map +1 -1
  88. package/dist/operations/tasks.js.map +1 -1
  89. package/dist/playbook.d.ts +56 -0
  90. package/dist/playbook.d.ts.map +1 -1
  91. package/dist/release/plan.d.ts +5 -5
  92. package/dist/vault/service-provider.d.ts +343 -0
  93. package/dist/vault/service-provider.d.ts.map +1 -0
  94. package/dist/vault/service-provider.js +857 -0
  95. package/dist/vault/service-provider.js.map +1 -0
  96. package/dist/workgraph.d.ts +12 -12
  97. package/package.json +10 -2
  98. package/src/__tests__/__snapshots__/operations-registry.test.ts.snap +1 -1
  99. package/src/__tests__/operation-def.test.ts +6 -1
  100. package/src/__tests__/provider-def.test.ts +93 -0
  101. package/src/__tests__/service-provider.test.ts +129 -0
  102. package/src/boundary.ts +69 -0
  103. package/src/conduit.ts +200 -0
  104. package/src/config/index.ts +35 -0
  105. package/src/config.ts +2 -1
  106. package/src/dispatch/__tests__/tasks-gateway-crud-ops.test.ts +99 -0
  107. package/src/dispatch/identity.ts +20 -0
  108. package/src/dispatch/operation-def.ts +21 -0
  109. package/src/dispatch/operations-registry.ts +1062 -36
  110. package/src/index.ts +137 -1
  111. package/src/lease-ipc/__tests__/freeze.test.ts +96 -0
  112. package/src/lease-ipc/index.ts +12 -0
  113. package/src/lease-ipc/messages.ts +117 -0
  114. package/src/llm/catalog-schema.json +139 -0
  115. package/src/llm/catalog-schema.ts +184 -0
  116. package/src/llm/index.ts +29 -0
  117. package/src/llm/oauth.ts +16 -2
  118. package/src/llm/onboarding.ts +131 -0
  119. package/src/llm/provider-def.ts +291 -0
  120. package/src/llm/system-resolver.ts +45 -0
  121. package/src/operations/admin.ts +144 -0
  122. package/src/operations/entities.ts +758 -0
  123. package/src/operations/llm.ts +15 -0
  124. package/src/operations/output-contracts-data.ts +264 -0
  125. package/src/operations/service.ts +360 -0
  126. package/src/operations/tasks.ts +119 -0
  127. package/src/playbook.ts +56 -0
  128. package/src/vault/service-provider.ts +1137 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/operations/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/operations/tasks.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,62 @@ export interface PlaybookAgenticNode extends PlaybookNodeBase {
51
51
  * Enforced at spawn time by composeSpawnPayload (T1261 PSYCHE E4).
52
52
  */
53
53
  context_files?: string[];
54
+ /**
55
+ * Pin this stage's LLM to a named profile from `llm.profiles` (T11759 · M4).
56
+ *
57
+ * When present, the dispatcher resolves the stage's LLM through the E9
58
+ * chokepoint (`resolveLLMForSystem`) keyed by the cantbook node identity
59
+ * (`cantbook:<playbook>#<nodeId>`) with this profile name threaded as the
60
+ * pin — so the named profile's provider/model/credential win over the
61
+ * background role default. Additive: a node without `profile`/`model`/
62
+ * `provider` resolves exactly as before.
63
+ */
64
+ profile?: string;
65
+ /**
66
+ * Pin this stage's LLM to an explicit model id (T11759 · M4).
67
+ *
68
+ * A lower-precedence escape hatch than {@link profile}: when no `profile` is
69
+ * declared the dispatcher threads this model id as the resolution hint. The
70
+ * runtime never constructs a transport from it — it is a resolution hint
71
+ * consumed by the Pi runner / model-runner downstream (Gate-13).
72
+ */
73
+ model?: string;
74
+ /**
75
+ * Pin this stage's LLM to an explicit provider transport (T11759 · M4).
76
+ *
77
+ * Paired with {@link model} as the inline escape hatch when no {@link profile}
78
+ * is declared. A resolution hint only — never used to build a client here.
79
+ */
80
+ provider?: string;
81
+ /**
82
+ * Per-step skill allowlist enforced at spawn time (T1947 · M4 cantbook
83
+ * done-gate, Gap E/F).
84
+ *
85
+ * When present, the spawned agent's effective skill set is the INTERSECTION
86
+ * of the agent's resolved skills (the Tier-0/1/2 baseline) and this list — a
87
+ * skill not in both is dropped. The allowlist can only RESTRICT the baseline,
88
+ * never expand it: a skill named here that the agent does not already carry is
89
+ * NOT added. Additive: a node without `allowed_skills` spawns with its full
90
+ * baseline skill set, exactly as before.
91
+ *
92
+ * Enforced by `composeSpawnPayload` (it intersects `resolvedAgent.skills` with
93
+ * this list). An empty set after intersection is logged as a warning and the
94
+ * spawn proceeds with no skills.
95
+ */
96
+ allowed_skills?: string[];
97
+ /**
98
+ * Per-step tool allowlist enforced at spawn time (T1947 · M4 cantbook
99
+ * done-gate, Gap E/F).
100
+ *
101
+ * When present, the spawned agent's effective tool set is the INTERSECTION of
102
+ * the agent's resolved tool baseline and this list — a tool not in both is
103
+ * dropped. Like {@link allowed_skills}, this can only RESTRICT the baseline,
104
+ * never expand it. Additive: a node without `allowed_tools` is unaffected.
105
+ *
106
+ * Enforced by `composeSpawnPayload` AFTER the thin-agent guard, so a worker
107
+ * still cannot acquire a spawn-capable tool it was never granted.
108
+ */
109
+ allowed_tools?: string[];
54
110
  }
55
111
  export interface PlaybookDeterministicNode extends PlaybookNodeBase {
56
112
  type: 'deterministic';
@@ -1 +1 @@
1
- {"version":3,"file":"playbook.d.ts","sourceRoot":"","sources":["../src/playbook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playbook.d.ts","sourceRoot":"","sources":["../src/playbook.ts"],"names":[],"mappings":"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"}
@@ -97,8 +97,8 @@ export declare const IMPACT: readonly ["major", "minor", "patch"];
97
97
  export declare const RESOLVED_SOURCE: readonly ["project-context", "language-default", "legacy-alias"];
98
98
  /** Zod schema for {@link RELEASE_CHANNEL}. */
99
99
  export declare const ReleaseChannelSchema: z.ZodEnum<{
100
- latest: "latest";
101
100
  beta: "beta";
101
+ latest: "latest";
102
102
  alpha: "alpha";
103
103
  rc: "rc";
104
104
  }>;
@@ -153,8 +153,8 @@ export declare const PlatformTupleSchema: z.ZodEnum<{
153
153
  /** Zod schema for {@link PUBLISHER}. */
154
154
  export declare const PublisherSchema: z.ZodEnum<{
155
155
  binary: "binary";
156
- cargo: "cargo";
157
156
  npm: "npm";
157
+ cargo: "cargo";
158
158
  docker: "docker";
159
159
  pypi: "pypi";
160
160
  "github-release": "github-release";
@@ -266,8 +266,8 @@ export declare const ReleasePlatformMatrixEntrySchema: z.ZodObject<{
266
266
  }>;
267
267
  publisher: z.ZodEnum<{
268
268
  binary: "binary";
269
- cargo: "cargo";
270
269
  npm: "npm";
270
+ cargo: "cargo";
271
271
  docker: "docker";
272
272
  pypi: "pypi";
273
273
  "github-release": "github-release";
@@ -345,8 +345,8 @@ export declare const ReleasePlanSchema: z.ZodObject<{
345
345
  "calver-suffix": "calver-suffix";
346
346
  }>;
347
347
  channel: z.ZodEnum<{
348
- latest: "latest";
349
348
  beta: "beta";
349
+ latest: "latest";
350
350
  alpha: "alpha";
351
351
  rc: "rc";
352
352
  }>;
@@ -426,8 +426,8 @@ export declare const ReleasePlanSchema: z.ZodObject<{
426
426
  }>;
427
427
  publisher: z.ZodEnum<{
428
428
  binary: "binary";
429
- cargo: "cargo";
430
429
  npm: "npm";
430
+ cargo: "cargo";
431
431
  docker: "docker";
432
432
  pypi: "pypi";
433
433
  "github-release": "github-release";
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Universal service-vault — declarative service-provider registry (types + DATA).
3
+ *
4
+ * EP-UNIVERSAL-SERVICE-VAULT (epic T11765 · saga SG-VAULT-CORE T10409 · M2 W1a ·
5
+ * task T11937). The **service** half of the universal vault: machine-wide OAuth /
6
+ * API credentials for third-party SERVICES (github, google, notion, figma, …) —
7
+ * distinct from the LLM-provider credential pool (`accounts`, T11709) which holds
8
+ * model-API keys. A {@link ServiceProviderDef} is a purely declarative description
9
+ * of one connectable service: its stable key, display label, auth shape, and the
10
+ * default OAuth endpoints/scopes the (later) OAuth dance (T11939) will drive.
11
+ *
12
+ * ## Why this lives in `@cleocode/contracts` (Gate 10 purity)
13
+ *
14
+ * This module is **types + frozen DATA only**. {@link SERVICE_PROVIDERS} is a
15
+ * `const` record literal (no bodied function, no zod schema, no type guard) — it
16
+ * is configuration data, exactly like a routing table, so it satisfies the
17
+ * contracts-purity gate (`lint-no-runtime-in-contracts`). The runtime that
18
+ * CONSUMES the registry (the store, the trust gate, the OAuth flow) lives in
19
+ * `@cleocode/core`; this file never imports from core and carries no side effects.
20
+ *
21
+ * ## Pattern, not census (T11937 vs T11938)
22
+ *
23
+ * Only **github** and **google** are seeded here, deliberately — they prove the
24
+ * declarative pattern (one PKCE provider with a fixed loopback, one classic
25
+ * web-OAuth provider) before the fan-out to ~40 services in the follow-up
26
+ * (T11938). Adding a service is a single DATA entry; no code change.
27
+ *
28
+ * @module contracts/vault/service-provider
29
+ * @task T11937
30
+ * @epic T11765
31
+ * @saga T10409
32
+ * @see ../llm/oauth.js — `ProviderOAuthConfig` / `OAuthMode` (reused here)
33
+ * @see ../llm/sealed-credential.js — `SealedCredential` (the egress handle a resolved service credential is wrapped in)
34
+ */
35
+ import type { ProviderOAuthConfig } from '../llm/oauth.js';
36
+ /**
37
+ * Auth shape a service uses to obtain credentials.
38
+ *
39
+ * - `oauth2` — classic OAuth 2.0 Authorization Code grant (e.g. github web flow).
40
+ * - `oauth2-pkce` — OAuth 2.0 Authorization Code + PKCE (RFC 7636), for CLI /
41
+ * headless flows (e.g. google installed-app flow).
42
+ * - `api-key` — a long-lived API token pasted/imported directly (no OAuth dance).
43
+ *
44
+ * The value drives which fields of {@link ServiceProviderDef.oauth} are required
45
+ * and which OAuth code path (T11939) runs for the service.
46
+ *
47
+ * @task T11937
48
+ */
49
+ export declare const SERVICE_AUTH_KINDS: readonly ["oauth2", "oauth2-pkce", "api-key"];
50
+ /** TypeScript union derived from {@link SERVICE_AUTH_KINDS}. */
51
+ export type ServiceAuthKind = (typeof SERVICE_AUTH_KINDS)[number];
52
+ /**
53
+ * Discriminant naming the refresh GRANT a provider uses (T11938 AC3).
54
+ *
55
+ * The OAuth flow (T11939) branches on this value to pick the refresh code path:
56
+ *
57
+ * - `refresh-token` — the standard OAuth 2.0 `grant_type=refresh_token` exchange
58
+ * (RFC 6749 §6), shaped by {@link RefreshConfig.bodyFormat} /
59
+ * {@link RefreshConfig.clientAuth}. The common case (google, atlassian, …).
60
+ * - `github-app` — a GitHub App installation token: sign an RS256 JWT with the
61
+ * app private key, then POST `/app/installations/{id}/access_tokens`.
62
+ * - `service-account-jwt` — a Google service-account: sign an RS256 JWT and
63
+ * exchange it via `grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer`.
64
+ * - `client-credentials` — the OAuth 2.0 `grant_type=client_credentials` grant
65
+ * (RFC 6749 §4.4), Basic-auth client id/secret (e.g. MongoDB Atlas SAs).
66
+ *
67
+ * @task T11938
68
+ */
69
+ export declare const REFRESH_KINDS: readonly ["refresh-token", "github-app", "service-account-jwt", "client-credentials"];
70
+ /** TypeScript union derived from {@link REFRESH_KINDS}. */
71
+ export type RefreshKind = (typeof REFRESH_KINDS)[number];
72
+ /**
73
+ * Body encoding for a `refresh-token` token-endpoint POST.
74
+ *
75
+ * - `form` — `application/x-www-form-urlencoded` (OAuth 2.0 default; google).
76
+ * - `json` — `application/json` (required by Atlassian / Notion).
77
+ *
78
+ * @task T11938
79
+ */
80
+ export type RefreshBodyFormat = 'form' | 'json';
81
+ /**
82
+ * How the OAuth client credentials are presented on a `refresh-token` POST.
83
+ *
84
+ * - `body` — `client_id` + `client_secret` carried IN the request body (default).
85
+ * - `basic-auth` — `Authorization: Basic base64(client_id:client_secret)` header
86
+ * (Notion, Supabase).
87
+ *
88
+ * @task T11938
89
+ */
90
+ export type RefreshClientAuth = 'body' | 'basic-auth';
91
+ /**
92
+ * Declarative refresh configuration for a `refresh-token` provider (T11938 AC1).
93
+ *
94
+ * Pure data: the token endpoint, the body encoding, and how the client
95
+ * credentials are presented. The OAuth flow (T11939) reads this to drive the
96
+ * `grant_type=refresh_token` exchange WITHOUT any per-provider code. The
97
+ * `kind` discriminant selects the broader grant (the three special variants
98
+ * — github-app / service-account-jwt / client-credentials — set `kind` and
99
+ * leave `bodyFormat`/`clientAuth` at their `form`/`body` defaults; their grant
100
+ * mechanics are not refresh-token-shaped).
101
+ *
102
+ * Cannibalized from onecli `apps.rs::RefreshConfig` (DATA only — the Rust
103
+ * `reqwest`/env-var resolution is re-implemented in TS in T11939).
104
+ *
105
+ * @task T11938
106
+ */
107
+ export interface RefreshConfig {
108
+ /** Which refresh GRANT this provider uses ({@link RefreshKind}). */
109
+ readonly kind: RefreshKind;
110
+ /**
111
+ * Token endpoint the refresh exchange POSTs to. For `refresh-token` /
112
+ * `client-credentials`; the JWT variants use a fixed provider endpoint and may
113
+ * leave this as the canonical value for documentation.
114
+ */
115
+ readonly tokenUrl: string;
116
+ /** Body encoding for a `refresh-token` exchange. Defaults to `form`. */
117
+ readonly bodyFormat?: RefreshBodyFormat;
118
+ /** Client-credential presentation for a `refresh-token` exchange. Defaults to `body`. */
119
+ readonly clientAuth?: RefreshClientAuth;
120
+ }
121
+ /**
122
+ * Auth strategy a host rule applies when a resolved credential is injected into
123
+ * an outbound request to a matched host.
124
+ *
125
+ * - `bearer` — `Authorization: Bearer <token>` (the OAuth default).
126
+ * - `basic-x-access-token` — `Authorization: Basic base64("x-access-token:<token>")`
127
+ * (GitHub git-over-HTTPS).
128
+ * - `header` — the token is injected via a named header rather than `Authorization`
129
+ * (paired with {@link ServiceProviderDef.credentialHeaders}).
130
+ *
131
+ * Declarative only in this milestone — the injecting proxy is a later epic.
132
+ *
133
+ * @task T11938
134
+ */
135
+ export type HostAuthStrategy = 'bearer' | 'basic-x-access-token' | 'header';
136
+ /**
137
+ * One host-match rule declaring which upstream hosts a provider's credential is
138
+ * valid for and how it is injected (T11938 AC1/AC4 — every provider declares a
139
+ * non-empty {@link ServiceProviderDef.hostRules}).
140
+ *
141
+ * `host` is matched EXACTLY (no wildcards in this milestone). `pathPrefix`, when
142
+ * set, narrows the rule to requests under that path (e.g. the legacy
143
+ * `www.googleapis.com/gmail/` endpoint). Cannibalized from onecli
144
+ * `apps.rs::HostRule` (DATA only).
145
+ *
146
+ * @task T11938
147
+ */
148
+ export interface ServiceHostRule {
149
+ /** Exact upstream host this rule matches (e.g. `'api.github.com'`). */
150
+ readonly host: string;
151
+ /** Optional path prefix narrowing the rule (e.g. `'/gmail/'`). */
152
+ readonly pathPrefix?: string;
153
+ /** How the credential is injected for a matched request. */
154
+ readonly strategy: HostAuthStrategy;
155
+ }
156
+ /**
157
+ * One declarative injection action applied to an outbound request when a resolved
158
+ * service credential is injected at the harness tool boundary (T11940 · M2-W3).
159
+ *
160
+ * A discriminated union over the action `kind`. The injector
161
+ * ({@link import('@cleocode/core').injectServiceCredentials}) materializes the
162
+ * sealed credential's plaintext ONLY at the wire (inside the action's value
163
+ * resolver) and applies these mutations to a request descriptor — there is NO MITM
164
+ * proxy (the seam is the in-process tool boundary, T11940 AC4):
165
+ *
166
+ * - `set-header` — set `name` to the materialized value (overwriting any existing).
167
+ * - `replace-header` — set `name` to the value ONLY if the header is already
168
+ * present (a no-op when absent — used to swap a placeholder the tool emitted).
169
+ * - `remove-header` — delete `name` (e.g. strip a stale `Authorization` before
170
+ * re-injecting the vault credential).
171
+ * - `set-param` — set the query-string parameter `name` to the materialized value.
172
+ *
173
+ * The `valueSource` discriminates WHERE the injected value comes from:
174
+ * `'token'` (the decrypted access token), `'credential-field'` (a named field of
175
+ * the credential blob, e.g. an AWS access-key id), or `'metadata'` (a non-secret
176
+ * connection-metadata key, e.g. a Google project id). `remove-header` carries no
177
+ * `valueSource` (it injects nothing).
178
+ *
179
+ * @task T11940
180
+ */
181
+ export type InjectionRule = {
182
+ /** Set a header to the injected value (overwrites any existing). */
183
+ readonly kind: 'set-header';
184
+ /** The header name to set. */
185
+ readonly name: string;
186
+ /** Where the injected value comes from. */
187
+ readonly valueSource: InjectionValueSource;
188
+ /** For `bearer`/`basic-x-access-token` token framing — how to wrap the value. */
189
+ readonly framing?: HostAuthStrategy;
190
+ } | {
191
+ /** Set a header ONLY when it is already present (swap a placeholder). */
192
+ readonly kind: 'replace-header';
193
+ /** The header name to replace. */
194
+ readonly name: string;
195
+ /** Where the injected value comes from. */
196
+ readonly valueSource: InjectionValueSource;
197
+ /** For `bearer`/`basic-x-access-token` token framing — how to wrap the value. */
198
+ readonly framing?: HostAuthStrategy;
199
+ } | {
200
+ /** Remove a header (injects no value). */
201
+ readonly kind: 'remove-header';
202
+ /** The header name to remove. */
203
+ readonly name: string;
204
+ } | {
205
+ /** Set a query-string parameter to the injected value. */
206
+ readonly kind: 'set-param';
207
+ /** The query-parameter name to set. */
208
+ readonly name: string;
209
+ /** Where the injected value comes from. */
210
+ readonly valueSource: InjectionValueSource;
211
+ };
212
+ /**
213
+ * Where an {@link InjectionRule}'s injected value is sourced from.
214
+ *
215
+ * - `token` — the decrypted access token (the secret materialized at the wire).
216
+ * - `credential-field` — a named field of the credential blob (paired with the
217
+ * rule's `name` resolution via {@link ServiceProviderDef.credentialHeaders}).
218
+ * - `metadata` — a non-secret connection-metadata key.
219
+ *
220
+ * @task T11940
221
+ */
222
+ export type InjectionValueSource = 'token' | 'credential-field' | 'metadata';
223
+ /**
224
+ * Inject an HTTP header from a credential-blob field (e.g. a regional API key →
225
+ * `DD-API-KEY`). Declarative metadata; the injecting proxy is a later epic.
226
+ *
227
+ * @task T11938
228
+ */
229
+ export interface CredentialHeaderRule {
230
+ /** The credential-blob field whose value is injected. */
231
+ readonly credentialField: string;
232
+ /** The HTTP header the value is injected as. */
233
+ readonly headerName: string;
234
+ }
235
+ /**
236
+ * Inject an HTTP header from a connection-metadata key (e.g. a project id →
237
+ * `x-goog-user-project`). Declarative metadata; the injecting proxy is a later
238
+ * epic.
239
+ *
240
+ * @task T11938
241
+ */
242
+ export interface MetadataHeaderRule {
243
+ /** The non-secret metadata key whose value is injected. */
244
+ readonly metadataKey: string;
245
+ /** The HTTP header the value is injected as. */
246
+ readonly headerName: string;
247
+ }
248
+ /**
249
+ * Declarative description of one connectable third-party service.
250
+ *
251
+ * A `ServiceProviderDef` is pure configuration: it names a service, describes how
252
+ * it authenticates, and (for OAuth services) carries the default endpoints and
253
+ * scopes the OAuth flow will drive. It holds NO secret material — a user's actual
254
+ * tokens live encrypted in the `service_connections` table; BYOC client secrets
255
+ * (when the user brings their own OAuth app) live encrypted in `service_configs`.
256
+ *
257
+ * @task T11937
258
+ */
259
+ export interface ServiceProviderDef {
260
+ /**
261
+ * Stable provider key (lowercase, kebab) — the join key against
262
+ * `service_connections.provider` / `service_configs.provider`. NEVER renamed
263
+ * once shipped (it is persisted in user rows). e.g. `'github'`, `'google'`.
264
+ */
265
+ readonly provider: string;
266
+ /** Human-readable display name for UI / CLI output. e.g. `'GitHub'`. */
267
+ readonly displayName: string;
268
+ /** Auth shape this service uses ({@link ServiceAuthKind}). */
269
+ readonly authKind: ServiceAuthKind;
270
+ /**
271
+ * Default OAuth configuration (endpoints + scopes + the public client id of
272
+ * CLEO's first-party OAuth app). `undefined` for an `api-key`-only service.
273
+ *
274
+ * Reuses the LLM-layer {@link ProviderOAuthConfig} shape verbatim — the OAuth
275
+ * mechanics (PKCE vs classic, endpoints, redirect, extra params) are identical
276
+ * whether the credential is for a model API or a service API. When the user
277
+ * supplies their own client id/secret (BYOC, stored in `service_configs`),
278
+ * those OVERRIDE the `clientId`/`scope` declared here at flow time (T11939).
279
+ */
280
+ readonly oauth?: ProviderOAuthConfig;
281
+ /**
282
+ * Default space-separated scopes requested when CLEO's first-party app is used
283
+ * and `oauth.scope` is not overridden by a BYOC `service_configs.settings`.
284
+ * Mirrors `oauth.scope`; kept as a top-level field so an `api-key` service can
285
+ * still document the access level a token is expected to carry.
286
+ */
287
+ readonly defaultScopes?: string;
288
+ /**
289
+ * One-line description of what connecting this service enables. Surfaced in the
290
+ * connect UI / `cleo service list`. Non-secret.
291
+ */
292
+ readonly description: string;
293
+ /**
294
+ * Non-empty list of host-match rules (T11938 AC1/AC4) declaring which upstream
295
+ * hosts this provider's resolved credential is valid for and how it is injected
296
+ * ({@link ServiceHostRule}). The registry-completeness test asserts EVERY
297
+ * provider carries at least one rule. Cannibalized from onecli
298
+ * `apps.rs::AppProvider.host_rules` (DATA only).
299
+ */
300
+ readonly hostRules: readonly ServiceHostRule[];
301
+ /**
302
+ * Refresh configuration (T11938 AC1/AC3). Present for every `oauth2` /
303
+ * `oauth2-pkce` provider that can refresh; `undefined` for an `api-key` service
304
+ * (no token to refresh) or an OAuth service that only re-authorizes. The OAuth
305
+ * flow (T11939) reads {@link RefreshConfig.kind} to pick the refresh grant.
306
+ */
307
+ readonly refresh?: RefreshConfig;
308
+ /**
309
+ * Optional header-injection rules sourced from the credential blob (T11938 AC1).
310
+ * Declarative reach metadata; the injecting proxy is a later epic.
311
+ */
312
+ readonly credentialHeaders?: readonly CredentialHeaderRule[];
313
+ /**
314
+ * Optional header-injection rules sourced from connection metadata (T11938 AC1).
315
+ * Declarative reach metadata; the injecting proxy is a later epic.
316
+ */
317
+ readonly metadataHeaders?: readonly MetadataHeaderRule[];
318
+ }
319
+ /**
320
+ * The seeded service-provider registry — **github + google + the ~40-service
321
+ * census** (T11937 seeds + T11938 breadth).
322
+ *
323
+ * Keyed by {@link ServiceProviderDef.provider}. This is the SSoT the store reads
324
+ * when validating a `connect` and the OAuth flow (T11939) reads for default
325
+ * endpoints/scopes. The two seeds prove the two OAuth shapes:
326
+ *
327
+ * - **github** — classic OAuth 2.0 web flow (`authKind: 'oauth2'`), fixed
328
+ * loopback redirect; user grants `repo`/`read:user` scopes.
329
+ * - **google** — installed-app OAuth 2.0 + PKCE (`authKind: 'oauth2-pkce'`),
330
+ * loopback redirect; user grants offline-access + the requested API scopes.
331
+ *
332
+ * The `clientId` values are PLACEHOLDER public client ids for CLEO's first-party
333
+ * OAuth apps — the real ids are wired (or BYOC-overridden) when the OAuth dance
334
+ * lands in T11939. They are NOT secrets (a public OAuth client id is, by design,
335
+ * embeddable in a distributed CLI).
336
+ *
337
+ * Fan-out to the full ~40-service census is the follow-up (T11938): add a DATA
338
+ * entry here, nothing else.
339
+ *
340
+ * @task T11937
341
+ */
342
+ export declare const SERVICE_PROVIDERS: Readonly<Record<string, ServiceProviderDef>>;
343
+ //# sourceMappingURL=service-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-provider.d.ts","sourceRoot":"","sources":["../../src/vault/service-provider.ts"],"names":[],"mappings":"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"}