@debian777/kairos-mcp 3.3.3 → 3.4.0

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 (94) hide show
  1. package/README.md +179 -105
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/commands/mint.d.ts.map +1 -1
  4. package/dist/cli/commands/mint.js +9 -1
  5. package/dist/cli/commands/mint.js.map +1 -1
  6. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002001.md +124 -162
  7. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002002.md +36 -34
  8. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002003.md +195 -0
  9. package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002004.md +240 -0
  10. package/dist/embed-docs/mem/README.md +24 -0
  11. package/dist/resources/docs-resources.d.ts.map +1 -1
  12. package/dist/resources/docs-resources.js +9 -1
  13. package/dist/resources/docs-resources.js.map +1 -1
  14. package/dist/resources/embedded-mcp-resources.d.ts +14 -0
  15. package/dist/resources/embedded-mcp-resources.d.ts.map +1 -1
  16. package/dist/resources/embedded-mcp-resources.js +33 -9
  17. package/dist/resources/embedded-mcp-resources.js.map +1 -1
  18. package/dist/resources/mem-resources-boot.d.ts.map +1 -1
  19. package/dist/resources/mem-resources-boot.js +11 -3
  20. package/dist/resources/mem-resources-boot.js.map +1 -1
  21. package/dist/services/chain-step-count.d.ts +23 -0
  22. package/dist/services/chain-step-count.d.ts.map +1 -0
  23. package/dist/services/chain-step-count.js +23 -0
  24. package/dist/services/chain-step-count.js.map +1 -0
  25. package/dist/services/chain-utils.d.ts.map +1 -1
  26. package/dist/services/chain-utils.js +14 -9
  27. package/dist/services/chain-utils.js.map +1 -1
  28. package/dist/services/memory/store-methods.d.ts.map +1 -1
  29. package/dist/services/memory/store-methods.js +20 -12
  30. package/dist/services/memory/store-methods.js.map +1 -1
  31. package/dist/services/qdrant/memory-retrieval.d.ts +6 -1
  32. package/dist/services/qdrant/memory-retrieval.d.ts.map +1 -1
  33. package/dist/services/qdrant/memory-retrieval.js +21 -3
  34. package/dist/services/qdrant/memory-retrieval.js.map +1 -1
  35. package/dist/services/qdrant/service.d.ts +1 -1
  36. package/dist/services/qdrant/service.d.ts.map +1 -1
  37. package/dist/services/qdrant/service.js +2 -2
  38. package/dist/services/qdrant/service.js.map +1 -1
  39. package/dist/tools/kairos-challenge-display.d.ts.map +1 -1
  40. package/dist/tools/kairos-challenge-display.js +32 -2
  41. package/dist/tools/kairos-challenge-display.js.map +1 -1
  42. package/dist/tools/kairos_begin.d.ts +5 -0
  43. package/dist/tools/kairos_begin.d.ts.map +1 -1
  44. package/dist/tools/kairos_begin.js +8 -8
  45. package/dist/tools/kairos_begin.js.map +1 -1
  46. package/dist/tools/kairos_begin_schema.d.ts +5 -0
  47. package/dist/tools/kairos_begin_schema.d.ts.map +1 -1
  48. package/dist/tools/kairos_begin_schema.js +6 -1
  49. package/dist/tools/kairos_begin_schema.js.map +1 -1
  50. package/dist/tools/kairos_dump.js +1 -1
  51. package/dist/tools/kairos_dump.js.map +1 -1
  52. package/dist/tools/kairos_next-previous-step.d.ts.map +1 -1
  53. package/dist/tools/kairos_next-previous-step.js +11 -3
  54. package/dist/tools/kairos_next-previous-step.js.map +1 -1
  55. package/dist/tools/kairos_next_schema.d.ts +5 -0
  56. package/dist/tools/kairos_next_schema.d.ts.map +1 -1
  57. package/dist/tools/kairos_next_schema.js +7 -1
  58. package/dist/tools/kairos_next_schema.js.map +1 -1
  59. package/dist/tools/shell-challenge-invocation.d.ts +32 -0
  60. package/dist/tools/shell-challenge-invocation.d.ts.map +1 -0
  61. package/dist/tools/shell-challenge-invocation.js +113 -0
  62. package/dist/tools/shell-challenge-invocation.js.map +1 -0
  63. package/dist/types/memory.d.ts +10 -0
  64. package/dist/types/memory.d.ts.map +1 -1
  65. package/dist/ui/assets/{AccountPage-kxmPtqQP.js → AccountPage-BL4GHk9f.js} +1 -1
  66. package/dist/ui/assets/{ErrorAlert-ME7tEJ6X.js → ErrorAlert-KEgeKl22.js} +1 -1
  67. package/dist/ui/assets/{HomePage-DxiAsvs-.js → HomePage-DWAvtfBC.js} +1 -1
  68. package/dist/ui/assets/KairosPage-DZpZ35yd.js +1 -0
  69. package/dist/ui/assets/NotFoundPage-BrPNDuhe.js +1 -0
  70. package/dist/ui/assets/{ProtocolDetailPage-DKaSVepL.js → ProtocolDetailPage-R0XlRsIa.js} +1 -1
  71. package/dist/ui/assets/ProtocolEditPage-CzAnruE6.js +5 -0
  72. package/dist/ui/assets/{RenderedMarkdown-DjbuQlBl.js → RenderedMarkdown-CMavJdAJ.js} +1 -1
  73. package/dist/ui/assets/RunGuidedPage-Cm68aCC7.js +1 -0
  74. package/dist/ui/assets/{RunsPage-ctnsEF2U.js → RunsPage-DcDoMCq1.js} +1 -1
  75. package/dist/ui/assets/{SkillBundlePage-CaWW5oGq.js → SkillBundlePage-LuYOnVDQ.js} +1 -1
  76. package/dist/ui/assets/index-0G3wloMr.css +2 -0
  77. package/dist/ui/assets/index-S4_XWO39.js +8 -0
  78. package/dist/ui/assets/{tiptap-kMFBDujG.js → tiptap-CzV8H9Mb.js} +22 -22
  79. package/dist/ui/assets/useProtocol-C3ClZHlN.js +4 -0
  80. package/dist/ui/assets/{useSpaces-BV6eUjY3.js → useSpaces-DQEfGh8E.js} +1 -1
  81. package/dist/ui/assets/{vendor-GiUVcjs7.js → vendor-CVpIjmrD.js} +1 -1
  82. package/dist/ui/index.html +4 -4
  83. package/dist/utils/space-filter.d.ts +8 -0
  84. package/dist/utils/space-filter.d.ts.map +1 -1
  85. package/dist/utils/space-filter.js +18 -0
  86. package/dist/utils/space-filter.js.map +1 -1
  87. package/package.json +2 -1
  88. package/dist/ui/assets/KairosPage-BkqYs3-_.js +0 -1
  89. package/dist/ui/assets/NotFoundPage-DyfbQ-6G.js +0 -1
  90. package/dist/ui/assets/ProtocolEditPage-D-aTavvx.js +0 -1
  91. package/dist/ui/assets/RunGuidedPage-BUD0MaGh.js +0 -1
  92. package/dist/ui/assets/index-Duu55PkQ.css +0 -2
  93. package/dist/ui/assets/index-bQSxsGMU.js +0 -8
  94. package/dist/ui/assets/useProtocol-BruWpIzq.js +0 -4
