@debian777/kairos-mcp 4.2.1 → 4.2.2

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 (63) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/config.d.ts +7 -1
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +13 -3
  5. package/dist/config.js.map +1 -1
  6. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002001.md +8 -23
  7. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002002.md +1 -1
  8. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002003.md +1 -1
  9. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002004.md +3 -4
  10. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002005.md +1 -1
  11. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002006.md +176 -0
  12. package/dist/embed-docs/mem/README.md +1 -0
  13. package/dist/http/http-health-routes.d.ts.map +1 -1
  14. package/dist/http/http-health-routes.js +14 -11
  15. package/dist/http/http-health-routes.js.map +1 -1
  16. package/dist/http/http-well-known.d.ts.map +1 -1
  17. package/dist/http/http-well-known.js +23 -3
  18. package/dist/http/http-well-known.js.map +1 -1
  19. package/dist/http/oidc-scopes.d.ts +3 -0
  20. package/dist/http/oidc-scopes.d.ts.map +1 -0
  21. package/dist/http/oidc-scopes.js +20 -0
  22. package/dist/http/oidc-scopes.js.map +1 -0
  23. package/dist/resources/embedded-mcp-resources.d.ts +1 -0
  24. package/dist/resources/embedded-mcp-resources.d.ts.map +1 -1
  25. package/dist/resources/embedded-mcp-resources.js +6 -5
  26. package/dist/resources/embedded-mcp-resources.js.map +1 -1
  27. package/dist/services/key-value-store-factory.js +2 -2
  28. package/dist/tools/search.js +2 -2
  29. package/dist/ui/assets/AccountPage-BoA6v1P5.js +1 -0
  30. package/dist/ui/assets/{ChallengeCard-BzazsAvt.js → ChallengeCard-BZ5hfSjX.js} +1 -1
  31. package/dist/ui/assets/{ErrorAlert-7KMt7J_7.js → ErrorAlert-DMKZP8Bu.js} +1 -1
  32. package/dist/ui/assets/{HomePage-CwCNzSjT.js → HomePage-CRo8mNcK.js} +1 -1
  33. package/dist/ui/assets/{KairosPage-C5q5tqDm.js → KairosPage-Bib9zJu8.js} +1 -1
  34. package/dist/ui/assets/{NotFoundPage-SymCDZ6l.js → NotFoundPage-BAhX5b1F.js} +1 -1
  35. package/dist/ui/assets/{ProtocolDetailPage-BcPDemMk.js → ProtocolDetailPage-CSbv65eY.js} +1 -1
  36. package/dist/ui/assets/{ProtocolEditPage-CY0m0A6G.js → ProtocolEditPage-BgcnqEBN.js} +1 -1
  37. package/dist/ui/assets/{RichTextEditor-BbViqx11.js → RichTextEditor-DP6NpPMV.js} +1 -1
  38. package/dist/ui/assets/{RunGuidedPage-CiJMZoke.js → RunGuidedPage-NH4deGgN.js} +1 -1
  39. package/dist/ui/assets/{RunsPage-BJndRV4w.js → RunsPage-CtEX8sGc.js} +1 -1
  40. package/dist/ui/assets/{SkillBundlePage-Ckc-gVue.js → SkillBundlePage-Dqet-EFY.js} +1 -1
  41. package/dist/ui/assets/{SpaceSelect-cuRIuHIk.js → SpaceSelect-DIDjtkBC.js} +1 -1
  42. package/dist/ui/assets/{StepFlowGraph-DkyVvX6i.js → StepFlowGraph-DZzQ0AQV.js} +1 -1
  43. package/dist/ui/assets/{SurfaceCard-B5mLnSji.js → SurfaceCard-C0uBJPza.js} +1 -1
  44. package/dist/ui/assets/{index-CJz3Kamp.css → index-B_mJ0HIm.css} +1 -1
  45. package/dist/ui/assets/index-Da2yvncA.js +8 -0
  46. package/dist/ui/assets/{react-BL_LTrrN.js → react-nnqwRscp.js} +1 -1
  47. package/dist/ui/assets/rolldown-runtime-S-ySWqyJ.js +1 -0
  48. package/dist/ui/assets/{tiptap-DY8CGFJT.js → tiptap-CYcAvjOe.js} +29 -30
  49. package/dist/ui/assets/{useProtocol-BZSuhmnd.js → useProtocol-LcBAbyj-.js} +1 -1
  50. package/dist/ui/assets/{useRunSession-BnxZepqw.js → useRunSession-DnUNMlAi.js} +1 -1
  51. package/dist/ui/assets/vendor-uawy19jW.js +33 -0
  52. package/dist/ui/index.html +6 -7
  53. package/dist/utils/normalize-redis-url.d.ts +2 -0
  54. package/dist/utils/normalize-redis-url.d.ts.map +1 -0
  55. package/dist/utils/normalize-redis-url.js +18 -0
  56. package/dist/utils/normalize-redis-url.js.map +1 -0
  57. package/package.json +2 -2
  58. package/dist/ui/assets/AccountPage-Crmp73eW.js +0 -1
  59. package/dist/ui/assets/index-B-6o4FBH.js +0 -8
  60. package/dist/ui/assets/rolldown-runtime-Dw2cE7zH.js +0 -1
  61. package/dist/ui/assets/useThemePreference-BnOCATDn.js +0 -1
  62. package/dist/ui/assets/vendor-891xiZtj.js +0 -33
  63. /package/dist/ui/assets/{api-D_urPBLm.js → api-D88c6lbH.js} +0 -0
