@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.
- package/config/customize.sh +143 -0
- package/config/kortix-env-setup.sh +25 -0
- package/kortix-master/package.json +22 -0
- package/kortix-master/src/config.ts +22 -0
- package/kortix-master/src/index.ts +44 -0
- package/kortix-master/src/routes/env.ts +65 -0
- package/kortix-master/src/routes/proxy.ts +108 -0
- package/kortix-master/src/routes/update.ts +185 -0
- package/kortix-master/src/services/proxy.ts +43 -0
- package/kortix-master/src/services/secret-store.ts +156 -0
- package/kortix-master/tsconfig.json +14 -0
- package/opencode/agents/kortix-browser.md +142 -0
- package/opencode/agents/kortix-build.md +62 -0
- package/opencode/agents/kortix-explore.md +66 -0
- package/opencode/agents/kortix-image-gen.md +33 -0
- package/opencode/agents/kortix-main.md +450 -0
- package/opencode/agents/kortix-plan.md +100 -0
- package/opencode/agents/kortix-research.md +84 -0
- package/opencode/agents/kortix-sheets.md +61 -0
- package/opencode/agents/kortix-slides.md +64 -0
- package/opencode/agents/kortix-web-dev.md +572 -0
- package/opencode/commands/email.md +36 -0
- package/opencode/commands/init.md +43 -0
- package/opencode/commands/journal.md +44 -0
- package/opencode/commands/memory-init.md +81 -0
- package/opencode/commands/memory-search.md +50 -0
- package/opencode/commands/memory-status.md +56 -0
- package/opencode/commands/research.md +36 -0
- package/opencode/commands/search.md +38 -0
- package/opencode/commands/slides.md +32 -0
- package/opencode/commands/spreadsheet.md +30 -0
- package/opencode/memory.json +37 -0
- package/opencode/ocx.jsonc +10 -0
- package/opencode/opencode.jsonc +103 -0
- package/opencode/package.json +25 -0
- package/opencode/patches/apply.sh +19 -0
- package/opencode/patches/opencode-pty-spawn.txt +49 -0
- package/opencode/plugin/background-agents.ts.disabled +483 -0
- package/opencode/plugin/kdco-primitives/get-project-id.ts +172 -0
- package/opencode/plugin/kdco-primitives/index.ts +26 -0
- package/opencode/plugin/kdco-primitives/log-warn.ts +51 -0
- package/opencode/plugin/kdco-primitives/mutex.ts +122 -0
- package/opencode/plugin/kdco-primitives/shell.ts +138 -0
- package/opencode/plugin/kdco-primitives/temp.ts +36 -0
- package/opencode/plugin/kdco-primitives/terminal-detect.ts +34 -0
- package/opencode/plugin/kdco-primitives/types.ts +13 -0
- package/opencode/plugin/kdco-primitives/with-timeout.ts +84 -0
- package/opencode/plugin/memory.ts +306 -0
- package/opencode/plugin/worktree/state.ts +412 -0
- package/opencode/plugin/worktree/terminal.ts +1002 -0
- package/opencode/plugin/worktree.ts +861 -0
- package/opencode/skills/KORTIX-browser/SKILL.md +478 -0
- package/opencode/skills/KORTIX-cron-triggers/SKILL.md +173 -0
- package/opencode/skills/KORTIX-deep-research/SKILL.md +278 -0
- package/opencode/skills/KORTIX-docx/SKILL.md +398 -0
- package/opencode/skills/KORTIX-docx/scripts/__init__.py +1 -0
- package/opencode/skills/KORTIX-docx/scripts/accept_changes.py +104 -0
- package/opencode/skills/KORTIX-docx/scripts/comment.py +244 -0
- package/opencode/skills/KORTIX-docx/scripts/office/helpers/__init__.py +0 -0
- package/opencode/skills/KORTIX-docx/scripts/office/helpers/merge_runs.py +199 -0
- package/opencode/skills/KORTIX-docx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/opencode/skills/KORTIX-docx/scripts/office/pack.py +159 -0
- package/opencode/skills/KORTIX-docx/scripts/office/soffice.py +183 -0
- package/opencode/skills/KORTIX-docx/scripts/office/unpack.py +132 -0
- package/opencode/skills/KORTIX-docx/scripts/office/validate.py +111 -0
- package/opencode/skills/KORTIX-docx/scripts/office/validators/__init__.py +15 -0
- package/opencode/skills/KORTIX-docx/scripts/office/validators/base.py +847 -0
- package/opencode/skills/KORTIX-docx/scripts/office/validators/docx.py +446 -0
- package/opencode/skills/KORTIX-docx/scripts/office/validators/pptx.py +275 -0
- package/opencode/skills/KORTIX-docx/scripts/office/validators/redlining.py +247 -0
- package/opencode/skills/KORTIX-docx/scripts/render_docx.py +179 -0
- package/opencode/skills/KORTIX-docx/scripts/templates/comments.xml +3 -0
- package/opencode/skills/KORTIX-docx/scripts/templates/commentsExtended.xml +3 -0
- package/opencode/skills/KORTIX-docx/scripts/templates/commentsExtensible.xml +3 -0
- package/opencode/skills/KORTIX-docx/scripts/templates/commentsIds.xml +3 -0
- package/opencode/skills/KORTIX-docx/scripts/templates/people.xml +3 -0
- package/opencode/skills/KORTIX-domain-research/SKILL.md +96 -0
- package/opencode/skills/KORTIX-domain-research/scripts/domain-lookup.py +810 -0
- package/opencode/skills/KORTIX-elevenlabs/SKILL.md +230 -0
- package/opencode/skills/KORTIX-elevenlabs/scripts/tts.py +389 -0
- package/opencode/skills/KORTIX-email/SKILL.md +145 -0
- package/opencode/skills/KORTIX-legal-writer/SKILL.md +409 -0
- package/opencode/skills/KORTIX-legal-writer/references/bluebook.md +152 -0
- package/opencode/skills/KORTIX-legal-writer/references/document-types.md +416 -0
- package/opencode/skills/KORTIX-legal-writer/scripts/courtlistener.py +291 -0
- package/opencode/skills/KORTIX-legal-writer/scripts/ecfr_lookup.py +299 -0
- package/opencode/skills/KORTIX-legal-writer/scripts/verify-legal.py +507 -0
- package/opencode/skills/KORTIX-logo-creator/SKILL.md +293 -0
- package/opencode/skills/KORTIX-logo-creator/references/prompt-patterns.md +134 -0
- package/opencode/skills/KORTIX-logo-creator/scripts/compose_logo.py +406 -0
- package/opencode/skills/KORTIX-logo-creator/scripts/create_logo_sheet.py +258 -0
- package/opencode/skills/KORTIX-logo-creator/scripts/remove_bg.py +96 -0
- package/opencode/skills/KORTIX-memory/SKILL.md +261 -0
- package/opencode/skills/KORTIX-memory/scripts/export-sessions.py +409 -0
- package/opencode/skills/KORTIX-paper-creator/SKILL.md +549 -0
- package/opencode/skills/KORTIX-paper-creator/assets/template.tex +101 -0
- package/opencode/skills/KORTIX-paper-creator/scripts/compile.sh +177 -0
- package/opencode/skills/KORTIX-paper-creator/scripts/openalex_to_bibtex.py +220 -0
- package/opencode/skills/KORTIX-paper-creator/scripts/verify.sh +354 -0
- package/opencode/skills/KORTIX-paper-search/SKILL.md +418 -0
- package/opencode/skills/KORTIX-pdf/SKILL.md +232 -0
- package/opencode/skills/KORTIX-pdf/forms.md +36 -0
- package/opencode/skills/KORTIX-pdf/reference.md +105 -0
- package/opencode/skills/KORTIX-pdf/scripts/check_bounding_boxes.py +65 -0
- package/opencode/skills/KORTIX-pdf/scripts/check_fillable_fields.py +11 -0
- package/opencode/skills/KORTIX-pdf/scripts/convert_pdf_to_images.py +33 -0
- package/opencode/skills/KORTIX-pdf/scripts/create_validation_image.py +37 -0
- package/opencode/skills/KORTIX-pdf/scripts/extract_form_field_info.py +122 -0
- package/opencode/skills/KORTIX-pdf/scripts/extract_form_structure.py +115 -0
- package/opencode/skills/KORTIX-pdf/scripts/fill_fillable_fields.py +98 -0
- package/opencode/skills/KORTIX-pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
- package/opencode/skills/KORTIX-plan/SKILL.md +228 -0
- package/opencode/skills/KORTIX-presentation-viewer/SKILL.md +87 -0
- package/opencode/skills/KORTIX-presentation-viewer/serve.ts +136 -0
- package/opencode/skills/KORTIX-presentation-viewer/viewer.html +559 -0
- package/opencode/skills/KORTIX-presentations/SKILL.md +344 -0
- package/opencode/skills/KORTIX-remotion/SKILL.md +56 -0
- package/opencode/skills/KORTIX-remotion/rules/3d.md +86 -0
- package/opencode/skills/KORTIX-remotion/rules/animations.md +29 -0
- package/opencode/skills/KORTIX-remotion/rules/assets.md +78 -0
- package/opencode/skills/KORTIX-remotion/rules/audio-visualization.md +198 -0
- package/opencode/skills/KORTIX-remotion/rules/audio.md +169 -0
- package/opencode/skills/KORTIX-remotion/rules/calculate-metadata.md +104 -0
- package/opencode/skills/KORTIX-remotion/rules/can-decode.md +75 -0
- package/opencode/skills/KORTIX-remotion/rules/charts.md +120 -0
- package/opencode/skills/KORTIX-remotion/rules/compositions.md +141 -0
- package/opencode/skills/KORTIX-remotion/rules/display-captions.md +184 -0
- package/opencode/skills/KORTIX-remotion/rules/extract-frames.md +229 -0
- package/opencode/skills/KORTIX-remotion/rules/ffmpeg.md +38 -0
- package/opencode/skills/KORTIX-remotion/rules/fonts.md +152 -0
- package/opencode/skills/KORTIX-remotion/rules/get-audio-duration.md +58 -0
- package/opencode/skills/KORTIX-remotion/rules/get-video-dimensions.md +68 -0
- package/opencode/skills/KORTIX-remotion/rules/get-video-duration.md +58 -0
- package/opencode/skills/KORTIX-remotion/rules/gifs.md +141 -0
- package/opencode/skills/KORTIX-remotion/rules/images.md +130 -0
- package/opencode/skills/KORTIX-remotion/rules/import-srt-captions.md +69 -0
- package/opencode/skills/KORTIX-remotion/rules/light-leaks.md +73 -0
- package/opencode/skills/KORTIX-remotion/rules/lottie.md +68 -0
- package/opencode/skills/KORTIX-remotion/rules/maps.md +401 -0
- package/opencode/skills/KORTIX-remotion/rules/measuring-dom-nodes.md +35 -0
- package/opencode/skills/KORTIX-remotion/rules/measuring-text.md +143 -0
- package/opencode/skills/KORTIX-remotion/rules/parameters.md +98 -0
- package/opencode/skills/KORTIX-remotion/rules/sequencing.md +118 -0
- package/opencode/skills/KORTIX-remotion/rules/subtitles.md +36 -0
- package/opencode/skills/KORTIX-remotion/rules/tailwind.md +11 -0
- package/opencode/skills/KORTIX-remotion/rules/text-animations.md +20 -0
- package/opencode/skills/KORTIX-remotion/rules/timing.md +179 -0
- package/opencode/skills/KORTIX-remotion/rules/transcribe-captions.md +70 -0
- package/opencode/skills/KORTIX-remotion/rules/transitions.md +197 -0
- package/opencode/skills/KORTIX-remotion/rules/transparent-videos.md +106 -0
- package/opencode/skills/KORTIX-remotion/rules/trimming.md +53 -0
- package/opencode/skills/KORTIX-remotion/rules/videos.md +171 -0
- package/opencode/skills/KORTIX-secrets/SKILL.md +280 -0
- package/opencode/skills/KORTIX-semantic-search/SKILL.md +213 -0
- package/opencode/skills/KORTIX-session-search/SKILL.md +807 -0
- package/opencode/skills/KORTIX-session-search/Untitled +1 -0
- package/opencode/skills/KORTIX-skill-creator/SKILL.md +163 -0
- package/opencode/skills/KORTIX-web-research/SKILL.md +69 -0
- package/opencode/skills/KORTIX-xlsx/LICENSE.txt +30 -0
- package/opencode/skills/KORTIX-xlsx/SKILL.md +549 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/helpers/__init__.py +0 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/helpers/merge_runs.py +199 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/pack.py +159 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/soffice.py +183 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/unpack.py +132 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/validate.py +111 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/validators/__init__.py +15 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/validators/base.py +847 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/validators/docx.py +446 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/validators/pptx.py +275 -0
- package/opencode/skills/KORTIX-xlsx/scripts/office/validators/redlining.py +247 -0
- package/opencode/skills/KORTIX-xlsx/scripts/recalc.py +184 -0
- package/opencode/tools/image-gen.ts +342 -0
- package/opencode/tools/image-search.ts +190 -0
- package/opencode/tools/memory-get.ts +168 -0
- package/opencode/tools/memory-search.ts +247 -0
- package/opencode/tools/presentation-gen.ts +723 -0
- package/opencode/tools/scrape-webpage.ts +115 -0
- package/opencode/tools/scripts/.python-version +1 -0
- package/opencode/tools/scripts/convert_pdf.py +184 -0
- package/opencode/tools/scripts/convert_pptx.py +562 -0
- package/opencode/tools/scripts/pyproject.toml +11 -0
- package/opencode/tools/scripts/uv.lock +287 -0
- package/opencode/tools/scripts/validate_slide.py +74 -0
- package/opencode/tools/show-user.ts +217 -0
- package/opencode/tools/tests/e2e-presentation-fix.ts +277 -0
- package/opencode/tools/tests/image-gen.test.ts +215 -0
- package/opencode/tools/tests/image-search.test.ts +125 -0
- package/opencode/tools/tests/memory-system-benchmark.ts +1076 -0
- package/opencode/tools/tests/presentation-gen.test.ts +389 -0
- package/opencode/tools/tests/scrape-webpage.test.ts +74 -0
- package/opencode/tools/tests/show-user.test.ts +241 -0
- package/opencode/tools/tests/video-gen.test.ts +110 -0
- package/opencode/tools/tests/web-search.test.ts +106 -0
- package/opencode/tools/video-gen.ts +200 -0
- package/opencode/tools/web-search.ts +153 -0
- package/opencode/tsconfig.json +29 -0
- package/package.json +36 -0
- package/patch-agent-browser.js +100 -0
- package/postinstall.sh +88 -0
- package/services/KORTIX-presentation-viewer/run +37 -0
- package/services/agent-browser-viewer/run +48 -0
- package/services/kortix-master/run +16 -0
- package/services/lss-sync/run +22 -0
- package/services/opencode-serve/run +25 -0
- 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,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
|