@@ -0,0 +1,195 @@
1
+ ---
2
+ version: "3.4.0"
3
+ slug: create-new-protocol-review
4
+ title: Review and Publish New KAIROS Protocol
5
+ ---
6
+
7
+ # Review and Publish New KAIROS Protocol
8
+
9
+ Validate a drafted KAIROS protocol through format review, stranger review, user approval, and mint. Invoked by Chain 1 (`create-new-protocol`) or directly to re-review an existing draft.
10
+
11
+ ## Natural Language Triggers
12
+
13
+ **Typically invoked by:** Chain 1's chain link step via `kairos_begin(key: "create-new-protocol-review")`.
14
+
15
+ **Can be invoked directly when user says:**
16
+
17
+ - "review my protocol draft" / "validate this protocol"
18
+ - "re-run format review on my draft"
19
+ - "mint my protocol" (when a draft already exists)
20
+
21
+ **Trigger pattern:** **review** / **validate** / **mint** + (protocol / draft).
22
+
23
+ **Must Never:**
24
+ - Run without `$KAIROS_WORK_DIR` set and containing `draft-protocol.md`.
25
+ - Skip format or stranger review steps.
26
+
27
+ **Must Always:**
28
+ - Verify `$KAIROS_WORK_DIR` and draft file exist before proceeding.
29
+ - Require both reviews to pass before presenting to user.
30
+ - Freeze the draft checksum after reviews pass and verify it before minting.
31
+ - Clean up `$KAIROS_WORK_DIR` after minting (or on cancellation).
32
+
33
+ **Good trigger examples:**
34
+ - Chained from `create-new-protocol` → run this protocol
35
+ - "Review and mint my protocol draft" → run this protocol
36
+
37
+ **Bad trigger examples:**
38
+ - "Create a new protocol" → use `create-new-protocol`, not this
39
+ - "Search for a protocol" → use `kairos_search`, not this
40
+
41
+ ---
42
+
43
+ ## Prerequisites
44
+
45
+ This protocol requires `$KAIROS_WORK_DIR` from Chain 1 (engine-provided, persists across chained protocols):
46
+
47
+ - `$KAIROS_WORK_DIR/draft-protocol.md` — the drafted protocol file
48
+ - `$KAIROS_WORK_DIR/requirements.md` — requirements summary (optional, for context)
49
+
50
+ **If invoked directly** (no Chain 1), the engine creates `$KAIROS_WORK_DIR` at `kairos_begin`. Copy the draft file there before proceeding.
51
+
52
+ **Security:** Do NOT write credentials, tokens, or secrets into any file in `$KAIROS_WORK_DIR`.
53
+
54
+ ---
55
+
56
+ ## Format Review [SUBAGENT]
57
+
58
+ Delegate format verification to a subagent. The subagent writes its verdict to `$KAIROS_WORK_DIR/format-review.md`.
59
+
60
+ **Input:** `$KAIROS_WORK_DIR/draft-protocol.md`.
61
+
62
+ **Subagent task:**
63
+
64
+ 1. Read `$KAIROS_WORK_DIR/draft-protocol.md`.
65
+ 2. Verify protocol structure compliance:
66
+ - H1 present (exactly one)
67
+ - First H2 is Natural Language Triggers (with all 6 subsections: trigger phrases, trigger pattern, Must Never, Must Always, good examples, bad examples)
68
+ - Last H2 is Completion Rule
69
+ - Every middle H2 has a challenge block
70
+ - No duplicate H2 headings
71
+ 3. Verify subagent eligibility per step:
72
+ - Every H2 step has `[SUBAGENT]` tag
73
+ - Every step has explicit `**Input:**`, `**Actions:**`, `**Output:**`
74
+ - Actions are numbered and imperative
75
+ 4. Verify challenge type selection (per `kairos_begin(key: "challenge-type-guide")`):
76
+ - No `comment` challenges on steps that produce files, call tools, or check system state
77
+ - `shell` challenges use compound `&&` chains (not `;`)
78
+ - `shell` challenges include `timeout_seconds`
79
+ 5. Verify interpreter selection:
80
+ - Flag bash challenges containing `while read`, `grep | awk`, or escaped quotes deeper than one level — suggest Perl rewrite
81
+ - Multi-line regex validation MUST use `perl -0777` (not bash `grep`)
82
+ - JSON block validation MUST use `perl -MJSON` or `python3 -c 'import json'` (not bash pattern matching)
83
+ - Simple file tests (`test -f`, `which`, `git status`) stay bash
84
+ 6. Verify DRY compliance:
85
+ - No duplicated content across files (if Router pattern)
86
+ - No boilerplate sections — shared content extracted or inlined
87
+ 7. Verify 350-line limit:
88
+ - Count lines. If over 350, list which sections to split or extract.
89
+ 8. Verify slug convention:
90
+ - Slug present in frontmatter
91
+ - Follows naming rules (lowercase, hyphenated, 2–4 segments)
92
+ - If Router: children expand parent slug by one segment
93
+ 9. Write verdict to `$KAIROS_WORK_DIR/format-review.md`. First line MUST be `PASS` or `FAIL`. Remaining lines: list of specific fixes if FAIL.
94
+
95
+ **Output:** `$KAIROS_WORK_DIR/format-review.md` with verdict on first line.
96
+
97
+ **If fail:** Main agent applies fixes to the draft and re-runs this step until pass.
98
+
99
+ ```json
100
+ {"challenge":{"type":"shell","shell":{"cmd":"test -f \"$KAIROS_WORK_DIR/format-review.md\" && head -1 \"$KAIROS_WORK_DIR/format-review.md\" | grep -qi 'pass'","timeout_seconds":5},"required":true}}
101
+ ```
102
+
103
+ ## Stranger Review [SUBAGENT]
104
+
105
+ Delegate executability review to a subagent with junior AI agent persona. The subagent writes its verdict to `$KAIROS_WORK_DIR/stranger-review.md`.
106
+
107
+ **Input:** `$KAIROS_WORK_DIR/draft-protocol.md` (post format-review fixes).
108
+
109
+ **Subagent task:**
110
+
111
+ 1. Assume persona: Junior AI agent, first time encountering KAIROS protocols.
112
+ 2. **Mocked dry-run (most important):** Walk through every step in order and produce a mocked but **structurally correct** challenge response. If a mock is wrong, the protocol is ambiguous.
113
+ - **`mcp` challenges:** Return valid MCP tool-call JSON with correct `tool_name`, plausible `arguments`, and realistic `result` envelope. No placeholder strings.
114
+ - **`shell` challenges:** Write the exact command. If non-destructive, show expected stdout/stderr and exit code. Destructive: show command only.
115
+ - **`user_input` challenges:** Write a realistic user response matching all constraints. If choice implied, pick one and justify.
116
+ - **`comment` challenges:** Write a realistic agent comment meeting `min_length`, covering the step's stated output, no filler.
117
+ 3. **Clarity checks** (alongside dry-run):
118
+ - **Executability test:** Can I follow step-by-step without guessing? (yes/no + explanation)
119
+ - **Ambiguity check:** Vague terms like "appropriate", "reasonable", "as needed"? (list every instance)
120
+ - **Missing context:** Steps referencing undefined variables or concepts? (list them)
121
+ - **Missing examples:** Complex rules without examples? (list them)
122
+ 4. Write verdict to `$KAIROS_WORK_DIR/stranger-review.md`. First line MUST be `PASS` or `FAIL`. Remaining lines: mocked dry-run responses and clarity check results. If FAIL, include specific gaps with the failing mock inline.
123
+
124
+ **Output:** `$KAIROS_WORK_DIR/stranger-review.md` with verdict on first line and full dry-run.
125
+
126
+ **If fail:** Main agent revises draft — replace vague terms, add examples, define missing variables, fix steps whose mock drifted from intent. Re-run until pass.
127
+
128
+ ```json
129
+ {"challenge":{"type":"shell","shell":{"cmd":"test -f \"$KAIROS_WORK_DIR/stranger-review.md\" && head -1 \"$KAIROS_WORK_DIR/stranger-review.md\" | grep -qi 'pass'","timeout_seconds":5},"required":true}}
130
+ ```
131
+
132
+ ## Checksum Freeze [SUBAGENT]
133
+
134
+ Freeze the draft after both reviews pass. Prevents accidental edits between "reviews passed" and "user approved".
135
+
136
+ **Input:** `$KAIROS_WORK_DIR/draft-protocol.md` (post both reviews).
137
+
138
+ **Actions:**
139
+ 1. Compute md5 checksum of the draft file.
140
+ 2. Write checksum to `$KAIROS_WORK_DIR/draft-protocol.md.md5`.
141
+
142
+ **Output:** `$KAIROS_WORK_DIR/draft-protocol.md.md5` containing the frozen checksum.
143
+
144
+ ```json
145
+ {"challenge":{"type":"shell","shell":{"cmd":"md5 -q \"$KAIROS_WORK_DIR/draft-protocol.md\" > \"$KAIROS_WORK_DIR/draft-protocol.md.md5\" && test -s \"$KAIROS_WORK_DIR/draft-protocol.md.md5\"","timeout_seconds":5},"required":true}}
146
+ ```
147
+
148
+ ## User Review [SUBAGENT]
149
+
150
+ Present the drafted and reviewed protocol to the user for final approval.
151
+
152
+ **Input:** `$KAIROS_WORK_DIR/draft-protocol.md`, `$KAIROS_WORK_DIR/format-review.md`, `$KAIROS_WORK_DIR/stranger-review.md`.
153
+
154
+ **Actions:**
155
+ 1. Present full protocol markdown (or all files if Router pattern).
156
+ 2. Summarize: pattern used, step count, challenge types, slug(s), both review verdicts.
157
+ 3. Ask: "Type 'approved' to mint, describe what needs adjustment, or 'cancel'."
158
+
159
+ **Output:** User approval, change requests, or cancellation.
160
+
161
+ ```json
162
+ {"challenge":{"type":"user_input","user_input":{"prompt":"Review the protocol draft above. Type 'approved' to mint, describe adjustments, or 'cancel'."},"required":true}}
163
+ ```
164
+
165
+ ## Mint Protocol [SUBAGENT]
166
+
167
+ Verify the draft is unchanged since checksum freeze, then call `kairos_mint`.
168
+
169
+ **Input:** Approved `$KAIROS_WORK_DIR/draft-protocol.md`, slug from frontmatter.
170
+
171
+ **Actions:**
172
+ 1. Verify draft unchanged: `md5 -q "$KAIROS_WORK_DIR/draft-protocol.md" | diff - "$KAIROS_WORK_DIR/draft-protocol.md.md5"`. If diff fails, warn user and abort.
173
+ 2. Call `kairos_mint` with `force_update: false` (unless user explicitly asked to overwrite).
174
+ 3. If Router pattern: mint the router first, then each extension in order.
175
+ 4. Verify each mint succeeded by checking the returned URI.
176
+ 5. Report the chain head URI(s) back to the user with clickable links.
177
+
178
+ **Output:** Confirmation with minted URI(s) and slug(s).
179
+
180
+ ```json
181
+ {"challenge":{"type":"mcp","mcp":{"tool_name":"kairos_mint"},"required":true}}
182
+ ```
183
+
184
+ ## Completion Rule
185
+
186
+ Only reachable after all prior steps are solved.
187
+
188
+ **Cleanup:** `$KAIROS_WORK_DIR` is cleaned up by the engine at `kairos_attest`.
189
+
190
+ The user now has a minted KAIROS protocol that:
191
+ 1. Passed Format Review — structure, DRY, 350-line limit, slug convention, challenge type selection.
192
+ 2. Passed Stranger Review — mocked dry-run with structurally correct challenge responses, unambiguous, executable by a junior AI agent.
193
+ 3. Checksum verified — draft unchanged between review pass and mint.
194
+ 4. User approved the final draft.
195
+ 5. Successfully minted to KAIROS and discoverable via `kairos_search`.
@@ -0,0 +1,240 @@
1
+ ---
2
+ version: "3.4.0"
3
+ slug: challenge-type-guide
4
+ title: Challenge Type Selection Guide
5
+ ---
6
+
7
+ # Challenge Type Selection Guide
8
+
9
+ Decision rules, JSON formats, interpreter selection, and anti-patterns for choosing KAIROS challenge types. Loaded by protocol-authoring agents during drafting and review.
10
+
11
+ ## Natural Language Triggers
12
+
13
+ **Typically invoked by:** `create-new-protocol` (Chain 1) Draft Markdown step and `create-new-protocol-review` (Chain 2) Format Review step via `kairos_begin(key: "challenge-type-guide")`.
14
+
15
+ **Can be invoked directly when agent needs:**
16
+
17
+ - "challenge type reference" / "which challenge type to use"
18
+ - "how to write shell challenges" / "challenge format"
19
+ - "interpreter selection for challenges"
20
+
21
+ **Trigger pattern:** **challenge** + (type | format | selection | guide).
22
+
23
+ **Must Never:**
24
+ - Be used as an execution protocol — this is a reference policy, not a workflow.
25
+
26
+ **Must Always:**
27
+ - Be consulted before assigning challenge types to protocol steps.
28
+
29
+ **Good trigger examples:**
30
+ - Drafting a new protocol and need challenge types → load this
31
+ - Reviewing challenge type selection in a draft → load this
32
+
33
+ **Bad trigger examples:**
34
+ - "Create a new protocol" → use `create-new-protocol`
35
+ - "Review my protocol draft" → use `create-new-protocol-review`
36
+
37
+ ---
38
+
39
+ ## Core Rules
40
+
41
+ `comment` is the challenge type of **last resort**. If a step produces any observable artifact — a file, a git state change, an API response, a process exit code — use `shell` or `mcp` instead.
42
+
43
+ ### Decision Tree
44
+
45
+ ```
46
+ Does the step call an MCP tool?
47
+ ├─ YES → "mcp" with tool_name
48
+ └─ NO → Does the step produce or modify a file?
49
+ ├─ YES → "shell" to verify the file
50
+ └─ NO → Does the step require human approval or choice?
51
+ ├─ YES → "user_input" with a specific prompt
52
+ └─ NO → Does the step run a command or check system state?
53
+ ├─ YES → "shell"
54
+ └─ NO → "comment" (pure reasoning, no artifact)
55
+ ```
56
+
57
+ ### Challenge JSON Formats
58
+
59
+ **shell** — engine runs command, checks exit code 0:
60
+
61
+ Example: ```json
62
+ {"challenge":{"type":"shell","shell":{"cmd":"<command>","timeout_seconds":30},"required":true}}
63
+ ```
64
+
65
+ **mcp** — engine confirms named MCP tool was invoked:
66
+
67
+ Example: ```json
68
+ {"challenge":{"type":"mcp","mcp":{"tool_name":"<tool>"},"required":true}}
69
+ ```
70
+
71
+ With pinned arguments:
72
+
73
+ Example: ```json
74
+ {"challenge":{"type":"mcp","mcp":{"tool_name":"kairos_begin","arguments":{"key":"some-slug"}},"required":true}}
75
+ ```
76
+
77
+ **user_input** — engine confirms user provided non-empty response:
78
+
79
+ Example: ```json
80
+ {"challenge":{"type":"user_input","user_input":{"prompt":"<specific question>"},"required":true}}
81
+ ```
82
+
83
+ **comment** — engine checks min_length only (last resort):
84
+
85
+ Example: ```json
86
+ {"challenge":{"type":"comment","comment":{"min_length":50},"required":true}}
87
+ ```
88
+
89
+ ### Shell Challenge Rules
90
+
91
+ - Chain checks with `&&` (not `;`) — first failure short-circuits.
92
+ - Always set `timeout_seconds`: 5s for local checks, 30–120s for network/build.
93
+ - All file paths MUST use `$KAIROS_WORK_DIR/` prefix (never hardcoded `/tmp/`).
94
+ - Use `test -f` for existence, `grep -q` for content, `wc -l | awk` for line counts.
95
+
96
+ ```json
97
+ {"challenge":{"type":"comment","comment":{"min_length":30},"required":true}}
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Interpreter Selection
103
+
104
+ For text validation, regex, and structural checks, **Perl is often shorter, clearer, and more correct** than bash.
105
+
106
+ | Task | Use bash | Use perl | Use python3 |
107
+ |---|---|---|---|
108
+ | File exists, tool installed, git state | `test -f`, `which`, `git status` | -- | -- |
109
+ | Simple content grep | `grep -q 'pattern' file` | -- | -- |
110
+ | Multi-line regex | -- | `perl -0777 -ne '/pat/ms or die'` | -- |
111
+ | Count + assert (headings, sections) | `grep -c \| awk` (fragile) | `perl -0777 -ne '@m=/pat/g; die if @m<N'` | -- |
112
+ | Paragraph processing (commits, blocks) | `while read` loop (messy) | `perl -00 -ne '...'` | -- |
113
+ | JSON validation | `python3 -m json.tool` | `perl -MJSON -e 'decode_json(do{local$/;<>})'` | `python3 -c 'import json; ...'` |
114
+ | YAML validation | -- | -- | `python3 -c 'import yaml; ...'` |
115
+ | Complex data structure checks | -- | -- | `python3 -c 'import json; d=json.load(...); assert ...'` |
116
+
117
+ **Rule of thumb:** If you're writing `grep | awk`, `while read`, nested escaping, or multi-line patterns in bash — rewrite in Perl. If you need `import` for a data format (YAML, TOML) — use Python.
118
+
119
+ ### Perl Flags Cheat Sheet
120
+
121
+ | Flag | Effect | Use case |
122
+ |---|---|---|
123
+ | `-e '...'` | Execute code | Every Perl challenge |
124
+ | `-n` | Implicit `while(<>)` loop, no auto-print | Process lines, filter |
125
+ | `-p` | Like `-n` but auto-prints `$_` | Transform-and-verify |
126
+ | `-l` | Auto-chomp + auto-newline | Clean line processing |
127
+ | `-a` | Auto-split into `@F` (like awk) | Field extraction |
128
+ | `-0777` | Slurp entire file as one string | Multi-line regex |
129
+ | `-00` | Paragraph mode (split on blank lines) | Commit messages, markdown blocks |
130
+ | `-MJSON` | Load core JSON module | JSON validation without Python |
131
+
132
+ ### Bash vs Perl Examples
133
+
134
+ **Count H2 headings and verify required sections:**
135
+
136
+ bash (fragile):
137
+
138
+ Example: ```bash
139
+ grep -c '^## ' "$D" | awk '$1 >= 3' && grep -q '^## Natural Language Triggers' "$D" && grep -q '^## Completion Rule' "$D"
140
+ ```
141
+
142
+ perl (one pass, clear logic):
143
+
144
+ Example: ```bash
145
+ perl -0777 -ne '@h=/^## (.+)/mg; die "Need >=3 H2s" if @h<3; grep(/^Natural Language Triggers$/,@h) or die "Missing NLT"; grep(/^Completion Rule$/,@h) or die "Missing CR"' "$D"
146
+ ```
147
+
148
+ **Validate JSON challenge blocks:**
149
+
150
+ perl (core JSON module):
151
+
152
+ Example: ```bash
153
+ perl -MJSON -0777 -ne '@b=/```json\s*\n(\{.*?\})\s*\n```/gs; die "No blocks" unless @b; eval{decode_json($_)} or die "Bad JSON: $@" for @b; print scalar(@b)." valid\n"' "$D"
154
+ ```
155
+
156
+ ```json
157
+ {"challenge":{"type":"comment","comment":{"min_length":30},"required":true}}
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Anti-Patterns
163
+
164
+ | Anti-Pattern | Why It Fails | Fix |
165
+ |---|---|---|
166
+ | `comment` with `min_length: 20` | Trivially satisfiable with filler | Raise to 50+, or switch to `shell` if artifact exists |
167
+ | `comment` for steps that run commands | Says "run X" but only checks agent wrote words | Use `shell` with the actual command |
168
+ | `comment` for steps that call MCP tools | Says "call tool Y" but only checks text output | Use `mcp` with `tool_name` |
169
+ | `shell` without `timeout_seconds` | May hang indefinitely | Always set timeout |
170
+ | `user_input` with generic prompt "Confirm" | User doesn't know what they're confirming | Write a specific question |
171
+ | `shell` with `echo 'placeholder'` | Always passes, proves nothing | Replace with real verification command |
172
+ | Checks chained with `;` instead of `&&` | Later checks run even if earlier ones fail | Use `&&` for short-circuit |
173
+ | Hardcoded `/tmp/` paths | Concurrent runs collide; world-readable on Linux | Use `$KAIROS_WORK_DIR` |
174
+ | bash `while read \| grep \| awk` chains | Fragile, escaping nightmare, non-portable | Rewrite in Perl |
175
+
176
+ ```json
177
+ {"challenge":{"type":"comment","comment":{"min_length":30},"required":true}}
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Security and Concurrency
183
+
184
+ ### Session-Scoped Working Directory
185
+
186
+ Never use hardcoded `/tmp/` paths. Use a session-scoped, user-private working directory:
187
+
188
+ Example: ```bash
189
+ export KAIROS_WORK_DIR=$(mktemp -d "${XDG_RUNTIME_DIR:-${TMPDIR:-/tmp}}/kairos-XXXXXX")
190
+ chmod 700 "$KAIROS_WORK_DIR"
191
+ ```
192
+
193
+ **Priority chain:** `XDG_RUNTIME_DIR` (preferred, per-user, `0700` by spec) → `TMPDIR` (macOS fallback) → `/tmp` (last resort, `chmod 700`).
194
+
195
+ **Why:** Concurrent chat sessions running the same protocol would collide on hardcoded paths. `mktemp -d` guarantees isolation. Completion Rule MUST `rm -rf "$KAIROS_WORK_DIR"`.
196
+
197
+ **Rules:** All file paths in shell challenges use `$KAIROS_WORK_DIR/` prefix. Prerequisites section creates it. Completion Rule cleans it up. Never write credentials or secrets to files.
198
+
199
+ ```json
200
+ {"challenge":{"type":"comment","comment":{"min_length":30},"required":true}}
201
+ ```
202
+
203
+ ---
204
+
205
+ ## Composition Patterns
206
+
207
+ **Multi-check compound command** — chain with `&&`, first failure short-circuits:
208
+
209
+ Example: ```bash
210
+ test -f <file> && grep -q '<required>' <file> && wc -l < <file> | awk '$1 <= 350'
211
+ ```
212
+
213
+ **Freeze-then-verify** — two consecutive steps:
214
+ - Step N (after review): `md5 -q <file> > "$KAIROS_WORK_DIR/<file>.md5"`
215
+ - Step N+1 (before publish): `md5 -q <file> | diff - "$KAIROS_WORK_DIR/<file>.md5"`
216
+
217
+ **Write-then-grep** — subagent delegation:
218
+ - Subagent instruction: "Write verdict to `$KAIROS_WORK_DIR/<name>.md`. First line: `PASS` or `FAIL`."
219
+ - Main agent challenge: `head -1 "$KAIROS_WORK_DIR/<name>.md" | grep -qi 'pass'`
220
+
221
+ **Dry-run before execution** — three steps:
222
+ - Step N: `<tool> --dry-run` (shell challenge)
223
+ - Step N+1: `user_input` (human reviews output)
224
+ - Step N+2: `<tool> --yes` (shell challenge)
225
+
226
+ ```json
227
+ {"challenge":{"type":"comment","comment":{"min_length":30},"required":true}}
228
+ ```
229
+
230
+ ## Completion Rule
231
+
232
+ Only reachable after all prior steps are solved.
233
+
234
+ The agent has loaded the challenge type selection guide and can now:
235
+ 1. Pick the correct challenge type for each protocol step using the decision tree.
236
+ 2. Write valid challenge JSON in the correct format.
237
+ 3. Choose the right interpreter (bash / perl / python3) for shell challenges.
238
+ 4. Avoid all listed anti-patterns.
239
+ 5. Apply security and concurrency rules (`$KAIROS_WORK_DIR`).
240
+ 6. Use composition patterns for multi-check, freeze-verify, and subagent delegation.
@@ -0,0 +1,24 @@
1
+ # Bundled meta-protocols
2
+
3
+ This directory contains the bundled KAIROS-internal protocol chains and policy
4
+ documents that are injected into the Kairos app space at boot.
5
+
6
+ ## Protocols
7
+
8
+ | UUID | Slug | Purpose |
9
+ |------|------|---------|
10
+ | [2001](00000000-0000-0000-0000-000000002001.md) | `create-new-protocol` | Chain 1: Author — gather requirements, draft protocol markdown |
11
+ | [2003](00000000-0000-0000-0000-000000002003.md) | `create-new-protocol-review` | Chain 2: Review & Publish — format review, stranger review, approval, mint |
12
+ | [2002](00000000-0000-0000-0000-000000002002.md) | `refine-search` | Refine search — improve a failed kairos_search query |
13
+
14
+ ### Chained authoring flow
15
+
16
+ ```
17
+ 2001 (Author) → kairos_begin(key: "create-new-protocol-review") → 2003 (Review & Publish)
18
+ ```
19
+
20
+ ## Reference Documents
21
+
22
+ | UUID | Slug | Purpose |
23
+ |------|------|---------|
24
+ | [2004](00000000-0000-0000-0000-000000002004.md) | `challenge-type-guide` | Decision tree, JSON formats, interpreter selection, anti-patterns for challenge types. Loaded as policy target by 2001 and 2003. |
@@ -1 +1 @@
1
- {"version":3,"file":"docs-resources.d.ts","sourceRoot":"","sources":["../../src/resources/docs-resources.ts"],"names":[],"mappings":"AASA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,QAqDhD"}
1
+ {"version":3,"file":"docs-resources.d.ts","sourceRoot":"","sources":["../../src/resources/docs-resources.ts"],"names":[],"mappings":"AASA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,QAkEhD"}
@@ -1,4 +1,4 @@
1
- import { getResource, getResources } from './embedded-mcp-resources.js';
1
+ import { getMeta, getResource, getResources } from './embedded-mcp-resources.js';
2
2
  import { logger } from '../utils/structured-logger.js';
3
3
  function mdOrFallback(uri, text, notFound = 'Document not found') {
4
4
  return {
@@ -42,6 +42,14 @@ export function registerDocsResources(server) {
42
42
  }
43
43
  }
44
44
  }
45
+ const meta = getMeta();
46
+ for (const [slug, content] of Object.entries(meta)) {
47
+ if (typeof content !== 'string')
48
+ continue;
49
+ const uri = `kairos://meta/${slug}`;
50
+ const name = `Meta: ${slug.replace(/-/g, ' ')}`;
51
+ server.registerResource(`meta-${slug.replace(/[^a-zA-Z0-9_-]/g, '_')}`, uri, { name, description: `Bundled protocol or policy (${slug})`, mimeType: 'text/markdown' }, (uriObj) => mdOrFallback(uriObj, content));
52
+ }
45
53
  // Tools docs are not registered as resources to keep resources/list lean.
