{"_id":"@agntk/agent-harness","_rev":"24-64135da5f7cf62688b511c9c1a16783c","name":"@agntk/agent-harness","dist-tags":{"latest":"0.18.0"},"versions":{"0.1.1":{"name":"@agntk/agent-harness","version":"0.1.1","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.1.1","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"b4ff0a4e5a1aa198323be489058a30fb5ed06dcb","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.1.1.tgz","fileCount":212,"integrity":"sha512-2QjEDq2FixvCEVi2Hp9wL8W4rZQM4I3seT4PYhKDMm0iCRBG6P+vbjWC3iCAoH8jap6pKblMvClb82NlFMdoDQ==","signatures":[{"sig":"MEQCIBVCiGa6VSA/i1GAoAh3cXjU3ppCVyro7o+flT66duYdAiBBgomcowKghUNpH3wuMMEf/imMXs1WyuGPr4Yyg1+4mQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3946190},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"210126c09bc8c9d6584c7f99abffd214d888a771","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.1_1775654073114_0.475235954480697","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@agntk/agent-harness","version":"0.1.2","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.1.2","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"b74c8fd9cb8867755e409939db00a9d1a3aa9942","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.1.2.tgz","fileCount":212,"integrity":"sha512-oISPioxNEiwsp+n5vdhzUwzOVVlUo3Z6dQ1yjr91Y5qmO2iJVhrYbgKF60upcCiOgawkQAGN/13/jhD/m7pI5Q==","signatures":[{"sig":"MEUCICfJPRm3mrRin+3/tqkNEdozTFA5LVErTqqJM3hNfD9hAiEAqEm3CdkIue+/z2nKaiBcSFtOrZxRXhX5/dXXP2Dpx2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3947041},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"154798613b2f3282962e0f109237be6ab552d269","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.2_1775654469559_0.6067456652768062","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@agntk/agent-harness","version":"0.1.3","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.1.3","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"e35b70db5c9990e8e3af949dc07d7a798b4035ed","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.1.3.tgz","fileCount":212,"integrity":"sha512-dxpV8W2it7nrcAA0KG/t/ff0YHPf91xMG7QKC3n6wXMWrhytmx4+y6wGhnLWkHDhVIbQ/QwIIEiAlpdasbLPEw==","signatures":[{"sig":"MEYCIQDHPIcxeHJiMFmWux8gwWLmGc6+VFqGz2nb1XxvtgOn1wIhAOycnZl7No6fHFuSVnQT1QXn09Rb/s/TKYJ98fRuR2tJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3965084},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0525d52f965cb74565d877f5851176d31a5b2f79","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.3_1775655654516_0.6777828041575105","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@agntk/agent-harness","version":"0.1.4","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.1.4","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"1661b4e24ddf61e56fc2c0d7d63c05d8b08d8563","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.1.4.tgz","fileCount":212,"integrity":"sha512-Cwlj+wpGC2rkMbe3LNmdzMAtPIMCmm1OSmDCQ2D0VKeEIbsBhXeh1ZW+6yscLnj/9auMhCz5mCkNdGfkkfI1+Q==","signatures":[{"sig":"MEYCIQDE6fB6OTf0zjdiFMEzjJQq7ozrdp5RP/tz4gtTVDpMzAIhANU1bgVQ+3Z4lRftxPEbQ55R4PARNQcV2uZJPLsEm1cY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4001199},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"10fd00261290ad22aefb4a783fa2ad64f74baefb","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.4_1775656306194_0.05446826866101517","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@agntk/agent-harness","version":"0.1.5","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.1.5","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"74b2315eb4be3694fc6abeeddea2f24cf0fae5a8","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.1.5.tgz","fileCount":216,"integrity":"sha512-a1okNhgHpjrty3JHoWSb3bwW8lEjYJ4q2uHPCXTh4jj27/6Vol/zPcXAnoPMLhtou26rHfMXRiZkcv7ewDIiQA==","signatures":[{"sig":"MEYCIQDLRSTVJ8VAa8MWkSDOudlnMaejLblIbbWa7b7uDbE5xgIhAN/ovr4xc3SQbwfAcNd9HylBRVe/oDs6loVWSVSjvrEJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4038121},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b982cb94586d1407c5b1eea2baa7f7713e0670ae","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.5_1775656734860_0.38588270970473504","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@agntk/agent-harness","version":"0.1.6","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.1.6","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"119980956ba3db5e5b2323feeee5e02165799ebf","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.1.6.tgz","fileCount":191,"integrity":"sha512-JPD3IuqsNqA1L69g9rCNrc0IoB/klXob2wV1tkWN2sm84brWJ8/NkQ1Nv8Bt7/FppNA+YH/LFSXbpzuwBkjjRg==","signatures":[{"sig":"MEUCIQDFp4a4Tt/mb43y4O4DgOmuPsIJpEYd4+MlJSkBHhQsNgIgP9dUjcW8uUcE9CMYycQdYh6Tz0n1SoUvdWd3aHtxf24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2180684},"type":"module","engines":{"node":">=20"},"gitHead":"0816f8c93f0a9687a3e431cd07e6f4a1445a94ef","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.6_1775659390436_0.3086046220729348","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@agntk/agent-harness","version":"0.1.7","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.1.7","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"84e53ff7c475127a8a1f4060590c6ed599913752","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.1.7.tgz","fileCount":191,"integrity":"sha512-G1l6F1sOsYIUXw4LXO/qoy9pfH5erc2oi6S5dIZCopZKprH3sGX8Og8a3OPSGph7p7hJ0w9H/ZKdJh/rbmnNmw==","signatures":[{"sig":"MEYCIQD4IXkrCjPqWNBXMQCJvp+lqmJjpYr9u9crrpefeOpAsQIhAMhpET75FZLJg5vdrIf4F07ZpYeNRLEP74lRb87fkclX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2182285},"type":"module","engines":{"node":">=20"},"gitHead":"fe9b8382ae5e5543050a404590cf4208c10839d0","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.7_1775661157051_0.7619971473828193","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@agntk/agent-harness","version":"0.1.8","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.1.8","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"b705a4775bccfc6cccfb447b3d59938c0d378d4c","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.1.8.tgz","fileCount":191,"integrity":"sha512-RwQzT/uXILtUUWGq7UNr9Lo0OVFHbJNfQKYTPENUXxB+SBxR2QSibvn76UHRJEFmdCtL7s3Ss4jcZ0EzL2tXvA==","signatures":[{"sig":"MEUCIQD9/OmVXkETeu8O6kj+TquT0JxD1bb19FT5FYpZqwymcwIgHU6K4r+x9Hir/sYPvBT0zPuE4fVDE2IbXXu8F1+GwEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2187492},"type":"module","engines":{"node":">=20"},"gitHead":"e086118f109b16899e969e17841887831b68d0c2","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.8_1775667992021_0.5785668956469678","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agntk/agent-harness","version":"0.2.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.2.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"bc772c4ce0970c4e9a1ac5bf10c1f45cefa58c02","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.2.0.tgz","fileCount":200,"integrity":"sha512-YbBWgcxhvv9MHAVADURjMKjkjDIvdTGaFKXE4qpW1pBBCgsMk+kd4nHl0VbZPyiStoByLZR8n8vFUVYaiPBITw==","signatures":[{"sig":"MEUCID1NwL6jeq8YFhEuP5KGWUvBWrI9zW6vCjKoc1DluWOoAiEA3mv6coL+N8PGsKxESuN5k0wGdqykYVfh2hZZHa9tVNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2233604},"type":"module","engines":{"node":">=20"},"gitHead":"bc5f4dca7d4f5513eb04700523fbb9b65f35a75a","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.2.0_1776810532538_0.04268414695311362","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@agntk/agent-harness","version":"0.3.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.3.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"83769fdc77b58f14ed36074cf8041c613f1e689d","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.3.0.tgz","fileCount":202,"integrity":"sha512-TT/8hpl3UcYCyYcQ8yE1jZpNc7vLhbsP8mSzHgLZJoXRQmGpCP45JESHZeTivdEerOOh956XLF6fpv6pbovyYg==","signatures":[{"sig":"MEYCIQCCmldQ7h+pk52tyGu51uz9wDUwEWbZgQioUVJw0x1KSAIhAOArspiCmDU4INFJoe88oS8Y6FXnNtEP2A0NuHjEXSHz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2260079},"type":"module","engines":{"node":">=20"},"gitHead":"4837bc7987ca0a81c59148904ea37852751ff645","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.3.0_1776812851330_0.7073221358469446","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@agntk/agent-harness","version":"0.4.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.4.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"d1ce77dd2170ba6e11d3c61f3ba328a3496e1983","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.4.0.tgz","fileCount":204,"integrity":"sha512-XsBISj6hW8Jrw3iJ0xC/OWBX9bgfGG5cObKg8lLvcK3wQs+mEJIweKikYB63a4FEjC7bdkiPqWF7jeq5Q2qnLw==","signatures":[{"sig":"MEUCIDaLlB3rHr62pTIWPPejvcPgNqiB8sez0lJsRxx9sdpRAiEAtXdQ8AIv2sw2M9tl6JOfzrZhQ+ZMR5pCsqOgJYYuQc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2276974},"type":"module","engines":{"node":">=20"},"gitHead":"2fce1f96def88e1b1d426aa64ea9cfeefc3d31f4","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.4.0_1776814161245_0.7368566535841166","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@agntk/agent-harness","version":"0.5.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.5.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"cca11478aacc01cf59c106c54a9cdb38bbedf433","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.5.0.tgz","fileCount":206,"integrity":"sha512-i+4cq2wuAPCtOXjOtaE0lYV+TWoyikYZP5e9dDKobCdye1mxBAFwYgEYor3JhHlF+44Ym+7wEUhuUND9OAkjYw==","signatures":[{"sig":"MEYCIQDrrcAWuFBDhlmzEMtyXFI9n1XZRGLn2OheKc748GLfswIhAP6B+bID+ieREuJkwKTVY+cG9i0TR8/tDFmbQqmv+Q+y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2288265},"type":"module","engines":{"node":">=20"},"gitHead":"2bba862af999a48dbb63d538202e28b3cf7435da","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.5.0_1776814603314_0.8260173022963309","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@agntk/agent-harness","version":"0.6.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.6.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"ff8ad4692ddd11baf0ba282b9e67bee6d804b34f","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.6.0.tgz","fileCount":206,"integrity":"sha512-NX2jRgZfgsJbqY30wxMUXOvNeeUaaFmIdeDLNon6blNfbOnC3Mf1qqyzI6vFNsL+r+aP6IEYQOadcXZPgQYaFg==","signatures":[{"sig":"MEUCIDCf5gcjnbrsArMJq7laaASTp6oq9hiHFWXlQzeKOS9PAiEA3VZU5XqbZgXBGR0N41oNe+wpzlw0ns6grAxIxz6oAYY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2317115},"type":"module","engines":{"node":">=20"},"gitHead":"cea20578d7acda3bcbbdc987a0e735dfcdea0ba1","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.6.0_1776815543724_0.5711426737965399","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@agntk/agent-harness","version":"0.7.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.7.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"391e24a7bb13e51bd6b3e2353039def3721ba660","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.7.0.tgz","fileCount":212,"integrity":"sha512-ACXO57eR4Wko3r+8xNZz/d27KeIU23lZcV+YUYY4WOEzhCqCQzhJToIUsZGT8+INmrV+7JuID/fYyANzgNNLRw==","signatures":[{"sig":"MEQCIFx9JkDMJz5f6RTu60shDLA1yYpr9Cshf0/jb8FzbKtwAiBioZeH/x2xkQeMAaK07aSLYt4cOEJFTeL94zVAT2ab7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2366929},"type":"module","engines":{"node":">=20"},"gitHead":"1c236ac332ecfa232b3d2ee7acac9cb2d2e70d45","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.7.0_1776820686974_0.47224557131606004","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@agntk/agent-harness","version":"0.7.1","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.7.1","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"4d0eac0b8f6fe8448e4c810a1c90523b7e6455cb","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.7.1.tgz","fileCount":212,"integrity":"sha512-rbwS01e/rUcQuGDziIXfvmXRoclCW1v33ofRyza+ACRHFBcPDI5Yp5YcJ+bOea0k8okWNgemAoRQn4x+KHAykA==","signatures":[{"sig":"MEUCIQCtwYp1k6VjLBFmfwQcyCItMH6Fuf51MXFIHEG3nicdLQIgF/IXrJK1P5R9zY5AoNSvZ1OblIJz8/mYygrCuP4hln8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2368113},"type":"module","engines":{"node":">=20"},"gitHead":"2d02aeb96665ba26ce27e4441352938be128b511","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.7.1_1776821639555_0.029994093239022135","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@agntk/agent-harness","version":"0.7.2","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.7.2","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"41a943ad7c4d41763af6d7c6dd3a7e7113f12d97","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.7.2.tgz","fileCount":212,"integrity":"sha512-PNIuBJDKOuJPXQ1DZzoTmL8fvYDue3tcdQ9YNV4io1w+FF9Ftgqk3b3jtlZ4jDNtUHnzgEMUBuoPgT8JXyCd6Q==","signatures":[{"sig":"MEUCIAgpW3++65BYDiO/jUAwfX/Sntlwu8RCNcOXDYNNcjF0AiEAiZ1kX392QPKH6WvV5p7T83qtGIqNsIMAI8dYkZq+HEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2374049},"type":"module","engines":{"node":">=20"},"gitHead":"a4ffd65829d1aef242a6844c0c94c3d18c1a0625","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.7.2_1776822487307_0.04302161438941354","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@agntk/agent-harness","version":"0.7.3","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.7.3","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"31eac29044295ff61858c19827c3aeadae60e9ca","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.7.3.tgz","fileCount":212,"integrity":"sha512-AL6XgeCozTzKf9d5/nyUndzxr0LMjXsNQrGJp30nufpAIcXWvGDpLFkrgqf1LKsIMzS0r/l8N0ddp0KjYWClPg==","signatures":[{"sig":"MEUCIQDf71WnXhTogq7+E3FBx58LxHSsiYjOhn6/FTUKfShH+wIgfR2+AmOaiI+wyBmnTTQ7iwB9qxA3QOyfhUjb+wogFEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2376374},"type":"module","engines":{"node":">=20"},"gitHead":"5748b490cbf0f088d9c69ecfc7f75217b6851f9e","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.7.3_1776949846965_0.2996532450731175","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@agntk/agent-harness","version":"0.7.4","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.7.4","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"6a234f5e028999ed4d39b1a7925b5d7829561515","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.7.4.tgz","fileCount":216,"integrity":"sha512-tGZTlvz/M1jgjms9y99JUHRpIA5OxK12RLbs8s163B4hPNDdQEK+mIDrKsbVfevmk1496t0CZ++2MXt5wyqiSQ==","signatures":[{"sig":"MEYCIQCzVaMYMKmOQRoNxxi+fAg4HJX41mtYpKydkHj9Vk5WswIhAJDvrIvefgTt+geODTV8CvB9Sya20mvpoFmkmCvhkFqj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2388836},"type":"module","engines":{"node":">=20"},"gitHead":"98a410cda4d4dbe076f34a9f4ac8fa23046a2996","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.7.4_1776960312260_0.748767972016821","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"@agntk/agent-harness","version":"0.7.5","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.7.5","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"9c313d54122b1b11599ce84cb0aa592047f60311","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.7.5.tgz","fileCount":216,"integrity":"sha512-NlyS6lw1FoPEmeNEtlTYxu/eZBfLH8XhFHG4MbRwuD1NkLm3gsQcNrPMs32o6QE5ZqYLP5T4mfTp1jSfWpcXUg==","signatures":[{"sig":"MEUCIE1iqUgNK8JEWH/xL1gwB8IUnbTXdwghk6paOMN+Fk48AiEArmqqgcwgpcvy0Azi1N0buVAB8HRY3AFNy3baH0TdCJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.7.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2404777},"type":"module","engines":{"node":">=20"},"gitHead":"a3898126c77537e8b0ce668112f0c66ed66a06ab","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.7.5_1776961557970_0.35449265965176524","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@agntk/agent-harness","version":"0.8.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.8.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"ca96dded06cf83e254fa758a7fd245ece9232d85","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.8.0.tgz","fileCount":220,"integrity":"sha512-YiuJHQBqOXK6Rc8XszoGAS9ifzu/f6Xoj5eZ9ldbkMXgi7RrCov6SEtUi9F252TeWmblaeZANJEXh55DnxnuAQ==","signatures":[{"sig":"MEQCIEWjs6GdsSqUy+YNrevIO1AXR94bse98bqPvx5EhxH4wAiB2MlboWfxktBPlluqMXDCHbomwtHnFZL+1tL9+RjQpXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2456482},"type":"module","engines":{"node":">=20"},"gitHead":"025562714aa713de0065dbea24c2ead4202100df","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.8.0_1777046402809_0.286098165602497","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@agntk/agent-harness","version":"0.15.1","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.15.1","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"7fd174b4b68e626e2a291d6220a90873b774ae86","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.15.1.tgz","fileCount":302,"integrity":"sha512-49QnqYph9aaclW7EVtVPFrHDqnCHa6BBvVur4jOxUajbWonai09mcsGb+yvpMVwEsXr0fkqjzYEwLWmTSncF4Q==","signatures":[{"sig":"MEYCIQDK54H3TNq7ay37rczLvvEGGlS5UwjKGpeyIJr5pNqbZgIhAPbHWSr2iFh7cAo4y1CEell1GW5H2/7cdZizrIzdPAb0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3108759},"type":"module","engines":{"node":">=20"},"gitHead":"f77aa75a9745871e134d5cd3ef8487fd1fa6d890","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check:evals":"tsx scripts/check-default-evals.ts"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.15.1_1777483385006_0.11498556194112575","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@agntk/agent-harness","version":"0.16.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.16.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"be7695df1c3629d1e04bfd87b9c7f6c2311382cf","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.16.0.tgz","fileCount":302,"integrity":"sha512-o37Bs4eywX+Z9jCtmVjD3R/ckPXKmhX2SnvN1Pbg70XxsqspfEcqHX06+IaJEltk2hZ2fraNzjyRJxmo9DW/YQ==","signatures":[{"sig":"MEQCIAME4Osda6DpItO5iOj8a1F7C6GmJfdObjYH0x/2IVzGAiBQUxpRybdi2/cpRYzrAqvPZBtwp48KqAuXxhrYe8OcfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3110067},"type":"module","engines":{"node":">=20"},"gitHead":"a0a93b4658079492b405e2a4c5cfed9c51ac100d","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check:evals":"tsx scripts/check-default-evals.ts"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.16.0_1777543850731_0.3122749013563324","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@agntk/agent-harness","version":"0.17.0","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","_id":"@agntk/agent-harness@0.17.0","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"bin":{"harness":"dist/cli/index.js"},"dist":{"shasum":"d14e7e1ad27fb3a4efdaf5cc6ece52d9d919759a","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.17.0.tgz","fileCount":304,"integrity":"sha512-Vr86FXq9dLxRMCW02RwKy52l46fxKWEPR7FTYFrbISQgI4yhn5TMl82ZHkLlAnRG6kzak94LmByJM7M1WqQ32w==","signatures":[{"sig":"MEUCIQDAU5WSa+4mDh4Ylrgp658YML15F0Q+fMQvgVkoS1B/kgIgFM01m0Ao8inGqn3oCqutKzcCBXBntU7zr727QXlekSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3141323},"type":"module","engines":{"node":">=20"},"gitHead":"6c50174362c6eff79daaa3616aed88c53b09b357","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check:evals":"tsx scripts/check-default-evals.ts"},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"repository":{"url":"git+https://github.com/Phoenixrr2113/agent-harness.git","type":"git"},"_npmVersion":"10.8.2","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ai":"^6.0.146","zod":"^4.3.6","yaml":"^2.8.3","chalk":"^5.6.2","dotenv":"^17.4.1","chokidar":"^5.0.0","commander":"^14.0.3","node-cron":"^4.2.1","@ai-sdk/mcp":"^1.0.32","gray-matter":"^4.0.3","@ai-sdk/openai":"^3.0.50","@ai-sdk/anthropic":"^3.0.66","@inquirer/prompts":"^8.4.2","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.2","typescript":"^6.0.2","@types/node":"^25.5.2","@types/node-cron":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.17.0_1777556093280_0.8438108226371674","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@agntk/agent-harness","version":"0.18.0","description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","repository":{"type":"git","url":"git+https://github.com/Phoenixrr2113/agent-harness.git"},"homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"type":"module","bin":{"harness":"dist/cli/index.js"},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit","check:evals":"tsx scripts/check-default-evals.ts","clean":"rm -rf dist"},"keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"license":"MIT","engines":{"node":">=20"},"dependencies":{"@ai-sdk/anthropic":"^3.0.66","@ai-sdk/mcp":"^1.0.32","@ai-sdk/openai":"^3.0.50","@inquirer/prompts":"^8.4.2","@modelcontextprotocol/sdk":"^1.29.0","@openrouter/ai-sdk-provider":"^2.3.3","ai":"^6.0.146","chalk":"^5.6.2","chokidar":"^5.0.0","commander":"^14.0.3","dotenv":"^17.4.1","gray-matter":"^4.0.3","node-cron":"^4.2.1","yaml":"^2.8.3","zod":"^4.3.6"},"devDependencies":{"@types/node":"^25.5.2","@types/node-cron":"^3.0.11","tsup":"^8.5.1","typescript":"^6.0.2","vitest":"^4.1.2"},"_id":"@agntk/agent-harness@0.18.0","gitHead":"0f67103affd30a3c778874b890dbd5801cdbd94f","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-KLDvhA4qFNtU81ZDJ/pJcnA58TEq42+bIlATotXIX+4dDCj+6PhGeIIfi/3FXefpnrdF0ajw+Qr8doYpOllc7w==","shasum":"dc0528322b1593ff67b5ec3c7cb1271e1387f3a4","tarball":"https://registry.npmjs.org/@agntk/agent-harness/-/agent-harness-0.18.0.tgz","fileCount":304,"unpackedSize":3157910,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agntk%2fagent-harness@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDPep9OSWj1/+qLEsCwlRBYjSC5yC3d8/+6+0T0HridsAIgYIYn2EnYt4omFq9Y3SUk2f7MXdkwn6nP1/3r+TLmokA="}]},"_npmUser":{"name":"agntk","email":"randyrowanwilson@gmail.com"},"directories":{},"maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-harness_0.18.0_1777557458384_0.8646350241635772"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-08T13:14:33.011Z","modified":"2026-04-30T13:57:38.853Z","0.1.1":"2026-04-08T13:14:33.362Z","0.1.2":"2026-04-08T13:21:09.845Z","0.1.3":"2026-04-08T13:40:54.688Z","0.1.4":"2026-04-08T13:51:46.407Z","0.1.5":"2026-04-08T13:58:55.044Z","0.1.6":"2026-04-08T14:43:10.623Z","0.1.7":"2026-04-08T15:12:37.284Z","0.1.8":"2026-04-08T17:06:32.238Z","0.2.0":"2026-04-21T22:28:52.739Z","0.3.0":"2026-04-21T23:07:31.571Z","0.4.0":"2026-04-21T23:29:21.439Z","0.5.0":"2026-04-21T23:36:43.482Z","0.6.0":"2026-04-21T23:52:23.918Z","0.7.0":"2026-04-22T01:18:07.187Z","0.7.1":"2026-04-22T01:33:59.766Z","0.7.2":"2026-04-22T01:48:07.488Z","0.7.3":"2026-04-23T13:10:47.198Z","0.7.4":"2026-04-23T16:05:12.425Z","0.7.5":"2026-04-23T16:25:58.130Z","0.8.0":"2026-04-24T16:00:03.011Z","0.15.1":"2026-04-29T17:23:05.232Z","0.16.0":"2026-04-30T10:10:50.931Z","0.17.0":"2026-04-30T13:34:53.526Z","0.18.0":"2026-04-30T13:57:38.598Z"},"bugs":{"url":"https://github.com/Phoenixrr2113/agent-harness/issues"},"license":"MIT","homepage":"https://github.com/Phoenixrr2113/agent-harness#readme","keywords":["ai","agent","harness","autonomous","llm","openrouter","framework"],"repository":{"type":"git","url":"git+https://github.com/Phoenixrr2113/agent-harness.git"},"description":"A file-first agent operating system. Build AI agents by editing markdown files, not writing code.","maintainers":[{"name":"agntk","email":"randyrowanwilson@gmail.com"}],"readme":"# Agent Harness\n\n> **A self-managing, self-improving agent runtime. Point it at a problem, write what it should know in markdown, and watch it get better as you use it.**\n\nAgent Harness is the layer between \"I have an LLM API key\" and \"I have a working agent that does useful work.\" It handles identity, memory, tools, context budgeting, session capture, journal synthesis, rule learning, progressive disclosure, durable workflows, and MCP integration — so you describe the problem in markdown instead of wiring up 500 lines of TypeScript.\n\n**Who this is for**: anyone technical or semi-technical who has a repeating problem they want an agent to own. Writers, founders, ops people, researchers, developers, consultants, analysts. If you can describe what you want in a document, you can build an agent for it.\n\n## When to use this (and when not to)\n\n**Use it as itself.** `harness init my-agent && harness chat` — you're talking to an agent that works on whatever you give it. Standalone, identity in `IDENTITY.md`, memory under `memory/`, learning loop on by default.\n\n**Use it as your project's resident assistant.** Initialize a harness inside any codebase or workspace; the agent operates on that project's files, runs scripts, manages tasks, learns your patterns over time. Like having a colleague who's read every file and remembers every conversation.\n\n**Don't try to embed it inside another agent product.** If you're building something like Claude Code, Cursor, an in-house ops bot, a phone assistant, or any product where *you* own the agent loop, agent-harness isn't infrastructure for you — it is itself an agent, and embedding it gives you two minds in one process: two identity layers, two memory systems, two reflection loops, two tool registries, and a permanent orchestration tax between them. People have tried this and burned days on it. Don't.\n\nIf you're building your own agent product and want what's good here, **copy the patterns, not the runtime.** The file format is open ([Agent Skills compatible](https://agentskills.io)), the source is MIT-licensed, and ideas like progressive disclosure, session capture, journal synthesis, the instinct review queue, and the durable workflow engine all transplant cleanly into your codebase. The runtime itself is intentionally not exposed as a library — no `import { createAgent }`, no `exports` field in `package.json`, no published types. The `harness` CLI is the only supported entry point. That's by design, not an oversight.\n\n## What makes it different\n\nMost agent frameworks give you a box of parts and leave the rest to you. agent-harness gives you a runtime that does three things nobody else does:\n\n### 1. It manages itself\n- **Context budget**: three disclosure tiers (discovery / activation / resources) loaded intelligently so you never hit the token ceiling\n- **Session capture**: every interaction is recorded without asking\n- **Journal synthesis**: run `harness journal` and the agent writes its own daily reflection\n- **Dead primitive detection**: orphan files get flagged, contradictions get surfaced\n- **Format auto-repair**: `harness doctor` fixes missing frontmatter, tags, and summaries\n- **Scaffold validation**: primitives are checked for consistency on every load\n\nYou don't prune files, check token counts, or write cleanup scripts. The harness does its own housekeeping.\n\n### 2. It learns from itself\n\n```\nInteraction → Session → Journal → Rule proposed → Auto-installed → Behavior changes\n```\n\n1. Every `harness run` or `harness chat` is saved as a session.\n2. `harness journal` synthesizes the day's sessions and finds patterns across them.\n3. `harness learn --install` promotes patterns to **rules** — behavioral rules written to disk with full provenance (\"learned from session X because you kept doing Y\").\n4. On the next run, the agent loads the new rules and **actually behaves differently**.\n\nNo retraining. No fine-tuning. No tokenization. You use the agent for a week and it measurably improves, with an auditable trail of what changed and why.\n\n### 3. It runs durably\n\nLong-running workflows checkpoint to disk per step. If the process dies, the host reboots, or a tool call fails, the next `harness workflows resume <runId>` picks up from the last cached step instead of re-running everything. State + event log live in `.workflow-data/` and are greppable. See [Durable workflows](#durable-workflows).\n\n## Install\n\n```bash\nnpm install -g @agntk/agent-harness\nharness init my-agent && cd my-agent\n```\n\nPick a provider — hosted, free, or fully local:\n\n```bash\n# Option A: free hosted (no key needed — rate-limited community tier)\nharness config set model.provider agntk-free\nharness config set model.id \"llama3.1-8b\"\n\n# Option B: local via Ollama (zero external calls, your hardware)\nollama pull qwen3:1.7b\nharness config set model.provider ollama\nharness config set model.id \"qwen3:1.7b\"\n\n# Option C: hosted via OpenRouter / Anthropic / OpenAI / Cerebras\nexport OPENROUTER_API_KEY=sk-or-...\n# Default template already uses openrouter — no config change needed.\n\nharness run \"Help me decide between two options: A or B\"\n```\n\nThat's it. No config file to wire up, no tool layer to build, no state store to provision. Your agent is the folder.\n\n## Quick start: a 5-minute example\n\n```bash\n# Scaffold\nharness init research-buddy --template local -y\ncd research-buddy\n\n# Prepare a local model (skip if you set up hosted in the Install step)\nollama pull qwen3:1.7b\n\n# One-shot\nharness run \"Summarize the pros and cons of SQLite vs Postgres for side projects\"\n\n# Interactive, with conversation memory\nharness chat\n\n# See what's loaded, check token budget\nharness info\n\n# Dump the full assembled system prompt\nharness prompt\n\n# Build the learning loop\nharness journal            # synthesize today's sessions\nharness learn --install    # promote patterns to rules\nharness run \"Same question again\" # agent now applies its new rules\n\n# File watcher + scheduler (no dashboard by default — pass --web to start it)\nharness dev\nharness dev --web    # also start the dashboard at http://localhost:8080\n```\n\n## Why markdown (not code)\n\nWriting an agent in TypeScript or Python couples the agent's behavior to your programming environment. Markdown decouples them completely:\n\n- **Non-coders can author and edit** — if you can write a document, you can write a skill.\n- **Content is greppable, diffable, reviewable** — normal PR workflows work on agent behavior.\n- **The agent reads itself** — when you edit `skills/research.md`, the next run picks it up. No rebuild, no restart.\n- **The harness can write back** — `harness learn` produces markdown files you can read and edit by hand before accepting them.\n- **Portability** — the folder IS the agent. Share it by copying. Version it with git. Deploy it by tarring it.\n\nThe authoring surface is markdown files in a harness directory and the `harness` command — there's no library API by design (see [When to use this](#when-to-use-this-and-when-not-to)). For automation — cron jobs, CI runners, scheduled tasks — shell out to `harness run` or POST to `harness serve`.\n\n## How it works\n\nWhen you run `harness init my-agent`, you get this directory:\n\n```\nmy-agent/\n├── IDENTITY.md             # Agent identity\n├── config.yaml             # Model, runtime, memory, MCP, scheduler\n├── rules/                  # Always-loaded behavioral guidance\n├── skills/                 # Agent Skills bundles (discovery + activation)\n└── memory/\n    ├── state.md\n    ├── sessions/\n    ├── journal/\n    └── scratch.md\n```\n\n### Progressive disclosure\n\nThe harness loads files at three tiers per the [Agent Skills spec](https://agentskills.io/specification#progressive-disclosure):\n\n1. **Discovery** (~50–100 tokens per skill): name + description loaded for every skill at boot\n2. **Activation** (full body): loaded when the model invokes the skill\n3. **Resources** (`scripts/`, `references/`, `assets/`): loaded on demand via the agent's read tools\n\nIdentity (`IDENTITY.md`) and rules (`rules/`) are always loaded in full. Skills are loaded progressively.\n\n## The 2 primitives\n\nagent-harness has exactly two primitive types:\n\n| Primitive | Owner | Activation | Always loaded? |\n|---|---|---|---|\n| **Rules** | Human or learned (`author: agent`) | Always | Yes — full body in every system prompt |\n| **Skills** | Mixed | Discovery + activation per Agent Skills spec | No — only `name` + `description` until invoked |\n\nSkills can have different activation triggers via `metadata.harness-trigger`:\n\n| Trigger | When the harness fires the skill |\n|---|---|\n| (none) | User-invokable via the `activate_skill` tool |\n| `subagent` | User-invokable, runs in an isolated subagent session |\n| `prepare-call` | Per AI SDK call (modifies model/tools/instructions) |\n| `prepare-step` | Per step in the tool loop |\n| `step-finish` | After each step (observation) |\n| `run-finish` | After the run (observation) |\n| `tool-pre` / `tool-post` | Wraps every tool's execute |\n| `repair-tool-call` | When a tool call fails to validate |\n| `stop-condition` | Step boundaries (vote on early stop) |\n| `stream-transform` | Streaming output transform |\n\nA skill with `metadata.harness-schedule: <cron>` is invoked by the harness scheduler at the cron times instead of by the model.\n\nFor the previous 7-primitive shape and the migration story, run `harness doctor --migrate -d <dir>`.\n\n## Flat files vs bundled primitives\n\nBoth primitives (rules and skills) can live as a single `.md` file (`skills/research.md`, `rules/operations.md`) or as a **bundle**: a directory containing an entry markdown plus arbitrary support files — scripts, templates, references, examples.\n\n### Convention (Agent Skills compatible)\n\nThe harness follows the [Agent Skills open standard](https://agentskills.io) — adopted by Claude Code, OpenAI Codex, Cursor, GitHub Copilot, and ~40 other tools. A bundled skill drops into any of those tools without modification.\n\n```\nskills/\n├── research.md                         ← flat (single-file)\n└── debug-workflow/                     ← bundled\n    ├── SKILL.md                        ← entry, frontmatter + instructions\n    ├── scripts/\n    │   └── run-diagnostics.sh\n    ├── references/\n    │   └── error-catalog.md\n    └── assets/\n        └── bug-report-template.md\n\nrules/\n├── never-deploy-friday.md              ← flat\n└── content-policy/                     ← bundled\n    └── RULE.md\n```\n\n**Entry filename is kind-specific and uppercase**: `SKILL.md` for skills, `RULE.md` for rules. The loader looks for it in the bundle's root; missing it = parse error.\n\n### What's loaded into context\n\nOnly the entry markdown (name + description at discovery tier, full body at activation tier) enters the agent's system prompt — same progressive disclosure as flat files. Support files (`scripts/`, `references/`, `assets/`) stay on disk. The agent reads or executes them on demand via its Read/Bash tools when the body of the entry file points to them.\n\nThis keeps context budget predictable: a 12-file bundled skill costs the same tokens as a 1-file flat skill at discovery, until the agent decides a support file is worth pulling in.\n\n### Frontmatter schemas\n\nSkills use the strict Agent Skills schema; rules use the harness extension schema:\n\n```yaml\n# Agent Skills schema (canonical for skills/)\n---\nname: my-skill\ndescription: One-line description of what this skill does and when to use it.\nlicense: MIT\nallowed-tools: Read Bash(jq:*)\nmetadata:\n  harness-tags: \"knowledge-work,research\"\n  harness-status: active\n  harness-author: human\n  harness-created: \"2026-04-28\"\n---\n```\n\n```yaml\n# Harness extension schema (rules/)\n---\nname: my-rule\ndescription: One-line description.\ntags: [boundary]\nstatus: active\nauthor: human\ncreated: 2026-04-28\n---\n```\n\n**See [docs/skill-authoring.md](./docs/skill-authoring.md) for detailed authoring guidance.** Script authors: the [Script feedback contract](./docs/skill-authoring.md#script-feedback-contract) section covers JSON output shape, exit codes, `--help` requirements, idempotency, and long-running patterns.\n\n## Templates\n\n`harness init <name> --template <t>` picks a starting config:\n\n| Template | For |\n|---|---|\n| `base` | Default — OpenRouter + Claude Sonnet |\n| `local` | Fully local — Ollama + a 70B-class model on your hardware |\n| `dev` | Developer agent with filesystem + shell MCP pre-wired |\n| `claude-opus` | Claude Opus via OpenRouter |\n| `gpt4` | GPT-4o via OpenRouter |\n| `assistant` | General-purpose assistant profile |\n| `code-reviewer` | Code review profile |\n\nRun `harness init` with no args for interactive mode — it walks you through name, purpose, template, and optional AI-generated IDENTITY.md.\n\n## The learning loop\n\n```bash\n# After a few days of use\nharness journal --all     # synthesize every day with sessions\nharness learn --install   # propose + install rules\nharness harvest --install # pull rule candidates from journal entries\nharness auto-promote --install --threshold 3  # promote patterns seen 3+ times\n```\n\nInspect the learning state:\n```bash\nharness status         # primitives, sessions, config, state\nharness analytics      # session trends, tools used, token burn\nharness suggest        # skills the agent doesn't have yet but needs\nharness contradictions # conflicts between rules and skills\nharness dead-primitives # orphaned files not used in 30+ days\n```\n\n## Evaluating skills\n\nSkills can be evaluated for trigger reliability (does the model pick this skill when it should?) and output quality (does the skill produce better results than no skill?). Each default skill ships with `evals/triggers.json`; high-effort defaults also ship with `evals/evals.json`.\n\n```bash\n# Run trigger eval for a skill\nharness skill eval-triggers research\n\n# Run quality eval (with-skill vs no-skill baseline)\nharness skill eval-quality delegate-to-cli\n\n# Iteratively refine a skill's description against its trigger set\nharness skill optimize-description research\n\n# Iteratively refine a skill's body against its quality eval\nharness skill optimize-quality delegate-to-cli\n```\n\nFor the full reference — schema, scoring, workspace layout, promotion gate — see [docs/skill-evals.md](./docs/skill-evals.md).\n\nThe promotion gate (default-on for `harness rules promote`) verifies that agent-learned rules show measured benefit before being installed:\n\n```bash\nharness rules promote <candidate-id>                  # gated by default\nharness rules promote <candidate-id> --no-eval-gate   # power-user bypass\n```\n\n## Provider integration\n\n`harness export` adapts harness skills, rules, and identity into the formats other agent tools expect — so a project that already has `.claude/`, `.cursor/`, or `.github/copilot-instructions.md` can stay in sync with one source of truth. The harness directory is canonical; provider directories are generated artifacts (similar to a `dist/` build output) with embedded sha256 provenance markers used for drift detection.\n\nSix providers ship in v0.13.0: `claude`, `codex`, `agents` (cross-tool `.agents/`), `cursor`, `copilot`, `gemini`.\n\n```bash\nharness export claude                 # single provider\nharness export                        # all configured targets from config.yaml\nharness export --dry-run              # preview without writing\nharness doctor --check-drift          # check for external edits to generated files\n```\n\nConfigure targets per-provider in `config.yaml`:\n\n```yaml\nexport:\n  enabled: true\n  targets:\n    - provider: claude\n      path: \".claude\"\n    - provider: cursor\n      path: \".cursor\"\n  on_drift: warn\n```\n\nFor the full reference — per-provider format mapping, drift resolution, resync semantics, configuration schema — see [docs/provider-integration.md](./docs/provider-integration.md).\n\n> **Renamed in v0.13.0.** The previous `harness export <output.json>` (portable harness bundle) is now `harness export-bundle <output.json>`. Same behavior; only the verb changed to free up `export` for provider integration.\n\n## Durable workflows\n\nAs of 0.7.0, workflows run durably. Each step of a tool-using agent checkpoints to disk, so interruptions don't cost the whole run.\n\n```bash\nharness workflows status               # list runs (active, complete, failed)\nharness workflows inspect <runId>      # print state + full event log\nharness workflows resume <runId>       # manually resume an incomplete run\nharness workflows cleanup --older-than 30  # drop old completed runs\n```\n\nThe scheduler also drains resumable runs on boot. Tool calls with identical inputs replay from cache instead of re-executing — idempotency is free. Run state and JSONL event log live in `.workflow-data/`.\n\nOpt any individual workflow in by setting `durable: true` in its frontmatter, or flip the default in `config.yaml`:\n\n```yaml\nworkflows:\n  durable_default: true\nmemory:\n  workflow_retention_days: 30\n```\n\n## Sub-agents and delegation\n\nDefine a subagent skill by setting `metadata.harness-trigger: subagent` in the skill's frontmatter. When the model invokes the skill via `activate_skill`, the harness spawns a fresh `agent.generate` call with the skill's body as the system prompt and returns the final text to the parent. See [docs/skill-authoring.md](./docs/skill-authoring.md#subagent-skills) for the full authoring pattern.\n\n```yaml\n---\nname: summarizer\ndescription: Summarize a long text into 3 bullet points.\nmetadata:\n  harness-trigger: subagent\n  harness-model: fast   # primary (default) | summary | fast\n---\nYou are a summarization agent. Return exactly 3 bullet points capturing the key points of the input.\n```\n\n- **`primary`** — uses `config.model.id`. Same model as `harness run`.\n- **`summary`** — uses `config.model.summary_model`, falling back to primary.\n- **`fast`** — uses `config.model.fast_model`, then summary, then primary.\n\nCall a skill-based subagent directly from the CLI:\n\n```bash\nharness skill list                           # list all skills including subagent skills\nharness skill run summarizer \"Summarize this paragraph: ...\"\n```\n\nAll three model roles resolve on the **same provider** as your primary config.\n\n## CLI agent delegation (opt-in)\n\nThe harness can delegate bounded subtasks to local CLI agents you already have installed — `claude`, `codex`, or `gemini` — by shelling out via a shell MCP. The CLI does its own tool-use internally and returns text; the harness only sees the final answer. This pushes heavy work (reading many files, long summarizations) onto your CLI subscription instead of the harness's API budget.\n\n> ⚠ **TOS notice.** Invoking a subscription-backed CLI programmatically from another agent may fall outside the acceptable-use terms of that subscription. Delegation is **opt-in, default off**. Review each provider's terms before enabling.\n\nDuring `harness init`, if any of `claude` / `codex` / `gemini` are on your PATH, you'll see a prompt with a TOS warning. Typing `y` activates the `skills/delegate-to-cli.md` decision-tree skill and installs the `shell` MCP (desktop-commander, filtered to process tools only).\n\n**Picking the right permission flag matters** — without it, the subagent subprocess stalls silently in a non-TTY context:\n\n| CLI | Read-only | In-place edits |\n|---|---|---|\n| `claude` | *(no flag)* | `--permission-mode bypassPermissions` |\n| `codex` | `-s read-only` *(default)* | `--dangerously-bypass-approvals-and-sandbox` |\n| `gemini` | *(no flag)* | verify with `gemini --help` in current release |\n\nThe `delegate-to-cli` skill documents the full decision tree (when to delegate, which CLI for which task, orchestration loop, failure modes). To activate later without rerunning init:\n\n```bash\n# Flip status on the skill you want, then install the shell MCP.\nsed -i '' 's/^status: draft/status: active/' skills/delegate-to-cli/SKILL.md\nharness mcp install shell -d <harness-dir>\n```\n\n## Guardrails\n\n### Per-tool approval\n\nDangerous tools (delete, write, exec) prompt before running. Defaults live in `config.yaml`, overrides are per-run:\n\n```bash\nharness run \"Clean up stale files\" --approve-all   # script/CI mode\n```\n\n### Reflection (self-critique)\n\nOptional `prepareStep` middleware that makes the agent critique its own draft before emitting a tool call or final response. Enable via config — useful when running cheaper models for work that needs a second look.\n\n### Content filters\n\nOutput filters for PII, blocked topics, and length. Applied as the last hop before text reaches the user. Configure per-agent.\n\n### Rule engine\n\n`harness check-rules <action>` runs a proposed action through every rule file and tells you what would be blocked and why. Also runs automatically in the middleware path before the model executes a tool.\n\n## Installing content\n\n```bash\n# Install from any source — file, URL, or registry name\nharness install https://raw.githubusercontent.com/.../skill.md\n\n# Search across configured sources\nharness sources search \"code review\"\n\n# Browse starter packs + installed primitives\nharness browse\n\n# MCP servers from the registry (or detected locally)\nharness mcp discover          # scans Claude Desktop, Cursor, VS Code, Cline, etc.\nharness mcp search github\nharness mcp install github\n```\n\nThe installer auto-detects format (Claude Code skills, raw markdown, bash hooks, MCP configs) and normalizes to harness convention with proper frontmatter.\n\n### Automatic provenance + license safety\n\nEvery `harness install <url>` records where content came from and what license governs it:\n\n```yaml\n# Auto-written into the installed file's frontmatter\nsource: https://raw.githubusercontent.com/owner/repo/main/skill.md\nsource_commit: 60af65e1d74303b965587f7d43ed7beb53e84d84\nlicense: MIT\ncopyright: Copyright (c) 2024 Seth Hobson\nlicense_source: https://github.com/owner/repo/blob/main/LICENSE\ninstalled_at: '2026-04-08T13:50:09.623Z'\ninstalled_by: agent-harness@<version>\n```\n\nThe detector checks per-file LICENSE siblings first (catches repos where each subdirectory has its own proprietary LICENSE), then the repo-root LICENSE via the GitHub API, then the file's own frontmatter. Strictest finding wins.\n\n**Proprietary content is blocked by default.** Configure the policy in `config.yaml`:\n\n```yaml\ninstall:\n  allowed_licenses: [MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MPL-2.0, CC-BY-4.0, CC0-1.0, Unlicense]\n  on_unknown_license: warn      # allow | warn | prompt | block\n  on_proprietary: block\n```\n\nOverride for one install with written permission:\n\n```bash\nharness install <url> --force-license MIT\n```\n\nShare your own primitives as bundles:\n\n```bash\nharness bundle my-skills.tar --types skills,rules\nharness bundle-install my-skills.tar\nharness installed               # list installed bundles\nharness update <bundle-name>    # pull a new version\n```\n\n## Tools\n\nTwo tool layers, in priority order:\n\n1. **MCP servers** — the primary tool layer. Anything an agent reaches beyond its own files comes from an MCP server: web search, browsers, databases, file systems, code execution. `harness mcp search <query>` to find one, `harness mcp install <name>` to wire it up.\n\n2. **Narrowing per run** — `harness run \"...\" --tools read_text_file,edit_file` restricts a run to a subset of tools. Also settable in skill frontmatter as `active_tools:`.\n\n### MCP configuration\n\n```yaml\n# config.yaml\nmcp:\n  servers:\n    filesystem:\n      transport: stdio\n      command: npx\n      args: [\"-y\", \"@modelcontextprotocol/server-filesystem\", \".\"]\n      tools:\n        include: [read_text_file, edit_file, list_directory]\n    shell:\n      transport: stdio\n      command: npx\n      args: [\"-y\", \"@wonderwhy-er/desktop-commander\"]\n      tools:\n        include: [start_process, read_process_output, interact_with_process, force_terminate, list_processes]\n    my-api:\n      transport: http\n      url: https://example.com/mcp\n      headers:\n        Authorization: \"Bearer ${API_KEY}\"\n```\n\nDuring `harness init`, MCP servers on your machine are auto-discovered and added to your config.\n\n## Dev mode and dashboard\n\n`harness dev` starts the file watcher + scheduler. The web dashboard is a separate opt-in (was on by default before v0.15.0):\n\n- **File watcher** — auto-rebuilds indexes when you edit primitives\n- **Auto-processor** — fills missing frontmatter and descriptions on save\n- **Scheduler** — runs scheduled skills (`metadata.harness-schedule`) and drains resumable durable workflow runs\n- **Web dashboard** — opt-in via `--web`. Browse primitives, chat, view sessions at `http://localhost:8080`.\n\n```bash\nharness dev                    # Watcher + scheduler (no dashboard)\nharness dev --web              # Also start the dashboard on port 8080\nharness dev --web --port 9090  # Custom port for the dashboard\nharness dev --no-auto-process  # Skip auto-processing primitives on save\nharness dev --no-schedule      # Skip the scheduler\n```\n\nThe dashboard shows: agent status, health, spending, sessions, workflows, primitives browser, file editor, MCP status, settings editor, and a chat interface. `harness serve` is the API-only equivalent (same port default — pick one or the other; they don't run together by default).\n\n## Configuration\n\n`config.yaml`:\n\n```yaml\nagent:\n  name: my-agent\n  version: \"0.1.0\"\n\nmodel:\n  provider: openrouter           # openrouter | anthropic | openai | ollama | cerebras | agntk-free\n  id: anthropic/claude-sonnet-4  # Model ID format depends on provider\n  max_tokens: 200000\n  # base_url: https://...        # Override for OpenAI-compatible endpoints\n  # summary_model: ...            # Cheap model for auto-generation tasks\n  # fast_model: ...               # Fast model for validation/checks\n\nruntime:\n  scratchpad_budget: 10000\n  timezone: America/New_York\n  auto_process: true\n\nmemory:\n  session_retention_days: 7\n  journal_retention_days: 365\n  workflow_retention_days: 30\n\nworkflows:\n  durable_default: false\n\n# rate_limits:\n#   per_minute: 10\n#   per_hour: 100\n#   per_day: 500\n\n# budget:\n#   daily_limit_usd: 5.00\n#   monthly_limit_usd: 100.00\n#   enforce: true\n```\n\nRead, write, or inspect config from the CLI:\n\n```bash\nharness config show\nharness config get model.id\nharness config set model.provider ollama\n```\n\n## Providers\n\n| Provider | Env var | Notes |\n|---|---|---|\n| `openrouter` | `OPENROUTER_API_KEY` | Any model on OpenRouter. Default. |\n| `anthropic` | `ANTHROPIC_API_KEY` | Native Anthropic — use native model IDs (e.g. `claude-sonnet-4-5-20250929`) |\n| `openai` | `OPENAI_API_KEY` | Native OpenAI. `model.base_url` overrides for OpenAI-compat endpoints (Groq, Together, Fireworks, vLLM). |\n| `ollama` | — | Local. Reads `OLLAMA_BASE_URL` (default `http://localhost:11434/v1`). No auth. |\n| `cerebras` | `CEREBRAS_API_KEY` | Cerebras Inference API. Free developer tier at cerebras.ai. |\n| `agntk-free` | — | Free-tier proxy to Cerebras. Rate-limited. No key required. |\n\n`harness hardware` detects your CPU/GPU/RAM and suggests Ollama model tiers that will actually run on your machine.\n\n## CLI reference\n\nThe full surface is ~90 commands. `harness --help` shows everything; `harness <cmd> --help` drills down. Most-used:\n\n### Core\n`init`, `run`, `chat`, `info`, `prompt`, `status`, `validate`, `doctor`\n\n### Learning\n`journal`, `learn`, `harvest`, `auto-promote`, `suggest`, `contradictions`, `dead-primitives`, `enrich`\n\n### Workflows\n`workflows status|resume|cleanup|inspect` (durable runs), `metrics show|history`\n\n### Skills\n`skill new <name>`, `skill list [--scheduled] [--trigger <kind>]`, `skill validate <name>`, `skill eval-triggers <name>`, `skill eval-quality <name>`, `skill optimize-description <name>`, `skill optimize-quality <name>`\n\n### Rules\n`rules promote <candidate-id> [--no-eval-gate]`\n\n### MCP\n`mcp list|test|discover|search|install`\n\n### Content\n`install`, `bundle`, `bundle-install`, `installed`, `uninstall`, `update`, `registry search|install`, `sources search|list|add|remove`, `browse`\n\n### Development\n`dev`, `index`, `process`, `search`, `graph`, `serve`, `generate system`\n\n### Ops + governance\n`costs show|budget|clear`, `health`, `ratelimit status|clear`, `dashboard`, `check-rules`, `list-rules`, `gate run`, `intelligence promote|dead|contradictions|suggest|failures`\n\n### Portability\n`export-bundle`, `import`, `scratch`, `cleanup`, `version init|snapshot`, `semantic index|stats`\n\n### Provider integration\n`export [provider]`, `doctor --check-drift`\n\n### Misc\n`hardware`, `fix <file>`, `intake`, `compress`, `tools list|show`, `auth`, `emotional status|signal`, `state-merge apply|ownership`\n\n## Model aliases\n\nUse `-m <alias>` instead of a full model ID:\n\n| Alias | Resolves to |\n|---|---|\n| `gemma` | `google/gemma-4-26b-a4b-it` |\n| `gemma-31b` | `google/gemma-4-31b-it` |\n| `qwen` | `qwen/qwen3.5-35b-a3b` |\n| `glm` | `z-ai/glm-4.7-flash` |\n| `claude` | `anthropic/claude-sonnet-4` |\n| `gpt4o` | `openai/gpt-4o` |\n| `gpt4o-mini` | `openai/gpt-4o-mini` |\n\nAliases are shorthand for OpenRouter model IDs — change `model.id` directly if you need different routing.\n\n## HTTP server\n\n`harness serve` exposes a REST API for webhooks, scheduled jobs, and remote access — for triggering the agent from external systems like CI runners, cron, Zapier, or GitHub Actions. This is **not** a way to embed the agent inside another agent product (see [When to use this](#when-to-use-this-and-when-not-to)); it's a remote control surface for the same standalone agent.\n\n```bash\nharness serve --port 8080 --webhook-secret $SECRET\ncurl -X POST http://localhost:8080/run -H \"Authorization: Bearer $SECRET\" \\\n  -d '{\"prompt\":\"Summarize today\"}'\n```\n\n## How context loading works\n\nOn every run, the harness:\n\n1. Loads **IDENTITY.md** (always, full content)\n2. Loads **memory/state.md** (current goals and mode)\n3. Loads **rules/** — every active rule, full body\n4. Loads the **skills catalog** — name + description for each model-invokable skill (lifecycle-triggered and scheduled skills are excluded)\n5. Loads **memory/scratch.md** if it has content\n\nFull skill bodies are loaded only when the model calls `activate_skill`. This keeps context predictable regardless of how many skills you have.\n\nTotal harness overhead is typically ~1,000–3,000 tokens depending on how many rules and skills you have.\n\n## Environment variables\n\n| Variable | Purpose |\n|---|---|\n| `OPENROUTER_API_KEY` | OpenRouter provider |\n| `ANTHROPIC_API_KEY` | Anthropic provider |\n| `OPENAI_API_KEY` | OpenAI provider |\n| `CEREBRAS_API_KEY` | Cerebras provider |\n| `OLLAMA_BASE_URL` | Override Ollama host (default `http://localhost:11434/v1`) |\n| `HARNESS_VERBOSE` | `1` to surface dotenv/debug banners |\n\nThe `.env` and `.env.local` files in your harness directory are auto-loaded.\n\n## Upgrading from older versions\n\nIf your harness was created before 2026-04-28, run:\n\n```bash\nharness doctor --check                # see what would change\nharness doctor --migrate --dry-run    # preview the migration without applying (v0.14.0+)\nharness doctor --migrate              # apply the migration\n```\n\nThis handles renaming `CORE.md` → `IDENTITY.md`, deleting `SYSTEM.md` (now infrastructure docs), moving `state.md` → `memory/state.md`, restructuring flat skills into bundles, rewriting frontmatter to the strict Agent Skills shape, and migrating the old 7-primitive directories (instincts, playbooks, workflows, tools, agents) into the 2-primitive shape (skills + rules). The migration is idempotent.\n\nFor the full version-by-version diff and the breaking changes between v0.8.x and v0.16.0, see [CHANGELOG.md](./CHANGELOG.md).\n\n### Manual regression suite\n\n`docs/manual-regression.md` is a tiered checklist (Required ~50 items, Extended ~80, Exhaustive ~70) of behaviors the harness must satisfy at every release. The Required tier is the release gate — run it before every minor or major version bump. The mechanically-checkable items are also encoded in `tests/regression-suite.test.ts` and run on every `npm test`. See `docs/specs/2026-04-30-manual-regression-design.md` for the design rationale and `docs/manual-regression-findings-YYYY-MM-DD.md` files for past run records.\n\n## Philosophy\n\n- **The agent is the filesystem.** Not the code.\n- **Ownership is law.** Every file has exactly one owner.\n- **You shouldn't need to write code to build a capable agent.** But you can.\n- **Progressive disclosure.** Load what you need, at the level you need.\n- **Durability isn't optional.** Long runs fail. Checkpoint everything.\n- **Agents learn.** Rules evolve. Sessions become journals.\n- **Infrastructure does bookkeeping.** The agent does thinking.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}