package/dist/config.d.ts CHANGED
@@ -3,8 +3,8 @@
3
3
  * This file contains all environment variable parsing logic.
4
4
  * REDIS_URL: when set (non-empty) → Redis backend; when unset or empty → in-memory backend. QDRANT_URL is always required.
5
5
  */
6
+ export { DEFAULT_OIDC_SCOPES_SUPPORTED, parseOidcScopesSupported } from './http/oidc-scopes.js';
6
7
  export declare const REDIS_URL: string;
7
- export declare const USE_REDIS: boolean;
8
8
  export declare const KAIROS_REDIS_PREFIX: string;
9
9
  export declare const KAIROS_TRACE_STORE_DIR: string;
10
10
  /** Canonical shell / authoring work directory; created at server startup. */
@@ -70,6 +70,12 @@ export declare const AUTH_CALLBACK_BASE_URL: string;
70
70
  export declare const SESSION_SECRET: string;
71
71
  /** Session cookie and payload exp lifetime in seconds; default 7 days. */
72
72
  export declare const SESSION_MAX_AGE_SEC: number;
73
+ /**
74
+ * Comma-separated scopes advertised from `/.well-known/oauth-protected-resource`.
75
+ * Defaults to the baseline OIDC scopes required by KAIROS discovery; set explicitly
76
+ * to add scopes such as `offline_access` without rebuilding the container image.
77
+ */
78
+ export declare const OIDC_SCOPES_SUPPORTED: readonly string[];
73
79
  /** When set to oidc_bearer, Bearer tokens are validated (issuer, audience, exp); when unset, Bearer presence only (backward compat). */
74
80
  export declare const AUTH_MODE: string;
75
81
  /** Comma-separated list of trusted JWT issuers (e.g. http://keycloak:8080/realms/kairos-dev). Required when AUTH_MODE=oidc_bearer. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8CH,eAAO,MAAM,SAAS,QAAyC,CAAC;AAChE,eAAO,MAAM,SAAS,SAAuB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,QAAiD,CAAC;AAKlF,eAAO,MAAM,sBAAsB,QAEE,CAAC;AAKtC,6EAA6E;AAC7E,eAAO,MAAM,eAAe,QAAiE,CAAC;AAC9F,0GAA0G;AAC1G,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,sBAAsB,QAAmE,CAAC;AACvG,kGAAkG;AAClG,eAAO,MAAM,cAAc,QAA8E,CAAC;AAC1G,eAAO,MAAM,cAAc,QAAqC,CAAC;AACjE,eAAO,MAAM,kBAAkB,QAA6C,CAAC;AAC7E,eAAO,MAAM,YAAY,QAAmC,CAAC;AAC7D,eAAO,MAAM,SAAS,QAA6D,CAAC;AACpF,eAAO,MAAM,WAAW,QAAkC,CAAC;AAC3D,eAAO,MAAM,yBAAyB,QAA+C,CAAC;AACtF,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AACzE,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AACzE;;;GAGG;AACH,eAAO,MAAM,sCAAsC,QAA8D,CAAC;AAClH,eAAO,MAAM,2BAA2B,QAAkD,CAAC;AAC3F,eAAO,MAAM,SAAS,QAAoC,CAAC;AAC3D,eAAO,MAAM,UAAU,QAAqC,CAAC;AAC7D,eAAO,MAAM,cAAc,QAA4C,CAAC;AACxE,eAAO,MAAM,cAAc,QAAqC,CAAC;AACjE,eAAO,MAAM,yBAAyB,QAAgD,CAAC;AACvF,eAAO,MAAM,8BAA8B,QAAsD,CAAC;AAClG,eAAO,MAAM,uBAAuB,QAA4C,CAAC;AACjF,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB,QAA6C,CAAC;AACpF,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,QAA2C,CAAC;AAChF,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,QAA0C,CAAC;AAC/E,eAAO,MAAM,4BAA4B,SAAsD,CAAC;AAChG,eAAO,MAAM,oBAAoB,QAA8C,CAAC;AAChF,4HAA4H;AAC5H,eAAO,MAAM,yBAAyB,QAUlC,CAAC;AACL,eAAO,MAAM,yBAAyB,QAAiD,CAAC;AACxF,yLAAyL;AACzL,eAAO,MAAM,mBAAmB,QAA2C,CAAC;AAC5E,eAAO,MAAM,yBAAyB,QAAiD,CAAC;AACxF,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AACxE,eAAO,MAAM,wBAAwB,QAAgD,CAAC;AACtF,eAAO,MAAM,kBAAkB,QAAwC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,mCAAmC,SAA8D,CAAC;AAK/G,eAAO,MAAM,YAAY,SAAsC,CAAC;AAChE,eAAO,MAAM,YAAY,QAAmC,CAAC;AAC7D,iIAAiI;AACjI,eAAO,MAAM,qBAAqB,QAA4C,CAAC;AAC/E,eAAO,MAAM,cAAc,QAA+C,CAAC;AAC3E,eAAO,MAAM,kBAAkB,QAAmD,CAAC;AACnF,yGAAyG;AACzG,eAAO,MAAM,sBAAsB,QAAuD,CAAC;AAC3F,wGAAwG;AACxG,eAAO,MAAM,sBAAsB,QAA6C,CAAC;AACjF,eAAO,MAAM,cAAc,QAAqC,CAAC;AACjE,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,QAA2C,CAAC;AAE5E,wIAAwI;AACxI,eAAO,MAAM,SAAS,QAAgC,CAAC;AACvD,sIAAsI;AACtI,eAAO,MAAM,2BAA2B,QAA2C,CAAC;AACpF,4GAA4G;AAC5G,eAAO,MAAM,6BAA6B,QAA6C,CAAC;AACxF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAS/C,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,SAA2D,CAAC;AAU1G,eAAO,MAAM,iCAAiC,QAG/B,CAAC;AAEhB;;;GAGG;AACH,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CASf;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,EAAE,MASnC,CAAC;AAGL,eAAO,MAAM,IAAI,QAA0B,CAAC;AAiB5C,eAAO,MAAM,qBAAqB,QAAyC,CAAC;AAC5E,kIAAkI;AAClI,eAAO,MAAM,wBAAwB,SAAmD,CAAC;AAEzF,eAAO,MAAM,mBAAmB,QAKa,CAAC;AAG9C,eAAO,MAAM,YAAY,QAAkC,CAAC;AAC5D,gGAAgG;AAChG,eAAO,MAAM,+BAA+B,QAA8C,CAAC;AAG3F,eAAO,MAAM,eAAe,QAAsC,CAAC;AACnE,sHAAsH;AACtH,eAAO,MAAM,wBAAwB,QAA+C,CAAC;AAErF,gEAAgE;AAChE,eAAO,MAAM,eAAe,QAAkC,CAAC;AAC/D,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,QAAwC,CAAC;AAC1E,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,QAAwC,CAAC;AAItE,eAAO,MAAM,cAAc,EAAE,OAAO,GAAG,MACW,CAAC;AAGnD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,mBAAmB,CAAC,YAAY,SAAW,GAAG,MAAM,CAEnE;AAuBD,eAAO,MAAM,oBAAoB,UAAuB,CAAC;AAezD,eAAO,MAAM,sBAAsB,UAGjB,CAAC;AACnB,gKAAgK;AAChK,eAAO,MAAM,mBAAmB,QAA0D,CAAC;AAC3F,+GAA+G;AAC/G,eAAO,MAAM,+BAA+B,QAAoE,CAAC;AACjH,6FAA6F;AAC7F,eAAO,MAAM,4BAA4B,QAAgE,CAAC;AAC1G,yGAAyG;AACzG,eAAO,MAAM,kCAAkC,QAAgE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -6,7 +6,10 @@
6
6
  import os from 'os';
7
7
  import path from 'path';
8
8
  import { fileURLToPath } from 'url';
9
+ import { parseOidcScopesSupported } from './http/oidc-scopes.js';
10
+ import { normalizeRedisUrl } from './utils/normalize-redis-url.js';
9
11
  import { resolveKairosWorkDir } from './utils/kairos-work-dir-resolve.js';
12
+ export { DEFAULT_OIDC_SCOPES_SUPPORTED, parseOidcScopesSupported } from './http/oidc-scopes.js';
10
13
  /** Throws if key is missing or empty (after trim). Use for vars that must be set. */