46
54
  }
47
55
  //# sourceMappingURL=docs-resources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs-resources.js","sourceRoot":"","sources":["../../src/resources/docs-resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs-resources.js","sourceRoot":"","sources":["../../src/resources/docs-resources.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,12 @@ export declare const mcpResources: {
29
29
  kairos_update: string;
30
30
  };
31
31
  mem: {};
32
+ meta: {
33
+ "create-new-protocol": string;
34
+ "refine-search": string;
35
+ "create-new-protocol-review": string;
36
+ "challenge-type-guide": string;
37
+ };
32
38
  };
33
39
  /**
34
40
  * Get prompts object
@@ -50,6 +56,10 @@ export declare function getTools(): Record<string, any>;
50
56
  * Get mem object
51
57
  */
52
58
  export declare function getMem(): Record<string, any>;
59
+ /**
60
+ * Get meta object
61
+ */
62
+ export declare function getMeta(): Record<string, any>;
53
63
  /**
54
64
  * Get a prompt by key (e.g. 'contextual-prompt')
55
65
  */
@@ -58,6 +68,10 @@ export declare function getPrompt(key: string): string | undefined;
58
68
  * Get a resource by key (e.g. 'TEST', 'doc.TEST', 'mem.<uuid>')
59
69
  */
60
70
  export declare function getResource(key: string): string | any | undefined;
71
+ /**
72
+ * Meta protocol / policy markdown by slug (from frontmatter).
73
+ */
74
+ export declare function getMetaDoc(slug: string): string | undefined;
61
75
  /**
62
76
  * Get a template by key (e.g. 'kairos-memory')
63
77
  */
@@ -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;;;;;;;;;;;;;;;;;;;;;;CAsBxB,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,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,CAYjE;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,CAkB3D"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BxB,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"}