@kortix/sandbox 0.4.1

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 (246) hide show
  1. package/config/customize.sh +143 -0
  2. package/config/kortix-env-setup.sh +25 -0
  3. package/kortix-master/package.json +22 -0
  4. package/kortix-master/src/config.ts +22 -0
  5. package/kortix-master/src/index.ts +44 -0
  6. package/kortix-master/src/routes/env.ts +65 -0
  7. package/kortix-master/src/routes/proxy.ts +108 -0
  8. package/kortix-master/src/routes/update.ts +185 -0
  9. package/kortix-master/src/services/proxy.ts +43 -0
  10. package/kortix-master/src/services/secret-store.ts +156 -0
  11. package/kortix-master/tsconfig.json +14 -0
  12. package/opencode/agents/kortix-browser.md +142 -0
  13. package/opencode/agents/kortix-build.md +62 -0
  14. package/opencode/agents/kortix-explore.md +66 -0
  15. package/opencode/agents/kortix-image-gen.md +33 -0
  16. package/opencode/agents/kortix-main.md +450 -0
  17. package/opencode/agents/kortix-plan.md +100 -0
  18. package/opencode/agents/kortix-research.md +84 -0
  19. package/opencode/agents/kortix-sheets.md +61 -0
  20. package/opencode/agents/kortix-slides.md +64 -0
  21. package/opencode/agents/kortix-web-dev.md +572 -0
  22. package/opencode/commands/email.md +36 -0
  23. package/opencode/commands/init.md +43 -0
  24. package/opencode/commands/journal.md +44 -0
  25. package/opencode/commands/memory-init.md +81 -0
  26. package/opencode/commands/memory-search.md +50 -0
  27. package/opencode/commands/memory-status.md +56 -0
  28. package/opencode/commands/research.md +36 -0
  29. package/opencode/commands/search.md +38 -0
  30. package/opencode/commands/slides.md +32 -0
  31. package/opencode/commands/spreadsheet.md +30 -0
  32. package/opencode/memory.json +37 -0
  33. package/opencode/ocx.jsonc +10 -0
  34. package/opencode/opencode.jsonc +103 -0
  35. package/opencode/package.json +25 -0
  36. package/opencode/patches/apply.sh +19 -0
  37. package/opencode/patches/opencode-pty-spawn.txt +49 -0
  38. package/opencode/plugin/background-agents.ts.disabled +483 -0
  39. package/opencode/plugin/kdco-primitives/get-project-id.ts +172 -0
  40. package/opencode/plugin/kdco-primitives/index.ts +26 -0
  41. package/opencode/plugin/kdco-primitives/log-warn.ts +51 -0
  42. package/opencode/plugin/kdco-primitives/mutex.ts +122 -0
  43. package/opencode/plugin/kdco-primitives/shell.ts +138 -0
  44. package/opencode/plugin/kdco-primitives/temp.ts +36 -0
  45. package/opencode/plugin/kdco-primitives/terminal-detect.ts +34 -0
  46. package/opencode/plugin/kdco-primitives/types.ts +13 -0
  47. package/opencode/plugin/kdco-primitives/with-timeout.ts +84 -0
  48. package/opencode/plugin/memory.ts +306 -0
  49. package/opencode/plugin/worktree/state.ts +412 -0
  50. package/opencode/plugin/worktree/terminal.ts +1002 -0
  51. package/opencode/plugin/worktree.ts +861 -0
  52. package/opencode/skills/KORTIX-browser/SKILL.md +478 -0
  53. package/opencode/skills/KORTIX-cron-triggers/SKILL.md +173 -0
  54. package/opencode/skills/KORTIX-deep-research/SKILL.md +278 -0
  55. package/opencode/skills/KORTIX-docx/SKILL.md +398 -0
  56. package/opencode/skills/KORTIX-docx/scripts/__init__.py +1 -0
  57. package/opencode/skills/KORTIX-docx/scripts/accept_changes.py +104 -0
  58. package/opencode/skills/KORTIX-docx/scripts/comment.py +244 -0
  59. package/opencode/skills/KORTIX-docx/scripts/office/helpers/__init__.py +0 -0
  60. package/opencode/skills/KORTIX-docx/scripts/office/helpers/merge_runs.py +199 -0
  61. package/opencode/skills/KORTIX-docx/scripts/office/helpers/simplify_redlines.py +197 -0
  62. package/opencode/skills/KORTIX-docx/scripts/office/pack.py +159 -0
  63. package/opencode/skills/KORTIX-docx/scripts/office/soffice.py +183 -0
  64. package/opencode/skills/KORTIX-docx/scripts/office/unpack.py +132 -0
  65. package/opencode/skills/KORTIX-docx/scripts/office/validate.py +111 -0
  66. package/opencode/skills/KORTIX-docx/scripts/office/validators/__init__.py +15 -0
  67. package/opencode/skills/KORTIX-docx/scripts/office/validators/base.py +847 -0
  68. package/opencode/skills/KORTIX-docx/scripts/office/validators/docx.py +446 -0
  69. package/opencode/skills/KORTIX-docx/scripts/office/validators/pptx.py +275 -0
  70. package/opencode/skills/KORTIX-docx/scripts/office/validators/redlining.py +247 -0
  71. package/opencode/skills/KORTIX-docx/scripts/render_docx.py +179 -0
  72. package/opencode/skills/KORTIX-docx/scripts/templates/comments.xml +3 -0
  73. package/opencode/skills/KORTIX-docx/scripts/templates/commentsExtended.xml +3 -0
  74. package/opencode/skills/KORTIX-docx/scripts/templates/commentsExtensible.xml +3 -0
  75. package/opencode/skills/KORTIX-docx/scripts/templates/commentsIds.xml +3 -0
  76. package/opencode/skills/KORTIX-docx/scripts/templates/people.xml +3 -0
  77. package/opencode/skills/KORTIX-domain-research/SKILL.md +96 -0
  78. package/opencode/skills/KORTIX-domain-research/scripts/domain-lookup.py +810 -0
  79. package/opencode/skills/KORTIX-elevenlabs/SKILL.md +230 -0
  80. package/opencode/skills/KORTIX-elevenlabs/scripts/tts.py +389 -0
  81. package/opencode/skills/KORTIX-email/SKILL.md +145 -0
  82. package/opencode/skills/KORTIX-legal-writer/SKILL.md +409 -0
  83. package/opencode/skills/KORTIX-legal-writer/references/bluebook.md +152 -0
  84. package/opencode/skills/KORTIX-legal-writer/references/document-types.md +416 -0
  85. package/opencode/skills/KORTIX-legal-writer/scripts/courtlistener.py +291 -0
  86. package/opencode/skills/KORTIX-legal-writer/scripts/ecfr_lookup.py +299 -0
  87. package/opencode/skills/KORTIX-legal-writer/scripts/verify-legal.py +507 -0
  88. package/opencode/skills/KORTIX-logo-creator/SKILL.md +293 -0
  89. package/opencode/skills/KORTIX-logo-creator/references/prompt-patterns.md +134 -0
  90. package/opencode/skills/KORTIX-logo-creator/scripts/compose_logo.py +406 -0
  91. package/opencode/skills/KORTIX-logo-creator/scripts/create_logo_sheet.py +258 -0
  92. package/opencode/skills/KORTIX-logo-creator/scripts/remove_bg.py +96 -0
  93. package/opencode/skills/KORTIX-memory/SKILL.md +261 -0
  94. package/opencode/skills/KORTIX-memory/scripts/export-sessions.py +409 -0
  95. package/opencode/skills/KORTIX-paper-creator/SKILL.md +549 -0
  96. package/opencode/skills/KORTIX-paper-creator/assets/template.tex +101 -0
  97. package/opencode/skills/KORTIX-paper-creator/scripts/compile.sh +177 -0
  98. package/opencode/skills/KORTIX-paper-creator/scripts/openalex_to_bibtex.py +220 -0
  99. package/opencode/skills/KORTIX-paper-creator/scripts/verify.sh +354 -0
  100. package/opencode/skills/KORTIX-paper-search/SKILL.md +418 -0
  101. package/opencode/skills/KORTIX-pdf/SKILL.md +232 -0
  102. package/opencode/skills/KORTIX-pdf/forms.md +36 -0
  103. package/opencode/skills/KORTIX-pdf/reference.md +105 -0
  104. package/opencode/skills/KORTIX-pdf/scripts/check_bounding_boxes.py +65 -0
  105. package/opencode/skills/KORTIX-pdf/scripts/check_fillable_fields.py +11 -0
  106. package/opencode/skills/KORTIX-pdf/scripts/convert_pdf_to_images.py +33 -0
  107. package/opencode/skills/KORTIX-pdf/scripts/create_validation_image.py +37 -0
  108. package/opencode/skills/KORTIX-pdf/scripts/extract_form_field_info.py +122 -0
  109. package/opencode/skills/KORTIX-pdf/scripts/extract_form_structure.py +115 -0
  110. package/opencode/skills/KORTIX-pdf/scripts/fill_fillable_fields.py +98 -0
  111. package/opencode/skills/KORTIX-pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  112. package/opencode/skills/KORTIX-plan/SKILL.md +228 -0
  113. package/opencode/skills/KORTIX-presentation-viewer/SKILL.md +87 -0
  114. package/opencode/skills/KORTIX-presentation-viewer/serve.ts +136 -0
  115. package/opencode/skills/KORTIX-presentation-viewer/viewer.html +559 -0
  116. package/opencode/skills/KORTIX-presentations/SKILL.md +344 -0
  117. package/opencode/skills/KORTIX-remotion/SKILL.md +56 -0
  118. package/opencode/skills/KORTIX-remotion/rules/3d.md +86 -0
  119. package/opencode/skills/KORTIX-remotion/rules/animations.md +29 -0
  120. package/opencode/skills/KORTIX-remotion/rules/assets.md +78 -0
  121. package/opencode/skills/KORTIX-remotion/rules/audio-visualization.md +198 -0
  122. package/opencode/skills/KORTIX-remotion/rules/audio.md +169 -0
  123. package/opencode/skills/KORTIX-remotion/rules/calculate-metadata.md +104 -0
  124. package/opencode/skills/KORTIX-remotion/rules/can-decode.md +75 -0
  125. package/opencode/skills/KORTIX-remotion/rules/charts.md +120 -0
  126. package/opencode/skills/KORTIX-remotion/rules/compositions.md +141 -0
  127. package/opencode/skills/KORTIX-remotion/rules/display-captions.md +184 -0
  128. package/opencode/skills/KORTIX-remotion/rules/extract-frames.md +229 -0
  129. package/opencode/skills/KORTIX-remotion/rules/ffmpeg.md +38 -0
  130. package/opencode/skills/KORTIX-remotion/rules/fonts.md +152 -0
  131. package/opencode/skills/KORTIX-remotion/rules/get-audio-duration.md +58 -0
  132. package/opencode/skills/KORTIX-remotion/rules/get-video-dimensions.md +68 -0
  133. package/opencode/skills/KORTIX-remotion/rules/get-video-duration.md +58 -0
  134. package/opencode/skills/KORTIX-remotion/rules/gifs.md +141 -0
  135. package/opencode/skills/KORTIX-remotion/rules/images.md +130 -0
  136. package/opencode/skills/KORTIX-remotion/rules/import-srt-captions.md +69 -0
  137. package/opencode/skills/KORTIX-remotion/rules/light-leaks.md +73 -0
  138. package/opencode/skills/KORTIX-remotion/rules/lottie.md +68 -0
  139. package/opencode/skills/KORTIX-remotion/rules/maps.md +401 -0
  140. package/opencode/skills/KORTIX-remotion/rules/measuring-dom-nodes.md +35 -0
  141. package/opencode/skills/KORTIX-remotion/rules/measuring-text.md +143 -0
  142. package/opencode/skills/KORTIX-remotion/rules/parameters.md +98 -0
  143. package/opencode/skills/KORTIX-remotion/rules/sequencing.md +118 -0
  144. package/opencode/skills/KORTIX-remotion/rules/subtitles.md +36 -0
  145. package/opencode/skills/KORTIX-remotion/rules/tailwind.md +11 -0
  146. package/opencode/skills/KORTIX-remotion/rules/text-animations.md +20 -0
  147. package/opencode/skills/KORTIX-remotion/rules/timing.md +179 -0
  148. package/opencode/skills/KORTIX-remotion/rules/transcribe-captions.md +70 -0
  149. package/opencode/skills/KORTIX-remotion/rules/transitions.md +197 -0
  150. package/opencode/skills/KORTIX-remotion/rules/transparent-videos.md +106 -0
  151. package/opencode/skills/KORTIX-remotion/rules/trimming.md +53 -0
  152. package/opencode/skills/KORTIX-remotion/rules/videos.md +171 -0
  153. package/opencode/skills/KORTIX-secrets/SKILL.md +280 -0
  154. package/opencode/skills/KORTIX-semantic-search/SKILL.md +213 -0
  155. package/opencode/skills/KORTIX-session-search/SKILL.md +807 -0
  156. package/opencode/skills/KORTIX-session-search/Untitled +1 -0
  157. package/opencode/skills/KORTIX-skill-creator/SKILL.md +163 -0
  158. package/opencode/skills/KORTIX-web-research/SKILL.md +69 -0
  159. package/opencode/skills/KORTIX-xlsx/LICENSE.txt +30 -0
  160. package/opencode/skills/KORTIX-xlsx/SKILL.md +549 -0
  161. package/opencode/skills/KORTIX-xlsx/scripts/office/helpers/__init__.py +0 -0
  162. package/opencode/skills/KORTIX-xlsx/scripts/office/helpers/merge_runs.py +199 -0
  163. package/opencode/skills/KORTIX-xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  164. package/opencode/skills/KORTIX-xlsx/scripts/office/pack.py +159 -0
  165. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  166. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  167. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  168. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  169. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  170. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  171. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  172. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  173. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  174. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  175. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  176. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  177. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  178. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  179. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  180. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  181. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  182. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  183. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  184. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  185. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  186. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  187. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  188. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  189. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  190. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  191. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  192. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  193. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  194. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  195. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  196. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  197. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  198. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  199. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  200. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  201. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  202. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  203. package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  204. package/opencode/skills/KORTIX-xlsx/scripts/office/soffice.py +183 -0
  205. package/opencode/skills/KORTIX-xlsx/scripts/office/unpack.py +132 -0
  206. package/opencode/skills/KORTIX-xlsx/scripts/office/validate.py +111 -0
  207. package/opencode/skills/KORTIX-xlsx/scripts/office/validators/__init__.py +15 -0
  208. package/opencode/skills/KORTIX-xlsx/scripts/office/validators/base.py +847 -0
  209. package/opencode/skills/KORTIX-xlsx/scripts/office/validators/docx.py +446 -0
  210. package/opencode/skills/KORTIX-xlsx/scripts/office/validators/pptx.py +275 -0
  211. package/opencode/skills/KORTIX-xlsx/scripts/office/validators/redlining.py +247 -0
  212. package/opencode/skills/KORTIX-xlsx/scripts/recalc.py +184 -0
  213. package/opencode/tools/image-gen.ts +342 -0
  214. package/opencode/tools/image-search.ts +190 -0
  215. package/opencode/tools/memory-get.ts +168 -0
  216. package/opencode/tools/memory-search.ts +247 -0
  217. package/opencode/tools/presentation-gen.ts +723 -0
  218. package/opencode/tools/scrape-webpage.ts +115 -0
  219. package/opencode/tools/scripts/.python-version +1 -0
  220. package/opencode/tools/scripts/convert_pdf.py +184 -0
  221. package/opencode/tools/scripts/convert_pptx.py +562 -0
  222. package/opencode/tools/scripts/pyproject.toml +11 -0
  223. package/opencode/tools/scripts/uv.lock +287 -0
  224. package/opencode/tools/scripts/validate_slide.py +74 -0
  225. package/opencode/tools/show-user.ts +217 -0
  226. package/opencode/tools/tests/e2e-presentation-fix.ts +277 -0
  227. package/opencode/tools/tests/image-gen.test.ts +215 -0
  228. package/opencode/tools/tests/image-search.test.ts +125 -0
  229. package/opencode/tools/tests/memory-system-benchmark.ts +1076 -0
  230. package/opencode/tools/tests/presentation-gen.test.ts +389 -0
  231. package/opencode/tools/tests/scrape-webpage.test.ts +74 -0
  232. package/opencode/tools/tests/show-user.test.ts +241 -0
  233. package/opencode/tools/tests/video-gen.test.ts +110 -0
  234. package/opencode/tools/tests/web-search.test.ts +106 -0
  235. package/opencode/tools/video-gen.ts +200 -0
  236. package/opencode/tools/web-search.ts +153 -0
  237. package/opencode/tsconfig.json +29 -0
  238. package/package.json +36 -0
  239. package/patch-agent-browser.js +100 -0
  240. package/postinstall.sh +88 -0
  241. package/services/KORTIX-presentation-viewer/run +37 -0
  242. package/services/agent-browser-viewer/run +48 -0
  243. package/services/kortix-master/run +16 -0
  244. package/services/lss-sync/run +22 -0
  245. package/services/opencode-serve/run +25 -0
  246. package/services/opencode-web/run +21 -0
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: Check inbox, read, send, or manage email. Uses curl with IMAP/SMTP.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Email
7
+
8
+ The user wants to interact with email (by default the agent's own inbox).
9
+
10
+ ## Setup
11
+
12
+ 1. Load the `kortix-email` skill first
13
+ 2. Set up credential variables from env vars as shown in the skill
14
+
15
+ ## Parse the request
16
+
17
+ Interpret what the user wants from their arguments:
18
+ - No args or "check" or "inbox" → show recent inbox messages
19
+ - "send [to] [subject]" → compose and send an email
20
+ - "read [id]" → read a specific message
21
+ - "reply [id]" → reply to a message
22
+ - "search [query]" → search inbox
23
+ - "count" → show unread count
24
+ - Anything else → interpret intent and act
25
+
26
+ ## Execute
27
+
28
+ Use `curl` directly against IMAP/SMTP as documented in the skill. No scripts needed.
29
+
30
+ ## Report
31
+
32
+ Show results concisely. For inbox listings, show sender, subject, date, and read status. For sent mail, confirm delivery.
33
+
34
+ ## User request
35
+
36
+ $ARGUMENTS
@@ -0,0 +1,43 @@
1
+ ---
2
+ description: Initialize project knowledge by scanning the workspace. Updates the Project section of MEMORY.md.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Project Initialization
7
+
8
+ Scan the current workspace and update the Project section of `workspace/.kortix/MEMORY.md`.
9
+
10
+ ## Exploration checklist
11
+
12
+ Do ALL of these in parallel where possible:
13
+
14
+ 1. **Directory structure** — top-level layout, key directories
15
+ 2. **Project manifest** — package.json, Cargo.toml, pyproject.toml, go.mod, etc.
16
+ 3. **Git history** — `git log --oneline -30` for recent activity and commit style
17
+ 4. **README** — project description
18
+ 5. **Build/test/lint commands** — scripts in package.json, Makefile, CI configs
19
+ 6. **CI/CD** — .github/workflows/, .gitlab-ci.yml, etc.
20
+ 7. **Dependencies** — key libraries, frameworks, external services
21
+ 8. **Architecture** — entry points, module boundaries, data flow
22
+ 9. **Config files** — .env.example, tsconfig.json, eslint.config.*, etc.
23
+ 10. **Docker** — Dockerfile, docker-compose.yml
24
+
25
+ ## Update MEMORY.md
26
+
27
+ Update the Project section with structured findings:
28
+
29
+ ```markdown
30
+ ## Project
31
+
32
+ **Overview:** [One paragraph description]
33
+ **Tech Stack:** [Languages, frameworks, key libraries]
34
+ **Architecture:** [Key modules, entry points]
35
+ **Commands:** [Build, test, lint, dev, deploy]
36
+ **Conventions:** [Commit style, naming, patterns]
37
+ ```
38
+
39
+ Keep it concise. If there's deep detail worth preserving, write it to `workspace/.kortix/memory/project-details.md`.
40
+
41
+ Also update the Scratchpad to note the project was scanned.
42
+
43
+ $ARGUMENTS
@@ -0,0 +1,44 @@
1
+ ---
2
+ description: Write a session summary capturing what happened in this session.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Write Session Summary
7
+
8
+ Write a summary of this session to both the daily log and a session journal entry.
9
+
10
+ ## Steps
11
+
12
+ 1. Review what happened this session: tasks completed, decisions made, things learned, user feedback, unfinished work.
13
+
14
+ 2. **Write to today's daily log** — append to `workspace/.kortix/memory/YYYY-MM-DD.md` (use today's actual date):
15
+
16
+ ```markdown
17
+ ## HH:MM — Session Summary
18
+
19
+ **What happened:** [2-3 sentence overview]
20
+ - [Key task/decision 1]
21
+ - [Key task/decision 2]
22
+ - [Lessons learned]
23
+ - **Open items:** [Unfinished work]
24
+ ```
25
+
26
+ 3. **Write a full journal entry** — append to `workspace/.kortix/journal/sessions.md` (most recent first):
27
+
28
+ ```markdown
29
+ ## [YYYY-MM-DD HH:MM] Session Summary
30
+
31
+ **What happened:** [2-3 sentence overview]
32
+ **Completed:** [List of tasks done]
33
+ **Decisions:** [Key decisions with rationale]
34
+ **Learned:** [What was learned — patterns, corrections, discoveries]
35
+ **Open items:** [Unfinished work, handoff notes]
36
+ ```
37
+
38
+ 4. **Update MEMORY.md Scratchpad** — clear completed items, leave pending items for next session. Add handoff notes if needed.
39
+
40
+ 5. If anything from this session reveals lasting knowledge (user preferences, project conventions, architectural decisions), write it to the appropriate `memory/` topic file.
41
+
42
+ 6. Confirm to the user what was captured.
43
+
44
+ $ARGUMENTS
@@ -0,0 +1,81 @@
1
+ ---
2
+ description: Bootstrap the agent's memory system. Creates MEMORY.md, directory structure, learns about the user, and scans the workspace.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Memory Initialization
7
+
8
+ You are bootstrapping your persistent memory. Follow these steps.
9
+
10
+ ## Step 1: Create directory structure
11
+
12
+ Ensure all memory directories exist:
13
+ ```bash
14
+ mkdir -p /workspace/.kortix/memory /workspace/.kortix/journal /workspace/.kortix/knowledge /workspace/.kortix/sessions
15
+ ```
16
+
17
+ ## Step 2: Create MEMORY.md
18
+
19
+ If `workspace/.kortix/MEMORY.md` doesn't exist or is a default template, create it:
20
+
21
+ ```markdown
22
+ # Memory
23
+
24
+ ## Identity
25
+ Kortix — autonomous AI agent with persistent memory, full Linux access, and internet connectivity.
26
+ [Check env for AGENT_EMAIL_ADDRESS, available tools and skills]
27
+
28
+ ## User
29
+ Not yet known. Introduce yourself so I can remember you.
30
+
31
+ ## Project
32
+ Not yet scanned. Scanning workspace...
33
+
34
+ ## Scratchpad
35
+ Memory system initialized. Ready for tasks.
36
+ ```
37
+
38
+ ## Step 3: Populate Identity
39
+
40
+ Read your environment to build the Identity section:
41
+ - Check `env` for your email credentials (AGENT_EMAIL_ADDRESS)
42
+ - Check what tools and skills are available
43
+ - Write the Identity section of MEMORY.md
44
+
45
+ ## Step 4: Learn about the user
46
+
47
+ Talk to the user:
48
+ - Ask their name
49
+ - Ask their role / what they do
50
+ - Ask how they prefer to work with you (hands-off? collaborative? detailed reporting?)
51
+ - Ask about any immediate projects or priorities
52
+
53
+ Write everything to the User section of MEMORY.md.
54
+
55
+ ## Step 5: Scan the workspace
56
+
57
+ Explore the current workspace and populate the Project section:
58
+ - Directory structure, project manifests, git history
59
+ - Tech stack, key dependencies, build/test commands
60
+ - Architecture patterns, CI configs
61
+
62
+ ## Step 6: Initialize daily log
63
+
64
+ Write today's first entry to `workspace/.kortix/memory/YYYY-MM-DD.md`:
65
+
66
+ ```markdown
67
+ # YYYY-MM-DD
68
+
69
+ ## HH:MM — Memory system initialized
70
+ - Created MEMORY.md with Identity, User, Project, Scratchpad sections
71
+ - [Summary of what was learned about user and workspace]
72
+ ```
73
+
74
+ ## Step 7: Verify memory system
75
+
76
+ - Confirm MEMORY.md exists and has real content
77
+ - Confirm memory plugin is loading it (it should appear in your system prompt)
78
+ - Test `memory_search` tool: `memory_search(query: "user preferences")`
79
+ - Tell the user what you learned and that memory is active
80
+
81
+ $ARGUMENTS
@@ -0,0 +1,50 @@
1
+ ---
2
+ description: Search across all memory files for a keyword or topic.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Memory Search
7
+
8
+ Search the entire memory system for relevant information using the native `memory_search` tool.
9
+
10
+ ## Search strategy
11
+
12
+ Use the `memory_search` tool for structured hybrid search (semantic + keyword):
13
+
14
+ ```
15
+ memory_search(query: "$ARGUMENTS", scope: "all")
16
+ ```
17
+
18
+ This runs BOTH LSS (BM25 + embeddings) and grep in parallel, merges and deduplicates results.
19
+
20
+ ### If you need broader search
21
+
22
+ Also search Desktop files if memory results are insufficient:
23
+
24
+ ```bash
25
+ lss "$ARGUMENTS" -p /workspace --json -k 10
26
+ ```
27
+
28
+ ## Output
29
+
30
+ For each match, show:
31
+ - Source file (relative path under .kortix/)
32
+ - The matching content or snippet
33
+ - Relevance score (for semantic results)
34
+ - Source type (semantic vs keyword)
35
+
36
+ Group results by tier:
37
+ 1. **Core memory** — from MEMORY.md
38
+ 2. **Episodic memory** — from memory/*.md
39
+ 3. **Journal** — from journal/*.md
40
+ 4. **Knowledge** — from knowledge/*.md
41
+ 5. **Sessions** — from sessions/*.md
42
+
43
+ If no results found, suggest:
44
+ - Related terms to try
45
+ - Whether to search Desktop files too
46
+ - Whether to export past sessions: `python3 ~/.opencode/skills/KORTIX-memory/scripts/export-sessions.py`
47
+
48
+ ## Search query
49
+
50
+ $ARGUMENTS
@@ -0,0 +1,56 @@
1
+ ---
2
+ description: Show the current state of the agent's memory system including all tiers, tools, and plugin status.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Memory Status
7
+
8
+ Read and report on the full memory system at `workspace/.kortix/`.
9
+
10
+ ## Core Memory (Tier 1)
11
+
12
+ Read `workspace/.kortix/MEMORY.md` via `memory_get(path: "MEMORY.md")` and show a summary of each section (Identity, User, Project, Scratchpad).
13
+
14
+ ## Episodic Memory (Tier 2)
15
+
16
+ List all files in `workspace/.kortix/memory/` and show:
17
+ - Total number of files
18
+ - Most recent daily log date
19
+ - One-line summary of each topic file
20
+
21
+ ## Journal (Tier 3)
22
+
23
+ List all files in `workspace/.kortix/journal/` and show count + latest entry date.
24
+
25
+ ## Knowledge (Tier 4)
26
+
27
+ List all files in `workspace/.kortix/knowledge/` and show count + one-line summary of each.
28
+
29
+ ## Session Transcripts
30
+
31
+ List all files in `workspace/.kortix/sessions/` and show count.
32
+ If empty, suggest: `python3 ~/.opencode/skills/KORTIX-memory/scripts/export-sessions.py`
33
+
34
+ ## Health Check
35
+
36
+ Report:
37
+ - Whether MEMORY.md exists and has real content (not default template)
38
+ - Approximate token count of MEMORY.md (target: under ~3000 tokens)
39
+ - Number of files per tier
40
+ - Whether the memory plugin is active (check if MEMORY.md appears in system prompt)
41
+ - Whether `memory_search` tool is available (test a simple query)
42
+ - Whether LSS is running (`lss status`)
43
+ - Any issues (empty sections, stale scratchpad, missing directories)
44
+
45
+ ## System Components
46
+
47
+ | Component | Status | Description |
48
+ |---|---|---|
49
+ | Memory Plugin | Check if `plugin/memory.ts` is registered in opencode.jsonc | Auto-loads MEMORY.md + daily logs, pre-compaction flush |
50
+ | memory_search tool | Test with a simple query | Hybrid semantic + keyword search |
51
+ | memory_get tool | Test by reading MEMORY.md | Secure memory file reader |
52
+ | LSS daemon | Run `lss status` | Real-time file indexing for semantic search |
53
+
54
+ Present as a clean, concise summary.
55
+
56
+ $ARGUMENTS
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: Kick off a deep research task on any topic. Delegates to the research subagent.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Deep Research
7
+
8
+ The user wants deep, comprehensive research on a topic. This is Tier 3 -- a full investigation with cited sources and a structured report. For quick lookups or moderate exploration, handle it yourself (see Web Information Needs tiers).
9
+
10
+ Delegate this to `@kortix-research`.
11
+
12
+ ## Before delegating
13
+
14
+ 1. Check `workspace/.kortix/memory/` and `research/` — has this topic been researched before? If so, read the existing report and ask the user if they want a fresh investigation or an update.
15
+
16
+ 2. Check `workspace/.kortix/MEMORY.md` User section — are there any preferences about research format, depth, or style?
17
+
18
+ ## Delegation prompt
19
+
20
+ Send `@kortix-research` a detailed, self-contained prompt that includes:
21
+ - The research topic/question from the user
22
+ - Any existing knowledge you found (summarized)
23
+ - User preferences if relevant
24
+ - Instruction to create a research working directory at `research/{topic-slug}/`
25
+ - Instruction to save the final report to `workspace/.kortix/memory/research-{topic-slug}.md`
26
+ - Instruction to load the `kortix-deep-research` skill first
27
+
28
+ ## After research completes
29
+
30
+ 1. Read the report from `research/{topic-slug}/report.md`
31
+ 2. Present a concise summary to the user with the full report path
32
+ 3. Update MEMORY.md Scratchpad to note research was completed
33
+
34
+ ## Research topic
35
+
36
+ $ARGUMENTS
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Semantic search across all files and memory.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Semantic Search
7
+
8
+ Search everything semantically using lss (BM25 + OpenAI embeddings).
9
+
10
+ ## Strategy
11
+
12
+ Run searches across all indexed sources in parallel:
13
+
14
+ ```bash
15
+ # Search Desktop files (projects, documents, etc.)
16
+ lss "$ARGUMENTS" -p /workspace --json -k 10
17
+
18
+ # Search agent memory + knowledge
19
+ lss "$ARGUMENTS" -p /workspace/.kortix/ --json -k 5
20
+ ```
21
+
22
+ ## Output
23
+
24
+ Present results grouped by source, ranked by score:
25
+
26
+ 1. **Best matches** — Top results across all sources, with file path and snippet
27
+ 2. **Memory matches** — Relevant stored knowledge
28
+
29
+ For each result, show:
30
+ - File path
31
+ - Relevance score
32
+ - Snippet preview
33
+
34
+ If results reference a specific file, offer to read it for full context.
35
+
36
+ ## Search query
37
+
38
+ $ARGUMENTS
@@ -0,0 +1,32 @@
1
+ ---
2
+ description: Create a presentation / slide deck. Delegates to the slides subagent.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Create Presentation
7
+
8
+ The user wants a slide deck. Delegate to `@kortix-slides`.
9
+
10
+ ## Before delegating
11
+
12
+ 1. Check `workspace/.kortix/MEMORY.md` User section for brand/style preferences
13
+ 2. Check `workspace/.kortix/memory/` for relevant research that could inform the content
14
+ 3. Ask the user for any details not provided: topic, audience, tone, slide count, style
15
+
16
+ ## Delegation prompt
17
+
18
+ Send `@kortix-slides` a detailed prompt including:
19
+ - The presentation topic and requirements
20
+ - User style preferences from memory
21
+ - Any relevant research content
22
+ - Instruction to load the `kortix-presentations` skill first
23
+ - Where to save the output
24
+
25
+ ## After completion
26
+
27
+ 1. Update MEMORY.md Scratchpad to note presentation was created
28
+ 2. Tell the user where to find the slides and how to view them (presentation viewer at port 3210)
29
+
30
+ ## Presentation request
31
+
32
+ $ARGUMENTS
@@ -0,0 +1,30 @@
1
+ ---
2
+ description: Create or edit a spreadsheet. Delegates to the sheets subagent.
3
+ agent: kortix-main
4
+ ---
5
+
6
+ # Spreadsheet
7
+
8
+ The user wants to create or edit a spreadsheet. Delegate to `@kortix-sheets`.
9
+
10
+ ## Before delegating
11
+
12
+ 1. Check `workspace/.kortix/MEMORY.md` User section for formatting preferences
13
+ 2. Check `workspace/.kortix/memory/` for relevant data or research
14
+
15
+ ## Delegation prompt
16
+
17
+ Send `@kortix-sheets` a detailed prompt including:
18
+ - What spreadsheet to create/edit and the requirements
19
+ - User formatting preferences from memory
20
+ - Any relevant data sources
21
+ - Instruction to load the `kortix-xlsx` skill first
22
+
23
+ ## After completion
24
+
25
+ 1. Update MEMORY.md Scratchpad
26
+ 2. Tell the user where the file is
27
+
28
+ ## Spreadsheet request
29
+
30
+ $ARGUMENTS
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "Memory configuration for Kortix agent memory system",
3
+ "enabled": true,
4
+ "basePath": "/workspace/.kortix",
5
+ "corePath": "MEMORY.md",
6
+ "memoryDir": "memory",
7
+ "journalDir": "journal",
8
+ "knowledgeDir": "knowledge",
9
+ "sessionsDir": "sessions",
10
+ "search": {
11
+ "maxResults": 6,
12
+ "minScore": 0.35,
13
+ "maxSnippetLength": 700,
14
+ "sources": ["memory", "sessions"]
15
+ },
16
+ "flush": {
17
+ "enabled": true,
18
+ "softThresholdTokens": 4000,
19
+ "systemPrompt": "Session is nearing context compaction. Before context is lost, write any durable memories that should persist across sessions.",
20
+ "prompt": "Review what you have learned in this session. Write any lasting notes, decisions, lessons, or user preferences to workspace/.kortix/memory/{date}.md. Update workspace/.kortix/MEMORY.md Scratchpad with current state and pending items. Reply with NO_REPLY if there is nothing worth remembering."
21
+ },
22
+ "inject": {
23
+ "coreMemory": true,
24
+ "dailyLogs": true,
25
+ "dailyLogDays": 2
26
+ },
27
+ "dailyLog": {
28
+ "filePattern": "YYYY-MM-DD.md",
29
+ "appendOnly": true
30
+ },
31
+ "sessionExport": {
32
+ "enabled": true,
33
+ "deltaMessages": 50,
34
+ "filterRoles": ["user", "assistant"],
35
+ "excludeToolCalls": true
36
+ }
37
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://ocx.kdco.dev/schemas/ocx.json",
3
+ "registries": {
4
+ "kdco": {
5
+ "url": "https://registry.kdco.dev"
6
+ }
7
+ },
8
+ "lockRegistries": false,
9
+ "skipCompatCheck": false
10
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "permission": "allow",
4
+ "plugin": ["opencode-pty", "./plugin/worktree.ts", "./plugin/memory.ts"], // ["@tarquinen/opencode-dcp@latest"],
5
+ "autoupdate": true,
6
+ "default_agent": "kortix-main",
7
+ // "model": "anthropic/claude-sonnet-4-20250514",
8
+ "provider": {
9
+ "kortix": {
10
+ "npm": "@ai-sdk/openai-compatible",
11
+ "name": "Kortix",
12
+ "options": {
13
+ "baseURL": "{env:KORTIX_API_URL}/v1",
14
+ "apiKey": "{env:KORTIX_TOKEN}"
15
+ },
16
+ "models": {
17
+ "kortix/basic": {
18
+ "name": "Kortix Basic",
19
+ "limit": {
20
+ "context": 200000,
21
+ "output": 8192
22
+ }
23
+ },
24
+ "kortix/power": {
25
+ "name": "Kortix Power",
26
+ "limit": {
27
+ "context": 200000,
28
+ "output": 8192
29
+ }
30
+ },
31
+ "claude-sonnet-4": {
32
+ "name": "Claude Sonnet 4",
33
+ "limit": {
34
+ "context": 200000,
35
+ "output": 8192
36
+ }
37
+ },
38
+ "claude-3-5-sonnet": {
39
+ "name": "Claude 3.5 Sonnet",
40
+ "limit": {
41
+ "context": 200000,
42
+ "output": 8192
43
+ }
44
+ },
45
+ "claude-3-haiku": {
46
+ "name": "Claude 3 Haiku",
47
+ "limit": {
48
+ "context": 200000,
49
+ "output": 8192
50
+ }
51
+ },
52
+ "gpt-4o": {
53
+ "name": "GPT-4o",
54
+ "limit": {
55
+ "context": 128000,
56
+ "output": 16384
57
+ }
58
+ },
59
+ "gpt-4o-mini": {
60
+ "name": "GPT-4o Mini",
61
+ "limit": {
62
+ "context": 128000,
63
+ "output": 16384
64
+ }
65
+ },
66
+ "grok-2": {
67
+ "name": "Grok 2",
68
+ "limit": {
69
+ "context": 131072,
70
+ "output": 8192
71
+ }
72
+ },
73
+ "llama-3.3-70b": {
74
+ "name": "Llama 3.3 70B",
75
+ "limit": {
76
+ "context": 128000,
77
+ "output": 8192
78
+ }
79
+ },
80
+ "llama-3.1-8b": {
81
+ "name": "Llama 3.1 8B",
82
+ "limit": {
83
+ "context": 128000,
84
+ "output": 8192
85
+ }
86
+ }
87
+ }
88
+ },
89
+ "anthropic": {
90
+ "name": "Anthropic"
91
+ }
92
+ },
93
+ "mcp": {
94
+ "context7": {
95
+ "type": "remote",
96
+ "url": "https://mcp.context7.com/mcp",
97
+ "headers": {
98
+ "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
99
+ },
100
+ "enabled": true
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": ".opencode",
3
+ "module": "index.ts",
4
+ "type": "module",
5
+ "private": true,
6
+ "scripts": {
7
+ "postinstall": "bash patches/apply.sh"
8
+ },
9
+ "devDependencies": {
10
+ "@types/bun": "latest"
11
+ },
12
+ "peerDependencies": {
13
+ "typescript": "^5"
14
+ },
15
+ "dependencies": {
16
+ "@mendable/firecrawl-js": "^4.12.0",
17
+ "@opencode-ai/plugin": "1.1.65",
18
+ "@kortix/opencode-sdk": "^0.3.0",
19
+ "@tavily/core": "^0.7.1",
20
+ "agent-browser": "^0.9.1",
21
+ "jsonc-parser": "^3.3.1",
22
+ "opencode-pty": "^0.2.1",
23
+ "replicate": "^1.4.0"
24
+ }
25
+ }
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env bash
2
+ # Postinstall patch: applies local overrides to plugin files in node_modules.
3
+ # Run automatically via "postinstall" in package.json after every `bun install`.
4
+ # Each patch is a full replacement of the target file.
5
+
6
+ set -euo pipefail
7
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
8
+ ROOT_DIR="$(dirname "$SCRIPT_DIR")"
9
+
10
+ # Patch opencode-pty spawn.txt tool description (adds anti-pattern guidance)
11
+ TARGET="$ROOT_DIR/node_modules/opencode-pty/src/plugin/pty/tools/spawn.txt"
12
+ PATCH="$SCRIPT_DIR/opencode-pty-spawn.txt"
13
+
14
+ if [ -f "$TARGET" ] && [ -f "$PATCH" ]; then
15
+ cp "$PATCH" "$TARGET"
16
+ echo "[patches] Applied opencode-pty spawn.txt patch"
17
+ else
18
+ echo "[patches] Skipped opencode-pty spawn.txt patch (target or patch not found)"
19
+ fi