codeply-cli 0.3.0 → 0.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.
- package/THIRD_PARTY_NOTICES.md +63 -63
- package/bin/codeply.js +129 -6
- package/lib/agent.mjs +2139 -2139
- package/lib/ai.mjs +6 -6
- package/lib/apply-patch.js +217 -217
- package/lib/arity-table.json +138 -138
- package/lib/arity.js +70 -70
- package/lib/auth.mjs +6 -6
- package/lib/cloud.mjs +708 -0
- package/lib/commands.js +103 -103
- package/lib/design-library/assemble-artifact.mjs +21 -21
- package/lib/design-library/cleanup.mjs +45 -45
- package/lib/design-library/index.json +22379 -22379
- package/lib/design-library/make-table-data.mjs +39 -39
- package/lib/diagnostics.js +192 -192
- package/lib/edit-engine.js +364 -364
- package/lib/github-agent.mjs +311 -290
- package/lib/history.js +75 -75
- package/lib/mcp.js +258 -258
- package/lib/native-tools.mjs +189 -189
- package/lib/oauth-connectors.js +2 -1
- package/lib/permissions.js +109 -109
- package/lib/plugins.js +353 -353
- package/lib/server.mjs +457 -457
- package/lib/session-db.js +220 -220
- package/lib/share.js +168 -168
- package/lib/skills.js +416 -416
- package/lib/snapshot.js +146 -146
- package/lib/terminal-hints.js +154 -154
- package/lib/tools.mjs +2012 -2012
- package/lib/typecheck-worker.js +147 -147
- package/lib/web-tools.js +158 -158
- package/package.json +49 -47
- package/skills/SOURCE.md +58 -58
- package/skills/accessibility/SKILL.md +147 -147
- package/skills/agent-architecture-audit/SKILL.md +257 -257
- package/skills/agent-eval/SKILL.md +147 -147
- package/skills/agent-harness-construction/SKILL.md +74 -74
- package/skills/agent-introspection-debugging/SKILL.md +154 -154
- package/skills/agent-payment-x402/SKILL.md +225 -225
- package/skills/agent-self-evaluation/SKILL.md +182 -182
- package/skills/agent-self-evaluation/references/evaluation-criteria.md +71 -71
- package/skills/agent-self-evaluation/references/hook-integration.md +64 -64
- package/skills/agent-sort/SKILL.md +216 -216
- package/skills/agentic-engineering/SKILL.md +64 -64
- package/skills/agentic-os/SKILL.md +388 -388
- package/skills/ai-first-engineering/SKILL.md +52 -52
- package/skills/ai-regression-testing/SKILL.md +386 -386
- package/skills/android-clean-architecture/SKILL.md +340 -340
- package/skills/angular-developer/SKILL.md +155 -155
- package/skills/angular-developer/references/angular-animations.md +160 -160
- package/skills/angular-developer/references/angular-aria.md +410 -410
- package/skills/angular-developer/references/cli.md +86 -86
- package/skills/angular-developer/references/component-harnesses.md +59 -59
- package/skills/angular-developer/references/component-styling.md +91 -91
- package/skills/angular-developer/references/components.md +117 -117
- package/skills/angular-developer/references/creating-services.md +97 -97
- package/skills/angular-developer/references/data-resolvers.md +69 -69
- package/skills/angular-developer/references/define-routes.md +67 -67
- package/skills/angular-developer/references/defining-providers.md +72 -72
- package/skills/angular-developer/references/di-fundamentals.md +120 -120
- package/skills/angular-developer/references/e2e-testing.md +56 -56
- package/skills/angular-developer/references/effects.md +83 -83
- package/skills/angular-developer/references/hierarchical-injectors.md +43 -43
- package/skills/angular-developer/references/host-elements.md +80 -80
- package/skills/angular-developer/references/injection-context.md +63 -63
- package/skills/angular-developer/references/inputs.md +101 -101
- package/skills/angular-developer/references/linked-signal.md +59 -59
- package/skills/angular-developer/references/loading-strategies.md +61 -61
- package/skills/angular-developer/references/mcp.md +108 -108
- package/skills/angular-developer/references/navigate-to-routes.md +69 -69
- package/skills/angular-developer/references/outputs.md +86 -86
- package/skills/angular-developer/references/reactive-forms.md +122 -122
- package/skills/angular-developer/references/rendering-strategies.md +44 -44
- package/skills/angular-developer/references/resource.md +77 -77
- package/skills/angular-developer/references/route-animations.md +56 -56
- package/skills/angular-developer/references/route-guards.md +52 -52
- package/skills/angular-developer/references/router-lifecycle.md +45 -45
- package/skills/angular-developer/references/router-testing.md +87 -87
- package/skills/angular-developer/references/show-routes-with-outlets.md +68 -68
- package/skills/angular-developer/references/signal-forms.md +795 -795
- package/skills/angular-developer/references/signals-overview.md +94 -94
- package/skills/angular-developer/references/tailwind-css.md +69 -69
- package/skills/angular-developer/references/template-driven-forms.md +114 -114
- package/skills/angular-developer/references/testing-fundamentals.md +65 -65
- package/skills/api-connector-builder/SKILL.md +121 -121
- package/skills/api-design/SKILL.md +524 -524
- package/skills/architecture-decision-records/SKILL.md +180 -180
- package/skills/article-writing/SKILL.md +80 -80
- package/skills/automation-audit-ops/SKILL.md +143 -143
- package/skills/autonomous-agent-harness/SKILL.md +274 -274
- package/skills/autonomous-loops/SKILL.md +611 -611
- package/skills/backend-patterns/SKILL.md +562 -562
- package/skills/benchmark/SKILL.md +95 -95
- package/skills/benchmark-methodology/SKILL.md +191 -191
- package/skills/benchmark-optimization-loop/SKILL.md +71 -71
- package/skills/blender-motion-state-inspection/SKILL.md +165 -165
- package/skills/blueprint/SKILL.md +106 -106
- package/skills/brand-discovery/SKILL.md +145 -145
- package/skills/brand-discovery/references/10_purpose-why.md +40 -40
- package/skills/brand-discovery/references/20_positioning.md +44 -44
- package/skills/brand-discovery/references/30_audience-niche.md +52 -52
- package/skills/brand-discovery/references/40_personality-archetype.md +57 -57
- package/skills/brand-discovery/references/50_voice-tone.md +59 -59
- package/skills/brand-discovery/references/60_narrative-story.md +50 -50
- package/skills/brand-discovery/references/70_founder-tension.md +49 -49
- package/skills/brand-discovery/references/90_SYNTHESIS.md +133 -133
- package/skills/brand-voice/SKILL.md +98 -98
- package/skills/brand-voice/references/voice-profile-schema.md +55 -55
- package/skills/browser-qa/SKILL.md +105 -105
- package/skills/bun-runtime/SKILL.md +85 -85
- package/skills/canary-watch/SKILL.md +108 -108
- package/skills/carrier-relationship-management/SKILL.md +212 -212
- package/skills/cisco-ios-patterns/SKILL.md +164 -164
- package/skills/ck/SKILL.md +148 -148
- package/skills/claude-devfleet/SKILL.md +112 -112
- package/skills/click-path-audit/SKILL.md +245 -245
- package/skills/clickhouse-io/SKILL.md +445 -445
- package/skills/code-tour/SKILL.md +254 -254
- package/skills/codebase-onboarding/SKILL.md +234 -234
- package/skills/codehealth-mcp/SKILL.md +167 -167
- package/skills/coding-standards/SKILL.md +551 -551
- package/skills/competitive-platform-analysis/SKILL.md +214 -214
- package/skills/competitive-report-structure/SKILL.md +162 -162
- package/skills/compose-multiplatform-patterns/SKILL.md +300 -300
- package/skills/config-gc/SKILL.md +120 -120
- package/skills/configure-ecc/SKILL.md +385 -385
- package/skills/connections-optimizer/SKILL.md +190 -190
- package/skills/content-engine/SKILL.md +132 -132
- package/skills/content-hash-cache-pattern/SKILL.md +162 -162
- package/skills/context-budget/SKILL.md +136 -136
- package/skills/continuous-agent-loop/SKILL.md +46 -46
- package/skills/continuous-learning/SKILL.md +132 -132
- package/skills/continuous-learning-v2/SKILL.md +361 -361
- package/skills/contract-first/SKILL.md +287 -287
- package/skills/cost-aware-llm-pipeline/SKILL.md +184 -184
- package/skills/cost-tracking/SKILL.md +97 -97
- package/skills/council/SKILL.md +204 -204
- package/skills/cpp-coding-standards/SKILL.md +724 -724
- package/skills/cpp-testing/SKILL.md +325 -325
- package/skills/crosspost/SKILL.md +112 -112
- package/skills/csharp-testing/SKILL.md +322 -322
- package/skills/customer-billing-ops/SKILL.md +141 -141
- package/skills/customs-trade-compliance/SKILL.md +263 -263
- package/skills/dart-flutter-patterns/SKILL.md +564 -564
- package/skills/dashboard-builder/SKILL.md +109 -109
- package/skills/data-scraper-agent/SKILL.md +765 -765
- package/skills/data-throughput-accelerator/SKILL.md +74 -74
- package/skills/database-migrations/SKILL.md +430 -430
- package/skills/deep-research/SKILL.md +160 -160
- package/skills/defi-amm-security/SKILL.md +167 -167
- package/skills/delivery-gate/SKILL.md +126 -126
- package/skills/deployment-patterns/SKILL.md +428 -428
- package/skills/design-system/SKILL.md +83 -83
- package/skills/django-celery/SKILL.md +458 -458
- package/skills/django-patterns/SKILL.md +735 -735
- package/skills/django-security/SKILL.md +644 -644
- package/skills/django-tdd/SKILL.md +730 -730
- package/skills/django-verification/SKILL.md +470 -470
- package/skills/dmux-workflows/SKILL.md +192 -192
- package/skills/docker-patterns/SKILL.md +365 -365
- package/skills/documentation-lookup/SKILL.md +91 -91
- package/skills/dotnet-patterns/SKILL.md +322 -322
- package/skills/dynamic-workflow-mode/SKILL.md +124 -124
- package/skills/e2e-testing/SKILL.md +327 -327
- package/skills/ecc-guide/SKILL.md +190 -190
- package/skills/ecc-recipes/SKILL.md +149 -149
- package/skills/ecc-tools-cost-audit/SKILL.md +161 -161
- package/skills/email-ops/SKILL.md +122 -122
- package/skills/energy-procurement/SKILL.md +228 -228
- package/skills/enterprise-agent-ops/SKILL.md +51 -51
- package/skills/error-handling/SKILL.md +377 -377
- package/skills/eval-harness/SKILL.md +271 -271
- package/skills/evm-token-decimals/SKILL.md +131 -131
- package/skills/exa-search/SKILL.md +108 -108
- package/skills/fal-ai-media/SKILL.md +289 -289
- package/skills/fastapi-patterns/SKILL.md +514 -514
- package/skills/finance-billing-ops/SKILL.md +128 -128
- package/skills/flox-environments/SKILL.md +497 -497
- package/skills/flutter-dart-code-review/SKILL.md +436 -436
- package/skills/foundation-models-on-device/SKILL.md +243 -243
- package/skills/frontend-a11y/SKILL.md +446 -446
- package/skills/frontend-design-direction/SKILL.md +93 -93
- package/skills/frontend-patterns/SKILL.md +657 -657
- package/skills/frontend-slides/SKILL.md +185 -185
- package/skills/fsharp-testing/SKILL.md +281 -281
- package/skills/gan-style-harness/SKILL.md +279 -279
- package/skills/gateguard/SKILL.md +133 -133
- package/skills/generating-python-installer/SKILL.md +820 -820
- package/skills/git-workflow/SKILL.md +716 -716
- package/skills/github-ops/SKILL.md +145 -145
- package/skills/golang-patterns/SKILL.md +676 -676
- package/skills/golang-testing/SKILL.md +721 -721
- package/skills/google-workspace-ops/SKILL.md +96 -96
- package/skills/growth-log/SKILL.md +128 -128
- package/skills/healthcare-cdss-patterns/SKILL.md +246 -246
- package/skills/healthcare-emr-patterns/SKILL.md +160 -160
- package/skills/healthcare-eval-harness/SKILL.md +208 -208
- package/skills/healthcare-phi-compliance/SKILL.md +146 -146
- package/skills/hermes-imports/SKILL.md +89 -89
- package/skills/hexagonal-architecture/SKILL.md +277 -277
- package/skills/hipaa-compliance/SKILL.md +79 -79
- package/skills/homelab-network-readiness/SKILL.md +170 -170
- package/skills/homelab-network-setup/SKILL.md +130 -130
- package/skills/homelab-pihole-dns/SKILL.md +275 -275
- package/skills/homelab-vlan-segmentation/SKILL.md +312 -312
- package/skills/homelab-wireguard-vpn/SKILL.md +306 -306
- package/skills/hookify-rules/SKILL.md +128 -128
- package/skills/inherit-legacy-style/SKILL.md +157 -157
- package/skills/intent-driven-development/SKILL.md +360 -360
- package/skills/inventory-demand-planning/SKILL.md +247 -247
- package/skills/investor-materials/SKILL.md +97 -97
- package/skills/investor-outreach/SKILL.md +92 -92
- package/skills/ios-icon-gen/SKILL.md +158 -158
- package/skills/iterative-retrieval/SKILL.md +212 -212
- package/skills/ito-basket-compare/SKILL.md +64 -64
- package/skills/ito-compute/SKILL.md +129 -129
- package/skills/ito-data-atlas-agent/SKILL.md +64 -64
- package/skills/ito-market-intelligence/SKILL.md +61 -61
- package/skills/ito-trade-planner/SKILL.md +68 -68
- package/skills/java-coding-standards/SKILL.md +384 -384
- package/skills/jira-integration/SKILL.md +303 -303
- package/skills/jpa-patterns/SKILL.md +152 -152
- package/skills/knowledge-ops/SKILL.md +155 -155
- package/skills/kotlin-coroutines-flows/SKILL.md +285 -285
- package/skills/kotlin-exposed-patterns/SKILL.md +720 -720
- package/skills/kotlin-ktor-patterns/SKILL.md +690 -690
- package/skills/kotlin-patterns/SKILL.md +712 -712
- package/skills/kotlin-testing/SKILL.md +825 -825
- package/skills/kubernetes-patterns/SKILL.md +756 -756
- package/skills/laravel-patterns/SKILL.md +416 -416
- package/skills/laravel-plugin-discovery/SKILL.md +230 -230
- package/skills/laravel-security/SKILL.md +948 -948
- package/skills/laravel-tdd/SKILL.md +675 -675
- package/skills/laravel-verification/SKILL.md +180 -180
- package/skills/latency-critical-systems/SKILL.md +75 -75
- package/skills/lead-intelligence/SKILL.md +322 -322
- package/skills/liquid-glass-design/SKILL.md +279 -279
- package/skills/llm-trading-agent-security/SKILL.md +147 -147
- package/skills/logistics-exception-management/SKILL.md +222 -222
- package/skills/loop-design-check/SKILL.md +143 -143
- package/skills/mailtrap-email-integration/SKILL.md +77 -77
- package/skills/make-interfaces-feel-better/SKILL.md +152 -152
- package/skills/manim-video/SKILL.md +90 -90
- package/skills/market-research/SKILL.md +76 -76
- package/skills/marketing-campaign/SKILL.md +114 -114
- package/skills/mcp-server-patterns/SKILL.md +70 -70
- package/skills/messages-ops/SKILL.md +105 -105
- package/skills/ml-adoption-playbook/SKILL.md +57 -57
- package/skills/mle-workflow/SKILL.md +348 -348
- package/skills/motion-advanced/SKILL.md +596 -596
- package/skills/motion-foundations/SKILL.md +299 -299
- package/skills/motion-patterns/SKILL.md +434 -434
- package/skills/motion-ui/SKILL.md +576 -576
- package/skills/mysql-patterns/SKILL.md +413 -413
- package/skills/nanoclaw-repl/SKILL.md +34 -34
- package/skills/nestjs-patterns/SKILL.md +231 -231
- package/skills/netmiko-ssh-automation/SKILL.md +174 -174
- package/skills/network-bgp-diagnostics/SKILL.md +168 -168
- package/skills/network-config-validation/SKILL.md +211 -211
- package/skills/network-interface-health/SKILL.md +153 -153
- package/skills/nextjs-turbopack/SKILL.md +58 -58
- package/skills/nodejs-keccak256/SKILL.md +103 -103
- package/skills/nutrient-document-processing/SKILL.md +168 -168
- package/skills/nuxt4-patterns/SKILL.md +101 -101
- package/skills/openclaw-persona-forge/SKILL.md +289 -289
- package/skills/openclaw-persona-forge/references/avatar-style.md +124 -124
- package/skills/openclaw-persona-forge/references/boundary-rules.md +53 -53
- package/skills/openclaw-persona-forge/references/error-handling.md +53 -53
- package/skills/openclaw-persona-forge/references/identity-tension.md +48 -48
- package/skills/openclaw-persona-forge/references/naming-system.md +39 -39
- package/skills/openclaw-persona-forge/references/output-template.md +166 -166
- package/skills/opensource-pipeline/SKILL.md +256 -256
- package/skills/orch-add-feature/SKILL.md +45 -45
- package/skills/orch-build-mvp/SKILL.md +49 -49
- package/skills/orch-change-feature/SKILL.md +43 -43
- package/skills/orch-fix-defect/SKILL.md +43 -43
- package/skills/orch-pipeline/SKILL.md +121 -121
- package/skills/orch-refine-code/SKILL.md +44 -44
- package/skills/parallel-execution-optimizer/SKILL.md +74 -74
- package/skills/perl-patterns/SKILL.md +505 -505
- package/skills/perl-security/SKILL.md +504 -504
- package/skills/perl-testing/SKILL.md +476 -476
- package/skills/plan-canvas/SKILL.md +153 -153
- package/skills/plan-orchestrate/SKILL.md +263 -263
- package/skills/plankton-code-quality/SKILL.md +237 -237
- package/skills/postgres-patterns/SKILL.md +148 -148
- package/skills/prediction-market-oracle-research/SKILL.md +64 -64
- package/skills/prediction-market-risk-review/SKILL.md +61 -61
- package/skills/premium-web-design/SKILL.md +154 -154
- package/skills/prisma-patterns/SKILL.md +401 -401
- package/skills/product-capability/SKILL.md +142 -142
- package/skills/product-lens/SKILL.md +93 -93
- package/skills/production-audit/SKILL.md +207 -207
- package/skills/production-scheduling/SKILL.md +238 -238
- package/skills/project-flow-ops/SKILL.md +112 -112
- package/skills/prompt-optimizer/SKILL.md +398 -398
- package/skills/python-patterns/SKILL.md +751 -751
- package/skills/python-testing/SKILL.md +817 -817
- package/skills/pytorch-patterns/SKILL.md +397 -397
- package/skills/quality-nonconformance/SKILL.md +260 -260
- package/skills/quarkus-patterns/SKILL.md +723 -723
- package/skills/quarkus-security/SKILL.md +468 -468
- package/skills/quarkus-tdd/SKILL.md +812 -812
- package/skills/quarkus-verification/SKILL.md +480 -480
- package/skills/ralphinho-rfc-pipeline/SKILL.md +68 -68
- package/skills/react-native-patterns/SKILL.md +326 -326
- package/skills/react-patterns/SKILL.md +342 -342
- package/skills/react-performance/SKILL.md +575 -575
- package/skills/react-testing/SKILL.md +424 -424
- package/skills/recsys-pipeline-architect/SKILL.md +115 -115
- package/skills/recursive-decision-ledger/SKILL.md +81 -81
- package/skills/redis-patterns/SKILL.md +404 -404
- package/skills/regex-vs-llm-structured-text/SKILL.md +221 -221
- package/skills/remotion-video-creation/SKILL.md +43 -43
- package/skills/repo-scan/SKILL.md +79 -79
- package/skills/research-ops/SKILL.md +113 -113
- package/skills/returns-reverse-logistics/SKILL.md +240 -240
- package/skills/rules-distill/SKILL.md +265 -265
- package/skills/rust-patterns/SKILL.md +500 -500
- package/skills/rust-testing/SKILL.md +501 -501
- package/skills/safety-guard/SKILL.md +76 -76
- package/skills/santa-method/SKILL.md +307 -307
- package/skills/scientific-db-pubmed-database/SKILL.md +176 -176
- package/skills/scientific-db-uspto-database/SKILL.md +178 -178
- package/skills/scientific-pkg-gget/SKILL.md +167 -167
- package/skills/scientific-thinking-literature-review/SKILL.md +193 -193
- package/skills/scientific-thinking-scholar-evaluation/SKILL.md +161 -161
- package/skills/search-first/SKILL.md +183 -183
- package/skills/security-bounty-hunter/SKILL.md +100 -100
- package/skills/security-review/SKILL.md +504 -504
- package/skills/security-scan/SKILL.md +166 -166
- package/skills/seo/SKILL.md +155 -155
- package/skills/skill-comply/SKILL.md +59 -59
- package/skills/skill-scout/SKILL.md +141 -141
- package/skills/skill-stocktake/SKILL.md +195 -195
- package/skills/social-graph-ranker/SKILL.md +155 -155
- package/skills/social-publisher/SKILL.md +130 -130
- package/skills/springboot-patterns/SKILL.md +315 -315
- package/skills/springboot-security/SKILL.md +273 -273
- package/skills/springboot-tdd/SKILL.md +159 -159
- package/skills/springboot-verification/SKILL.md +232 -232
- package/skills/strategic-compact/SKILL.md +142 -142
- package/skills/swift-actor-persistence/SKILL.md +144 -144
- package/skills/swift-concurrency-6-2/SKILL.md +216 -216
- package/skills/swift-protocol-di-testing/SKILL.md +191 -191
- package/skills/swiftui-patterns/SKILL.md +259 -259
- package/skills/taste/SKILL.md +264 -264
- package/skills/taste/references/genre-taxonomy.md +87 -87
- package/skills/tdd-workflow/SKILL.md +583 -583
- package/skills/team-agent-orchestration/SKILL.md +111 -111
- package/skills/team-builder/SKILL.md +169 -169
- package/skills/terminal-ops/SKILL.md +110 -110
- package/skills/tinystruct-patterns/SKILL.md +279 -279
- package/skills/tinystruct-patterns/references/architecture.md +90 -90
- package/skills/tinystruct-patterns/references/data-handling.md +60 -60
- package/skills/tinystruct-patterns/references/database.md +99 -99
- package/skills/tinystruct-patterns/references/routing.md +64 -64
- package/skills/tinystruct-patterns/references/system-usage.md +97 -97
- package/skills/tinystruct-patterns/references/testing.md +72 -72
- package/skills/token-budget-advisor/SKILL.md +134 -134
- package/skills/ui-demo/SKILL.md +466 -466
- package/skills/ui-to-vue/SKILL.md +135 -135
- package/skills/uncloud/SKILL.md +344 -344
- package/skills/unified-memory/SKILL.md +170 -170
- package/skills/unified-notifications-ops/SKILL.md +188 -188
- package/skills/verification-loop/SKILL.md +129 -129
- package/skills/video-editing/SKILL.md +311 -311
- package/skills/videodb/SKILL.md +375 -375
- package/skills/visa-doc-translate/SKILL.md +117 -117
- package/skills/vite-patterns/SKILL.md +450 -450
- package/skills/vue-patterns/SKILL.md +471 -471
- package/skills/windows-desktop-e2e/SKILL.md +888 -888
- package/skills/workspace-surface-audit/SKILL.md +126 -126
- package/skills/x-api/SKILL.md +235 -235
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
# Third-party notices
|
|
2
|
-
|
|
3
|
-
Parts of the Codeply engine (codeply-cli/lib) are adapted from the open-source projects below. Each adapted section is marked in the source with a comment naming the project.
|
|
4
|
-
|
|
5
|
-
## opencode
|
|
6
|
-
|
|
7
|
-
https://github.com/sst/opencode
|
|
8
|
-
|
|
9
|
-
Used in: `lib/edit-engine.js` (fallback edit matchers), `lib/agent.mjs` (compaction summary template, instruction-file lookup order), `lib/snapshot.js` (hidden git snapshots for undo), `lib/arity.js` and `lib/arity-table.json` (command-name table for scoped approvals, copied from `permission/arity.ts`), `lib/ai.js` (retry-after handling), `lib/permissions.js` (rule evaluation approach), `lib/commands.js` (command file layout).
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
MIT License
|
|
13
|
-
|
|
14
|
-
Copyright (c) 2025 opencode
|
|
15
|
-
|
|
16
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
17
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
18
|
-
in the Software without restriction, including without limitation the rights
|
|
19
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
20
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
21
|
-
furnished to do so, subject to the following conditions:
|
|
22
|
-
|
|
23
|
-
The above copyright notice and this permission notice shall be included in all
|
|
24
|
-
copies or substantial portions of the Software.
|
|
25
|
-
|
|
26
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
27
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
28
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
29
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
30
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
31
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32
|
-
SOFTWARE.
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Hermes Agent
|
|
36
|
-
|
|
37
|
-
https://github.com/NousResearch/hermes-agent
|
|
38
|
-
|
|
39
|
-
Used in: `lib/terminal-hints.js` (failed-command hints, masked-success check), `lib/agent.mjs` (stall nudges, loop and failure-streak guards, fallback summary), `lib/tools.mjs` (task list design).
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
MIT License
|
|
43
|
-
|
|
44
|
-
Copyright (c) 2025 Nous Research
|
|
45
|
-
|
|
46
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
47
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
48
|
-
in the Software without restriction, including without limitation the rights
|
|
49
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
50
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
51
|
-
furnished to do so, subject to the following conditions:
|
|
52
|
-
|
|
53
|
-
The above copyright notice and this permission notice shall be included in all
|
|
54
|
-
copies or substantial portions of the Software.
|
|
55
|
-
|
|
56
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
57
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
58
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
59
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
60
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
61
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
62
|
-
SOFTWARE.
|
|
63
|
-
```
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
Parts of the Codeply engine (codeply-cli/lib) are adapted from the open-source projects below. Each adapted section is marked in the source with a comment naming the project.
|
|
4
|
+
|
|
5
|
+
## opencode
|
|
6
|
+
|
|
7
|
+
https://github.com/sst/opencode
|
|
8
|
+
|
|
9
|
+
Used in: `lib/edit-engine.js` (fallback edit matchers), `lib/agent.mjs` (compaction summary template, instruction-file lookup order), `lib/snapshot.js` (hidden git snapshots for undo), `lib/arity.js` and `lib/arity-table.json` (command-name table for scoped approvals, copied from `permission/arity.ts`), `lib/ai.js` (retry-after handling), `lib/permissions.js` (rule evaluation approach), `lib/commands.js` (command file layout).
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
MIT License
|
|
13
|
+
|
|
14
|
+
Copyright (c) 2025 opencode
|
|
15
|
+
|
|
16
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
17
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
18
|
+
in the Software without restriction, including without limitation the rights
|
|
19
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
20
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
21
|
+
furnished to do so, subject to the following conditions:
|
|
22
|
+
|
|
23
|
+
The above copyright notice and this permission notice shall be included in all
|
|
24
|
+
copies or substantial portions of the Software.
|
|
25
|
+
|
|
26
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
27
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
28
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
29
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
30
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
31
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32
|
+
SOFTWARE.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Hermes Agent
|
|
36
|
+
|
|
37
|
+
https://github.com/NousResearch/hermes-agent
|
|
38
|
+
|
|
39
|
+
Used in: `lib/terminal-hints.js` (failed-command hints, masked-success check), `lib/agent.mjs` (stall nudges, loop and failure-streak guards, fallback summary), `lib/tools.mjs` (task list design).
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
MIT License
|
|
43
|
+
|
|
44
|
+
Copyright (c) 2025 Nous Research
|
|
45
|
+
|
|
46
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
47
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
48
|
+
in the Software without restriction, including without limitation the rights
|
|
49
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
50
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
51
|
+
furnished to do so, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
The above copyright notice and this permission notice shall be included in all
|
|
54
|
+
copies or substantial portions of the Software.
|
|
55
|
+
|
|
56
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
57
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
58
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
59
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
60
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
61
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
62
|
+
SOFTWARE.
|
|
63
|
+
```
|
package/bin/codeply.js
CHANGED
|
@@ -509,19 +509,142 @@ githubCmd
|
|
|
509
509
|
let event;
|
|
510
510
|
try { event = JSON.parse(fs.readFileSync(cfg.GITHUB_EVENT_PATH, 'utf8')); } catch (e) { console.error(c.red(`Could not read the event: ${e.message}`)); process.exitCode = 1; return; }
|
|
511
511
|
const r = g.routeFromEnv(cfg);
|
|
512
|
-
|
|
513
|
-
console.error(c.red(r.error));
|
|
514
|
-
process.exitCode = 1;
|
|
515
|
-
return;
|
|
516
|
-
}
|
|
512
|
+
// A setup error is still reported on the issue, so the person who asked isn't left waiting.
|
|
517
513
|
const out = await g.runGithubAgent({
|
|
518
|
-
eventName: cfg.GITHUB_EVENT_NAME, event, token, route: r.route, env: cfg, cwd: process.cwd(),
|
|
514
|
+
eventName: cfg.GITHUB_EVENT_NAME, event, token, route: r.route, setupError: r.error, env: cfg, cwd: process.cwd(),
|
|
519
515
|
maxSteps: Math.max(1, Number(opts.maxSteps) || 40), log: (m) => console.log(m),
|
|
520
516
|
});
|
|
521
517
|
console.log(`${out.status}${out.url ? ` ${out.url}` : ''}`);
|
|
522
518
|
if (out.status === 'failed') { console.error(c.red(out.message || 'Failed.')); process.exitCode = 1; }
|
|
523
519
|
});
|
|
524
520
|
|
|
521
|
+
// ─── Craft Cloud ───────────────────────────────────────────────────────────
|
|
522
|
+
|
|
523
|
+
/** GITHUB_TOKEN, then the GitHub CLI's login, then Craft's own GitHub connection. */
|
|
524
|
+
function cloudToken() {
|
|
525
|
+
if (process.env.GITHUB_TOKEN) return process.env.GITHUB_TOKEN.trim();
|
|
526
|
+
try {
|
|
527
|
+
const t = require('child_process').execFileSync('gh', ['auth', 'token'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'], windowsHide: true }).trim();
|
|
528
|
+
if (t) return t;
|
|
529
|
+
} catch {}
|
|
530
|
+
const gh = config.getIntegration ? config.getIntegration('github') : {};
|
|
531
|
+
if (gh && gh.accessToken) return gh.accessToken;
|
|
532
|
+
throw new Error('No GitHub login. Connect GitHub in Craft, run "gh auth login", or set GITHUB_TOKEN.');
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
function cloudModel(id) {
|
|
536
|
+
const m = id ? config.getModel(id) || config.getModels().find((x) => x.name === id || x.model === id) : config.getSelectedModel();
|
|
537
|
+
if (!m) throw new Error(id ? `No model "${id}". Models: ${config.getModels().map((x) => x.name).join(', ') || 'none yet'}.` : 'Cloud runs use one of your own models. Pick one with "codeply model", or pass --model.');
|
|
538
|
+
return m;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
const cloudCmd = program
|
|
542
|
+
.command('cloud')
|
|
543
|
+
.description('Craft Cloud: run the agent on GitHub\'s machines (your account, your key) while this PC is off.');
|
|
544
|
+
|
|
545
|
+
cloudCmd
|
|
546
|
+
.command('setup')
|
|
547
|
+
.description('Create the private mirror repo for this folder, push a snapshot and store your model key as an encrypted secret.')
|
|
548
|
+
.option('--model <id>', 'model to use (default: the selected one)')
|
|
549
|
+
.action(async (opts) => {
|
|
550
|
+
try {
|
|
551
|
+
const cl = await import('../lib/cloud.mjs');
|
|
552
|
+
const r = await cl.setupCloud({ cwd: process.cwd(), token: cloudToken(), model: cloudModel(opts.model) });
|
|
553
|
+
console.log(c.green(`${r.created ? 'Created' : 'Using'} ${r.url} (private).`));
|
|
554
|
+
for (const s of r.skipped) console.log(c.yellow(` left out ${s.path}: ${s.reason}`));
|
|
555
|
+
console.log('Start a run with: codeply cloud run "<what to do>"');
|
|
556
|
+
} catch (e) { console.error(c.red(e.message)); process.exitCode = 1; }
|
|
557
|
+
});
|
|
558
|
+
|
|
559
|
+
cloudCmd
|
|
560
|
+
.command('run <prompt...>')
|
|
561
|
+
.description('Push the latest snapshot and start a cloud run.')
|
|
562
|
+
.option('--mode <mode>', 'Build, Plan or Ask', 'Build')
|
|
563
|
+
.option('--session <id>', 'continue this cloud chat')
|
|
564
|
+
.option('--model <id>', 'model to use (default: the selected one)')
|
|
565
|
+
.option('--wait', 'wait for the run and print the answer')
|
|
566
|
+
.action(async (words, opts) => {
|
|
567
|
+
try {
|
|
568
|
+
const cl = await import('../lib/cloud.mjs');
|
|
569
|
+
const token = cloudToken();
|
|
570
|
+
const cwd = process.cwd();
|
|
571
|
+
const task = await cl.startCloudRun({ cwd, token, prompt: words.join(' '), mode: opts.mode, sessionId: opts.session || '', model: cloudModel(opts.model) });
|
|
572
|
+
console.log(`Started cloud task ${task.id} on ${task.repo}.`);
|
|
573
|
+
if (!opts.wait) { console.log(`Check it with: codeply cloud status ${task.id}`); return; }
|
|
574
|
+
let t = task; let shown = '';
|
|
575
|
+
while (!['done', 'failed', 'cancelled'].includes(t.status)) {
|
|
576
|
+
await new Promise((r) => setTimeout(r, 5000));
|
|
577
|
+
t = await cl.cloudRunStatus({ cwd, taskId: task.id, token });
|
|
578
|
+
const line = `${t.status}${t.progress ? `: ${t.progress.split('\n')[0]}` : ''}`;
|
|
579
|
+
if (line !== shown) { console.log(c.dim(line)); shown = line; }
|
|
580
|
+
}
|
|
581
|
+
printCloudTask(t);
|
|
582
|
+
} catch (e) { console.error(c.red(e.message)); process.exitCode = 1; }
|
|
583
|
+
});
|
|
584
|
+
|
|
585
|
+
function printCloudTask(t) {
|
|
586
|
+
console.log(`${t.id} ${t.status} ${t.mode} ${t.prompt.split('\n')[0].slice(0, 60)}`);
|
|
587
|
+
if (t.runUrl) console.log(c.dim(` ${t.runUrl}`));
|
|
588
|
+
if (t.error) console.log(c.red(` ${t.error}`));
|
|
589
|
+
if (t.result && t.result.answer) console.log(`\n${t.result.answer}\n`);
|
|
590
|
+
if (t.result && t.result.files && t.result.files.length) console.log(`Changed: ${t.result.files.join(', ')}\nApply with: codeply cloud pull ${t.id}`);
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
cloudCmd
|
|
594
|
+
.command('status [task]')
|
|
595
|
+
.description('Show one cloud task, or the recent ones for this folder.')
|
|
596
|
+
.action(async (taskId) => {
|
|
597
|
+
try {
|
|
598
|
+
const cl = await import('../lib/cloud.mjs');
|
|
599
|
+
const cwd = process.cwd();
|
|
600
|
+
const p = cl.getProject(cwd);
|
|
601
|
+
if (!p || !p.repo) { console.log('Cloud is not set up here. Run: codeply cloud setup'); return; }
|
|
602
|
+
if (taskId) { printCloudTask(await cl.cloudRunStatus({ cwd, taskId, token: cloudToken() })); return; }
|
|
603
|
+
console.log(`Mirror: ${p.repo}${p.lastPush ? `, last snapshot ${new Date(p.lastPush.at).toLocaleString()}` : ''}`);
|
|
604
|
+
for (const t of (p.tasks || []).slice(0, 10)) console.log(`${t.id} ${t.status} ${t.mode} ${t.prompt.split('\n')[0].slice(0, 60)}`);
|
|
605
|
+
} catch (e) { console.error(c.red(e.message)); process.exitCode = 1; }
|
|
606
|
+
});
|
|
607
|
+
|
|
608
|
+
cloudCmd
|
|
609
|
+
.command('pull <task>')
|
|
610
|
+
.description('Apply a finished cloud run\'s changes to this folder (3-way merge).')
|
|
611
|
+
.action(async (taskId) => {
|
|
612
|
+
try {
|
|
613
|
+
const cl = await import('../lib/cloud.mjs');
|
|
614
|
+
const cwd = process.cwd();
|
|
615
|
+
const token = cloudToken();
|
|
616
|
+
await cl.cloudRunStatus({ cwd, taskId, token });
|
|
617
|
+
const r = await cl.pullCloudRun({ cwd, taskId, token });
|
|
618
|
+
if (!r.applied) { console.log(r.message); return; }
|
|
619
|
+
console.log(c.green(`Applied ${r.files.length} file${r.files.length === 1 ? '' : 's'}: ${r.files.join(', ')}`));
|
|
620
|
+
if (r.conflicts.length) console.log(c.yellow(`Conflicts to resolve (look for <<<<<<< markers): ${r.conflicts.join(', ')}`));
|
|
621
|
+
} catch (e) { console.error(c.red(e.message)); process.exitCode = 1; }
|
|
622
|
+
});
|
|
623
|
+
|
|
624
|
+
cloudCmd
|
|
625
|
+
.command('push')
|
|
626
|
+
.description('Back up this folder to its mirror now.')
|
|
627
|
+
.action(async () => {
|
|
628
|
+
try {
|
|
629
|
+
const cl = await import('../lib/cloud.mjs');
|
|
630
|
+
const r = await cl.pushSnapshot({ cwd: process.cwd(), token: cloudToken() });
|
|
631
|
+
console.log(r.pushed ? c.green(`Pushed snapshot ${r.sha.slice(0, 7)}.`) : 'Already up to date.');
|
|
632
|
+
for (const s of r.skipped) console.log(c.yellow(` left out ${s.path}: ${s.reason}`));
|
|
633
|
+
} catch (e) { console.error(c.red(e.message)); process.exitCode = 1; }
|
|
634
|
+
});
|
|
635
|
+
|
|
636
|
+
cloudCmd
|
|
637
|
+
.command('runner')
|
|
638
|
+
.description('Run one cloud task (used by the craft-cloud workflow inside GitHub Actions).')
|
|
639
|
+
.option('--max-steps <n>', 'step budget for the agent', '80')
|
|
640
|
+
.action(async (opts) => {
|
|
641
|
+
const cl = await import('../lib/cloud.mjs');
|
|
642
|
+
const s = cl.runnerSetup(process.env);
|
|
643
|
+
const out = await cl.runCloudRunner({ env: s.cfg, token: s.token, route: s.route, setupError: s.setupError, cwd: process.cwd(), maxSteps: Math.max(1, Number(opts.maxSteps) || 80), log: (m) => console.log(m) });
|
|
644
|
+
console.log(`${out.status}${out.result && out.result.branch ? ` ${out.result.branch}` : ''}`);
|
|
645
|
+
if (out.status === 'failed') { console.error(c.red((out.result && out.result.error) || 'Failed.')); process.exitCode = 1; }
|
|
646
|
+
});
|
|
647
|
+
|
|
525
648
|
program
|
|
526
649
|
.command('serve')
|
|
527
650
|
.description('Run the engine as a local HTTP API with a live event stream, for the desktop app, phone, editors and scripts.')
|