11
14
  function getEnvRequired(key, errorMessage) {
12
15
  const val = process.env[key];
@@ -45,9 +48,10 @@ function getEnvBoolean(key, defaultValue) {
45
48
  return true;
46
49
  return defaultValue;
47
50
  }
48
- // REDIS_URL set (non-empty) → Redis; unset or empty → in-memory backend
49
- export const REDIS_URL = (getEnvString('REDIS_URL', '')).trim();
50
- export const USE_REDIS = REDIS_URL.length > 0;
51
+ // REDIS_URL set (non-empty) → Redis; unset or empty → in-memory backend; inject REDIS_PASSWORD when credentials are missing.
52
+ const REDIS_URL_RAW = getEnvString('REDIS_URL', '');
53
+ const REDIS_PASSWORD = getEnvString('REDIS_PASSWORD', '');
54
+ export const REDIS_URL = normalizeRedisUrl(REDIS_URL_RAW, REDIS_PASSWORD);
51
55
  export const KAIROS_REDIS_PREFIX = getEnvString('KAIROS_REDIS_PREFIX', 'kairos:');
52
56
  const TRACE_STORE_DIR_RAW = getEnvString('KAIROS_TRACE_STORE_DIR', path.join(os.homedir(), '.local', 'share', 'kairos', 'traces')).trim();
53
57
  export const KAIROS_TRACE_STORE_DIR = path.isAbsolute(TRACE_STORE_DIR_RAW)
@@ -131,6 +135,12 @@ export const AUTH_CALLBACK_BASE_URL = getEnvString('AUTH_CALLBACK_BASE_URL', '')
131
135
  export const SESSION_SECRET = getEnvString('SESSION_SECRET', '');
132
136
  /** Session cookie and payload exp lifetime in seconds; default 7 days. */
133
137
  export const SESSION_MAX_AGE_SEC = getEnvInt('SESSION_MAX_AGE_SEC', 604800);
138
+ /**
139
+ * Comma-separated scopes advertised from `/.well-known/oauth-protected-resource`.
140
+ * Defaults to the baseline OIDC scopes required by KAIROS discovery; set explicitly
141
+ * to add scopes such as `offline_access` without rebuilding the container image.
142
+ */
143
+ export const OIDC_SCOPES_SUPPORTED = parseOidcScopesSupported(process.env['KAIROS_OIDC_SCOPES_SUPPORTED']);
134
144
  /** When set to oidc_bearer, Bearer tokens are validated (issuer, audience, exp); when unset, Bearer presence only (backward compat). */
135
145
  export const AUTH_MODE = getEnvString('AUTH_MODE', '');
136
146
  /** Comma-separated list of trusted JWT issuers (e.g. http://keycloak:8080/realms/kairos-dev). Required when AUTH_MODE=oidc_bearer. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  slug: create-new-protocol
3
- version: "4.2.1"
3
+ version: "4.2.2"
4
4
  title: Create / Review / Refactor KAIROS Protocol
5
5
  ---
6
6
 
@@ -142,21 +142,11 @@ For `fix`: ask which adapter to fix and what the issue is.
142
142
  - Which parts stay in the router, and which belong only in extensions?
143
143
 
144
144
  **4. If Chain pattern:**
145
- - Each adapter in the chain is self-contained with its own Activation Patterns
146
- and Reward Signal.
147
- - The Reward Signal layer of adapter N uses an `mcp` contract with
148
- `forward` + slug URI to link to adapter N+1.
149
- - Each adapter handles one cohesive concern (e.g. prepare, plan, code, deliver).
150
- - The chain entry point is what `activate` resolves to. Subsequent links use
151
- `forward` + slug directly — no `activate` needed mid-chain.
152
- - Every mid-chain adapter must include `chain_root: <entry-slug>` in its
153
- frontmatter. This causes `activate` to collapse any direct match for a
154
- mid-chain adapter to the chain root's URI, preventing out-of-order execution.
155
- - Every mid-chain adapter should include a **Prerequisites** paragraph in its
156
- Activation Patterns listing the inputs required from earlier phases and
157
- directing the agent to start from the chain root if those inputs are missing.
158
- - Use `activate` mid-chain only when the target genuinely depends on runtime
159
- classification that the current adapter cannot resolve.
145
+
146
+ Load `protocol-linking-guide` for full chain structuring rules
147
+ (`forward` with `kairos://adapter/protocol-linking-guide`).
148
+
149
+ Collect:
160
150
  - What are the chain links and their concerns?
161
151
  - What is the minimum number of links that helps weaker models?
162
152
  - Which link is the chain entry point (matched by `activate`)?
@@ -266,13 +256,8 @@ Every protocol gets a short, unique, lowercase-hyphenated `slug`.
266
256
 
267
257
  **Challenge types:**
268
258
 
269
- | Type | Use for | Engine validates |
270
- |---|---|---|
271
- | `comment` | Analysis, drafting, structured summaries | `min_length` |
272
- | `user_input` | Human confirmation or choice | Non-empty response |
273
- | `mcp` | Required tool call | Tool called successfully |
274
- | `mcp` + `arguments` | Chain link to another adapter via `forward` | Tool called with matching arguments |
275
- | `shell` | Command execution or state verification | Exit code 0 |
259
+ Load `challenge-type-guide` for decision rules, JSON formats, and interpreter
260
+ selection (`forward` with `kairos://adapter/challenge-type-guide`).
276
261
 
277
262
  **If Router pattern:** draft the router and each extension as separate files.
278
263
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "4.2.1"
2
+ version: "4.2.2"
3
3
  slug: refine-search
4
4
  title: Get help refining your search
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "4.2.1"
2
+ version: "4.2.2"
3
3
  slug: create-new-protocol-review
4
4
  title: Review and Publish New KAIROS Protocol
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "4.2.1"
2
+ version: "4.2.2"
3
3
  slug: challenge-type-guide
4
4
  title: Challenge Type Selection Guide
5
5
  ---
@@ -179,6 +179,5 @@ The agent can now:
179
179
  1. pick the correct challenge type for each protocol step
180
180
  2. match challenge type to the step's mode
181
181
  3. choose the right interpreter
182
- 4. avoid anti-patterns
183
- 5. apply working-directory and security rules
184
- 6. use stronger verification patterns instead of weak narrative checks
182
+ 4. apply working-directory and security rules
183
+ 5. use stronger verification patterns instead of weak narrative checks
@@ -1,5 +1,5 @@
1
1
  ---
2
- version: "4.2.1"
2
+ version: "4.2.2"
3
3
  slug: phase-critic
4
4
  title: Phase Critic
5
5
  ---
@@ -0,0 +1,176 @@
1
+ ---
2
+ version: "4.2.2"
3
+ slug: protocol-linking-guide
4
+ title: Protocol Linking Guide
5
+ ---
6
+
7
+
8
+
9
+ # Protocol Linking Guide
10
+
11
+ Decision rules for structuring adapter relationships: layers vs chains,
12
+ `activate` vs `forward` + slug, chain-root collapsing, and MCP argument
13
+ validation for deterministic cross-protocol linking.
14
+
15
+ ## Activation Patterns
16
+
17
+ **Typically invoked by:** `create-new-protocol` and
18
+ `create-new-protocol-review`.
19
+
20
+ **Can be invoked directly when agent needs:**
21
+ - "layers vs chains" / "when to split into multiple adapters"
22
+ - "how to link adapters" / "cross-protocol linking"
23
+ - "activate vs forward" / "when to use forward with slug"
24
+ - "chain-root collapsing" / "how chain_root works"
25
+
26
+ **Trigger pattern:** **layers** / **chains** / **linking** / **forward** +
27
+ (slug | adapter | protocol).
28
+
29
+ **Must Never:**
30
+ - Be used as an execution protocol.
31
+ - Recommend chaining when layers suffice.
32
+
33
+ **Must Always:**
34
+ - Be consulted before splitting a protocol into multiple adapters.
35
+ - Be consulted before adding `forward` calls or `chain_root` frontmatter.
36
+
37
+ **Good trigger examples:**
38
+ - "my protocol is 400 lines, should I split?" → load this
39
+ - "how do I link adapter A to adapter B?" → load this
40
+ - "what is chain_root?" → load this
41
+
42
+ **Bad trigger examples:**
43
+ - "which challenge type for this step?" → use `challenge-type-guide`
44
+ - "create a new protocol" → use `create-new-protocol`
45
+
46
+ ## Layers vs Chains
47
+
48
+ **Layers** (H2 steps within one adapter) are the preferred unit of work. Use
49
+ layers when all steps fit in one adapter under 350 lines and serve a single
50
+ cohesive concern.
51
+
52
+ **Chain via `forward` + slug** — use only when:
53
+ - the adapter exceeds 350 lines
54
+ - weaker models cannot follow the full adapter in one pass
55
+ - runtime routing to different adapters is needed (Router pattern)
56
+ - a step is reusable across multiple parent adapters (e.g. `phase-critic`)
57
+
58
+ Chaining is NOT a replacement for layers. A 6-step protocol that fits in 350
59
+ lines should stay as one adapter with 6 H2 layers.
60
+
61
+ ```json
62
+ {"contract":{"type":"comment","comment":{"min_length":30},"required":true}}
63
+ ```
64
+
65
+ ## `activate` vs `forward` + slug
66
+
67
+ | Situation | Use |
68
+ |---|---|
69
+ | Initial user-intent resolution | `activate` |
70
+ | Target adapter is known at authoring time | `forward` + slug |
71
+ | Target depends on runtime classification the current adapter cannot resolve | `activate` |
72
+ | Linking to the next adapter in a chain | `forward` + slug |
73
+ | Reusable sub-protocol invoked by multiple parents | `forward` + slug |
74
+
75
+ Never call `activate` just to get a slug you already know — it wastes a
76
+ round-trip and introduces non-determinism.
77
+
78
+ ```json
79
+ {"contract":{"type":"comment","comment":{"min_length":30},"required":true}}
80
+ ```
81
+
82
+ ## System adapters vs user adapters
83
+
84
+ System adapters chain using static UUIDs in `next_action`:
85
+
86
+ ```text
87
+ call forward with kairos://adapter/00000000-0000-0000-0000-000000002005 ...
88
+ ```
89
+
90
+ User-authored adapters use the slug instead:
91
+
92
+ ```text
93
+ call forward with kairos://adapter/implement-terraform ...
94
+ ```
95
+
96
+ Slugs are globally unique (enforced by `train`), so resolution is
97
+ deterministic — no scoring, no ambiguity.
98
+
99
+ ```json
100
+ {"contract":{"type":"comment","comment":{"min_length":30},"required":true}}
101
+ ```
102
+
103
+ ## MCP argument validation for chain links
104
+
105
+ A bare `mcp` contract checks only the tool name:
106
+
107
+ ```json
108
+ {"contract":{"type":"mcp","mcp":{"tool_name":"forward"},"required":true}}
109
+ ```
110
+
111
+ An `mcp` contract **with `arguments`** verifies the exact target:
112
+
113
+ ```json
114
+ {"contract":{"type":"mcp","mcp":{"tool_name":"forward","arguments":{"uri":"kairos://adapter/code-review-policy"}},"required":true}}
115
+ ```
116
+
117
+ The server validates that `solution.mcp.arguments` is a superset of the
118
+ contract's `mcp.arguments` (subset/deep matching). This proves the agent
119
+ called `forward` with the correct slug, not just any `forward` call.
120
+
121
+ Use the `arguments` form whenever a step's purpose is to invoke a specific
122
+ known adapter.
123
+
124
+ ```json
125
+ {"contract":{"type":"comment","comment":{"min_length":30},"required":true}}
126
+ ```
127
+
128
+ ## Chain-root collapsing
129
+
130
+ When a chain has multiple adapters, `activate` might match a mid-chain adapter
131
+ directly. Without protection, the agent would start at the wrong step, missing
132
+ prerequisite context gathered by earlier phases.
133
+
134
+ **`chain_root` frontmatter field** solves this at the server level. Add it to
135
+ every mid-chain adapter:
136
+
137
+ ```yaml
138
+ ---
139
+ slug: implement-plan
140
+ version: 1.0.0
141
+ chain_root: implement
142
+ ---
143
+ ```
144
+
145
+ **Server behaviour:** When `activate` returns a match that has `chain_root`,
146
+ the server resolves the slug to the root adapter's URI and replaces the
147
+ choice's `uri` and `next_action` to point there. Multiple mid-chain matches
148
+ from the same chain are deduplicated to a single entry. The agent always
149
+ starts at the chain entry point.
150
+
151
+ **Defense in depth — protocol-level safeguards:** Each mid-chain adapter
152
+ should include a **Prerequisites** paragraph in its Activation Patterns
153
+ listing inputs required from earlier phases and directing the agent to start
154
+ from the chain root if those inputs are missing. This catches direct `forward`
155
+ calls that bypass `activate`.
156
+
157
+ **Rules:**
158
+ - The chain root adapter must NOT have `chain_root` in its frontmatter.
159
+ - `chain_root` must refer to an existing slug (the chain entry point).
160
+ - `forward` calls within a chain are unaffected — `chain_root` only changes
161
+ `activate` output routing.
162
+
163
+ ```json
164
+ {"contract":{"type":"comment","comment":{"min_length":30},"required":true}}
165
+ ```
166
+
167
+ ## Reward Signal
168
+
169
+ Only reachable after all prior steps are solved.
170
+
171
+ The agent can now:
172
+ 1. decide when to use layers vs chains
173
+ 2. choose `activate` vs `forward` + slug correctly
174
+ 3. distinguish system-UUID linking from user-slug linking
175
+ 4. apply MCP argument validation for deterministic chain links
176
+ 5. implement `chain_root` collapsing with defense-in-depth safeguards
@@ -37,6 +37,7 @@ synonyms. Prefer **adapter** in new copy when you are not mirroring user-facing
37
37
  | UUID | Slug | Purpose |
38
38
  |------|------|---------|
39
39
  | [2004](00000000-0000-0000-0000-000000002004.md) | `challenge-type-guide` | Challenge type selection, interpreter choice, and stronger verification patterns |
40
+ | [2006](00000000-0000-0000-0000-000000002006.md) | `protocol-linking-guide` | Layers vs chains, `activate` vs `forward` + slug, chain-root collapsing, MCP argument validation |
40
41
 
41
42
  ## Cross-Protocol Linking
42
43
 
@@ -1 +1 @@
1
- {"version":3,"file":"http-health-routes.d.ts","sourceRoot":"","sources":["../../src/http/http-health-routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMhE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,QAmGrF"}
1
+ {"version":3,"file":"http-health-routes.d.ts","sourceRoot":"","sources":["../../src/http/http-health-routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMhE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,QAsGrF"}
@@ -1,7 +1,7 @@
1
1
  import { embeddingService } from '../services/embedding/service.js';
2
2
  import { keyValueStore } from '../services/key-value-store-factory.js';
3
3
  import { getBuildVersion } from '../utils/build-version.js';
4
- import { AUTH_ENABLED, USE_REDIS } from '../config.js';
4
+ import { AUTH_ENABLED, REDIS_URL } from '../config.js';
5
5
  /**
6
6
  * Set up health check and basic info routes
7
7
  * @param app Express application instance
@@ -10,10 +10,10 @@ import { AUTH_ENABLED, USE_REDIS } from '../config.js';
10
10
  export function setupHealthRoutes(app, memoryStore) {
11
11
  // Health check endpoint (non-MCP)
12
12
  app.get('/health', async (req, res) => {
13
- // Qdrant is the critical dependency for store functionality tests.
13
+ // Configured dependencies are critical for readiness. If the process declares a backend,
14
+ // /health must fail when that backend is unreachable or unauthenticated.
14
15
  const qdrantHealthy = await memoryStore.checkHealth().catch(() => false);
15
- // Redis and embedding providers are non-critical for allowing tests to proceed,
16
- // but reported for diagnostics.
16
+ const redisConfigured = REDIS_URL.length > 0;
17
17
  const redisHealthy = keyValueStore.isConnected();
18
18
  let teiHealth = { healthy: false, message: 'Embedding provider not configured' };
19
19
  // Run embedding health check but bound it with a short timeout so /health is responsive
@@ -41,25 +41,28 @@ export function setupHealthRoutes(app, memoryStore) {
41
41
  }
42
42
  const teiHealthy = !!teiHealth.healthy;
43
43
  const embeddingCfg = embeddingService.getConfig ? embeddingService.getConfig() : { provider: 'unknown' };
44
- // Only treat Qdrant as a blocking failure so tests that exercise store functionality can proceed.
45
- const criticalHealthy = qdrantHealthy;
46
- const nonCriticalAllHealthy = redisHealthy && teiHealthy;
47
- const healthStatus = criticalHealthy ? (nonCriticalAllHealthy ? 'healthy' : 'degraded') : 'unhealthy';
44
+ const embeddingConfigured = embeddingCfg.provider && embeddingCfg.provider !== 'none';
45
+ const criticalHealthy = qdrantHealthy &&
46
+ (!redisConfigured || redisHealthy) &&
47
+ (!embeddingConfigured || teiHealthy);
48
+ const healthStatus = criticalHealthy ? 'healthy' : 'unhealthy';
48
49
  const statusCode = criticalHealthy ? 200 : 503;
49
50
  const buildVersion = getBuildVersion();
50
51
  const uptime = Math.floor(process.uptime());
51
52
  const dependencies = {
52
53
  qdrant: qdrantHealthy ? 'healthy' : 'unhealthy',
53
- embedding: teiHealthy ? 'healthy' : 'unhealthy'
54
+ embedding: embeddingConfigured
55
+ ? (teiHealthy ? 'healthy' : 'unhealthy')
56
+ : 'disabled'
54
57
  };
55
- if (USE_REDIS) {
58
+ if (redisConfigured) {
56
59
  dependencies['redis'] = redisHealthy ? 'healthy' : 'unhealthy';
57
60
  }
58
61
  else {
59
62
  dependencies['cache'] = 'healthy (memory)';
60
63
  }
61
64
  const details = {
62
- cacheBackend: USE_REDIS ? 'redis' : 'memory'
65
+ cacheBackend: redisConfigured ? 'redis' : 'memory'
63
66
  };
64
67
  if (req.auth?.sub) {
65
68
  details['embedding'] = teiHealth.message;
@@ -1 +1 @@
1
- {"version":3,"file":"http-health-routes.js","sourceRoot":"","sources":["../../src/http/http-health-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-health-routes.js","sourceRoot":"","sources":["../../src/http/http-health-routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-well-known.d.ts","sourceRoot":"","sources":["../../src/http/http-well-known.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAI1D,wBAAgB,8BAA8B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBxE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAejD;AAoDD,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW3G"}
1
+ {"version":3,"file":"http-well-known.d.ts","sourceRoot":"","sources":["../../src/http/http-well-known.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAW1D,wBAAgB,8BAA8B,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBxE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAejD;AA+ED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW3G"}
@@ -1,4 +1,4 @@
1
- import { AUTH_CALLBACK_BASE_URL, KEYCLOAK_URL, KEYCLOAK_INTERNAL_URL, KEYCLOAK_REALM, KEYCLOAK_CLI_CLIENT_ID } from '../config.js';
1
+ import { AUTH_CALLBACK_BASE_URL, KEYCLOAK_URL, KEYCLOAK_INTERNAL_URL, KEYCLOAK_REALM, KEYCLOAK_CLI_CLIENT_ID, OIDC_SCOPES_SUPPORTED } from '../config.js';
2
2
  import { structuredLogger } from '../utils/structured-logger.js';
3
3
  export function buildProtectedResourceMetadata() {
4
4
  const base = AUTH_CALLBACK_BASE_URL.replace(/\/$/, '');
@@ -9,7 +9,7 @@ export function buildProtectedResourceMetadata() {
9
9
  const metadata = {
10
10
  resource,
11
11
  authorization_servers: issuer ? [issuer] : [],
12
- scopes_supported: ['openid', 'profile', 'email', 'kairos-groups'],
12
+ scopes_supported: OIDC_SCOPES_SUPPORTED,
13
13
  bearer_methods_supported: ['header'],
14
14
  resource_name: 'KAIROS MCP'
15
15
  };
@@ -51,6 +51,26 @@ function keycloakFetchBase() {
51
51
  }
52
52
  return external;
53
53
  }
54
+ function rewriteInternalKeycloakUrls(value) {
55
+ const external = KEYCLOAK_URL ? KEYCLOAK_URL.replace(/\/$/, '') : '';
56
+ const internal = KEYCLOAK_INTERNAL_URL ? KEYCLOAK_INTERNAL_URL.replace(/\/$/, '') : '';
57
+ if (!external || !internal || external === internal) {
58
+ return value;
59
+ }
60
+ if (typeof value === 'string') {
61
+ if (value === internal || value.startsWith(`${internal}/`)) {
62
+ return `${external}${value.slice(internal.length)}`;
63
+ }
64
+ return value;
65
+ }
66
+ if (Array.isArray(value)) {
67
+ return value.map((entry) => rewriteInternalKeycloakUrls(entry));
68
+ }
69
+ if (value && typeof value === 'object') {
70
+ return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, rewriteInternalKeycloakUrls(entry)]));
71
+ }
72
+ return value;
73
+ }
54
74
  async function fetchUpstreamAuthServerMetadata() {
55
75
  const now = Date.now();
56
76
  if (authServerMetadataCache && now < authServerMetadataCache.expiresAt) {
@@ -79,7 +99,7 @@ async function fetchUpstreamAuthServerMetadata() {
79
99
  }
80
100
  }
81
101
  export function buildAuthorizationServerMetadata(upstream) {
82
- const metadata = { ...upstream };
102
+ const metadata = rewriteInternalKeycloakUrls({ ...upstream });
83
103
  // Preserve registration_endpoint from Keycloak — MCP hosts (e.g. Cursor streamable HTTP)
84
104
  // require it for Dynamic Client Registration. Stripping it causes:
85
105
  // "Incompatible auth server: does not support dynamic client registration"
@@ -1 +1 @@
1
- {"version":3,"file":"http-well-known.js","sourceRoot":"","sources":["../../src/http/http-well-known.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-well-known.js","sourceRoot":"","sources":["../../src/http/http-well-known.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,UAAU,8BAA8B;IAC5C,MAAM,IAAI,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC;IAC/B,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,cAAc,EAAE;QAC/D,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAA4B;QACxC,QAAQ;QACR,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7C,gBAAgB,EAAE,qBAAqB;QACvC,wBAAwB,EAAE,CAAC,QAAQ,CAAC;QACpC,aAAa,EAAE,YAAY;KAC5B,CAAC;IACF,IAAI,MAAM,EAAE,CAAC;QACX,QAAQ,CAAC,wBAAwB,CAAC,GAAG,GAAG,MAAM,+BAA+B,CAAC;QAC9E,QAAQ,CAAC,gBAAgB,CAAC,GAAG,GAAG,MAAM,gCAAgC,CAAC;IACzE,CAAC;IACD,QAAQ,CAAC,kCAAkC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACnE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,QAAQ,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAAC;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,gBAAgB,CAAC,IAAI,CACnB,6KAA6K,CAC9K,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC/C,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,uCAAuC,EAAE,OAAO,CAAC,CAAC;IAC1D,GAAG,CAAC,GAAG,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;IAE9D,gCAAgC,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,iDAAiD;AACjD,8EAA8E;AAE9E,gEAAgE;AAChE,IAAI,uBAAuB,GAAgE,IAAI,CAAC;AAChG,MAAM,8BAA8B,GAAG,GAAG,CAAC,CAAC,QAAQ;AAEpD;;;GAGG;AACH,SAAS,iBAAiB;IACxB,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,IAAI,qBAAqB,IAAI,QAAQ,EAAE,CAAC;QACtC,OAAO,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,2BAA2B,CAAI,KAAQ;IAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC3D,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAO,CAAC;QAC3D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAM,CAAC;IACvE,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,CAClF,CAAC;IACT,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,+BAA+B;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,uBAAuB,IAAI,GAAG,GAAG,uBAAuB,CAAC,SAAS,EAAE,CAAC;QACvE,OAAO,uBAAuB,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,GAAG,GAAG,GAAG,IAAI,WAAW,cAAc,mCAAmC,CAAC;IAChF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,gBAAgB,CAAC,IAAI,CAAC,mDAAmD,GAAG,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC;YAClG,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC3D,uBAAuB,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG,8BAA8B,GAAG,IAAI,EAAE,CAAC;QAC3F,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,gBAAgB,CAAC,IAAI,CACnB,+DAA+D,GAAG,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7H,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,QAAiC;IAChF,MAAM,QAAQ,GAAG,2BAA2B,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAE9D,yFAAyF;IACzF,mEAAmE;IACnE,6EAA6E;IAC7E,2FAA2F;IAE3F,QAAQ,CAAC,uCAAuC,CAAC,GAAG,IAAI,CAAC;IAEzD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gCAAgC,CAAC,GAAY;IACpD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAa,EAAE,GAAa,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,+BAA+B,EAAE,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,yCAAyC,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_OIDC_SCOPES_SUPPORTED: readonly string[];
2
+ export declare function parseOidcScopesSupported(raw: string | undefined): readonly string[];
3
+ //# sourceMappingURL=oidc-scopes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-scopes.d.ts","sourceRoot":"","sources":["../../src/http/oidc-scopes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAKzD,CAAC;AAEH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,CAqBnF"}
@@ -0,0 +1,20 @@
1
+ export const DEFAULT_OIDC_SCOPES_SUPPORTED = Object.freeze([
2
+ 'openid',
3
+ 'profile',
4
+ 'email',
5
+ 'kairos-groups'
6
+ ]);
7
+ export function parseOidcScopesSupported(raw) {
8
+ if (raw === undefined)
9
+ return DEFAULT_OIDC_SCOPES_SUPPORTED;
10
+ const parsed = Array.from(new Set(raw
11
+ .split(',')
12
+ .map((scope) => scope.trim())
13
+ .filter(Boolean)));
14
+ if (parsed.length === 0) {
15
+ process.emitWarning('KAIROS_OIDC_SCOPES_SUPPORTED resolved to an empty list; falling back to default scopes.', { code: 'KAIROS_OIDC_SCOPES_SUPPORTED_EMPTY' });
16
+ return DEFAULT_OIDC_SCOPES_SUPPORTED;
17
+ }
18
+ return Object.freeze(parsed);
19
+ }
20
+ //# sourceMappingURL=oidc-scopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-scopes.js","sourceRoot":"","sources":["../../src/http/oidc-scopes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC5E,QAAQ;IACR,SAAS;IACT,OAAO;IACP,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,UAAU,wBAAwB,CAAC,GAAuB;IAC9D,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,6BAA6B,CAAC;IAE5D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,IAAI,GAAG,CACL,GAAG;SACA,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC,CACnB,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,WAAW,CACjB,yFAAyF,EACzF,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAC/C,CAAC;QACF,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -30,6 +30,7 @@ export declare const mcpResources: {
30
30
  "create-new-protocol-review": string;
31
31
  "challenge-type-guide": string;
32
32
  "phase-critic": string;
33
+ "protocol-linking-guide": string;
33
34
  };
34
35
  };
35
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"embedded-mcp-resources.d.ts","sourceRoot":"","sources":["../../src/resources/embedded-mcp-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;CAwBxB,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAElD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAElD;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE9C;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE5C;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE7C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,CAgBjE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAmB3D"}
1
+ {"version":3,"file":"embedded-mcp-resources.d.ts","sourceRoot":"","sources":["../../src/resources/embedded-mcp-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;CAyBxB,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAElD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAElD;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE9C;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE5C;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAE7C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,CAgBjE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAmB3D"}