{"_id":"@floh-solutions/pharos-cli","_rev":"42-b1f49c1070d7e92b521d94d13b69eaf5","name":"@floh-solutions/pharos-cli","dist-tags":{"latest":"0.37.1"},"versions":{"0.1.0":{"name":"@floh-solutions/pharos-cli","version":"0.1.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.1.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"4ae4f9383edf2389357718dc91eb2b6e8939b643","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.1.0.tgz","fileCount":42,"integrity":"sha512-W9ixKaicStKIAK+i11EJHQmxE1RHvnHKx+HzbFs1VKsFy/a/tPTIFr8JnKZ71vBRytECcS5s1r5gz/vTHY2w9A==","signatures":[{"sig":"MEYCIQDwVpeG6bYSfy59eDGLRa7t0mv4Dm/5NKr4X0C153rb7wIhAKZl0E8wSHzIz1iC3QXF/QHNWLkvFjv0sMV4Lz7AQkuW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115111},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a5eebfa74a58e1d73cacb257a3dad83292109e65","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"deprecated":"Broken: published with npm instead of pnpm, so the workspace:* dependency protocol shipped verbatim and the package cannot be installed. Use 0.1.1.","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"workspace:*","@floh-solutions/plan-to-board":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.1.0_1785852209885_0.5336104181812269","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@floh-solutions/pharos-cli","version":"0.1.1","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.1.1","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"0932f21e91f239dabec121abde2cf4b8464d992a","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.1.1.tgz","fileCount":42,"integrity":"sha512-tpSA/oVC1jB69GRw1EAZ77tGT4XcFZH8fH6IFdIe6jeLXg3VHS3oxHmlyGrpDFN2OjGx+AFLPS6YxGRa/5atCg==","signatures":[{"sig":"MEYCIQDsTu+bgYJYdJQYR0PuJRex9NT2aNC4QtVeuE1CUYbFgwIhALlm+MF+c2STDVs03VkmJASmhexl7jA7CrGoYdTQBVb+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115098},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/7188980491c4537c68882da1f745dc4e/floh-solutions-pharos-cli-0.1.1.tgz","_integrity":"sha512-tpSA/oVC1jB69GRw1EAZ77tGT4XcFZH8fH6IFdIe6jeLXg3VHS3oxHmlyGrpDFN2OjGx+AFLPS6YxGRa/5atCg==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.1.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.1.1_1785852479047_0.2761687105164743","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@floh-solutions/pharos-cli","version":"0.2.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.2.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"cecbb90d628b83aa0929d0902824ca395c1d00c5","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.2.0.tgz","fileCount":46,"integrity":"sha512-6BByTPpwfg1o+9CSW2DceMHe+tf17rwoI28/kKIJ4OWxNFIo6fjfqOxmODNHIQtugolbZcw0DIHyk7uNUjUzJg==","signatures":[{"sig":"MEUCID+YFCk++p8NV2qbs/4JCivic/sFxZkxXponRXhfLJ7MAiEAinGB6pJTPA5BHHezJ2weAVezWDIBGmBVX2CzwRNZsTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139644},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/7dca15e7005fdabdc7a318fa94550362/floh-solutions-pharos-cli-0.2.0.tgz","_integrity":"sha512-6BByTPpwfg1o+9CSW2DceMHe+tf17rwoI28/kKIJ4OWxNFIo6fjfqOxmODNHIQtugolbZcw0DIHyk7uNUjUzJg==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.1.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.2.0_1785853282781_0.9147891125711887","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@floh-solutions/pharos-cli","version":"0.3.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.3.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"4630799e9e4af86229a8360e6d3e870f5f76b4a2","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.3.0.tgz","fileCount":47,"integrity":"sha512-m++qV9s+Icjg1vDdG1BjfxZgZ2sFRvq3N5yCNqbescQFzS8qlCfTE1siGV2jfBEPHtZ3HcIhwJkIw/zf8QKlTw==","signatures":[{"sig":"MEQCIBM1gRir1skcwxP0SowwAghqQkhj0QJWtgKEvaGu3TKlAiA7osuOgEDTnZFT3/eTpI00dsEqY5/jdOnvzcSMgQTaTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149946},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/e8941447db3bf5399ed02fe243b69b3b/floh-solutions-pharos-cli-0.3.0.tgz","_integrity":"sha512-m++qV9s+Icjg1vDdG1BjfxZgZ2sFRvq3N5yCNqbescQFzS8qlCfTE1siGV2jfBEPHtZ3HcIhwJkIw/zf8QKlTw==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.1.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.3.0_1785855329238_0.7750472201714382","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@floh-solutions/pharos-cli","version":"0.4.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.4.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"93be3123a80768ee5052a175c25300360e4a0960","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.4.0.tgz","fileCount":47,"integrity":"sha512-PbtqaaKnnC841VeDP/2lvf2VSocnR8GbW+MmHI+jnoa7VLgkVHFsBvRLNGUngj36dwb2SU3PxqyNk//dqf9FuA==","signatures":[{"sig":"MEQCIHV8msO8OQ8QUTTD/czUsy/8/lkTLLYeA1eFDP+y40KXAiARx9+k/V5iOloHvdK05+QEhd8Ls2vmDaFg78A5w7EJ5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150382},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/22a1d1a33fe4ee47130964fde460ce3e/floh-solutions-pharos-cli-0.4.0.tgz","_integrity":"sha512-PbtqaaKnnC841VeDP/2lvf2VSocnR8GbW+MmHI+jnoa7VLgkVHFsBvRLNGUngj36dwb2SU3PxqyNk//dqf9FuA==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.1.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.4.0_1785855678872_0.38911666064151107","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@floh-solutions/pharos-cli","version":"0.12.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.12.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"c1660399a538da1dff722868fb62bd8492060a61","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.12.0.tgz","fileCount":99,"integrity":"sha512-knN98rdN9XfPEyFR4D+DyX9wq7FG9GsAhoEohjYvUoAS4cU8cmTrtiEs4svpzJWYZEhrtVyBxyO0cZl/uH2FJw==","signatures":[{"sig":"MEUCIQC13zk4r51WzqRfU5l557l9XqjUk54bDKyinpASBAiXQgIgLNtbxKRaxhZdV/nxunoPzqbQ+x9wLHcflqp5CUNRngk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380408},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.12.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/644c3253381777690bf16a34eb29b4a2/floh-solutions-pharos-cli-0.12.0.tgz","_integrity":"sha512-knN98rdN9XfPEyFR4D+DyX9wq7FG9GsAhoEohjYvUoAS4cU8cmTrtiEs4svpzJWYZEhrtVyBxyO0cZl/uH2FJw==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.7.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.12.0_1786048023856_0.28614900986984804","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@floh-solutions/pharos-cli","version":"0.13.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.13.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"fe8fe385f626bc48be3de1b3b9292deb597ac1e5","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.13.0.tgz","fileCount":99,"integrity":"sha512-W7YK2KNGYrrhfVn69CZMLmPF+ykHu/3c1l9dNWNzndcZqZgqAesAIQkqKJP3ZmNcKCIg85QMl5NsqaPD1js+Bg==","signatures":[{"sig":"MEQCIB8/yXX+bv0Owdjgjlpsh5oeu/lh+8snt/mTnmlBE2W2AiAne1RPnWP9nOhXs5+9h4mLLEYmf08/Taw9V4gcqua0Tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394161},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.13.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/964affb6a6cdec701be41ab02f752779/floh-solutions-pharos-cli-0.13.0.tgz","_integrity":"sha512-W7YK2KNGYrrhfVn69CZMLmPF+ykHu/3c1l9dNWNzndcZqZgqAesAIQkqKJP3ZmNcKCIg85QMl5NsqaPD1js+Bg==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.7.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.13.0_1786109917734_0.32021137066553473","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@floh-solutions/pharos-cli","version":"0.14.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.14.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"a5d7f4e71f2f6f13ac0ca6026a109b76dd46c5cd","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.14.0.tgz","fileCount":103,"integrity":"sha512-Cv5K4tBzgUmsZgFv3laywFWW/+upKjxbI0s2wLmyGuD2EF53aCiB3PwfWgPN4rR18kRNtP4ZNrEbljSG2tQfZw==","signatures":[{"sig":"MEQCIFYOhwhZ7zMWC8599gTcxVmJDjBa0+JsbOOguvHQ4ztpAiA7rudiZv8WYTugX/BrqUIeciCk8RJPEAOg83zKNoHl0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440167},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.14.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/86b37664b96071fb154604933a4116ef/floh-solutions-pharos-cli-0.14.0.tgz","_integrity":"sha512-Cv5K4tBzgUmsZgFv3laywFWW/+upKjxbI0s2wLmyGuD2EF53aCiB3PwfWgPN4rR18kRNtP4ZNrEbljSG2tQfZw==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.7.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.14.0_1786111264285_0.5444280431051918","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@floh-solutions/pharos-cli","version":"0.15.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.15.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"9c3ce1d747a1042fc726fe106b28ff5b32d237aa","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.15.0.tgz","fileCount":103,"integrity":"sha512-AyhcxV8Wi4crlTMxecpHXOurJcoi/wh4WxQu0K8yKIuHIvhkOhwca91VSd3puo1zeWD13OiRxNOqtQpqGgS5dw==","signatures":[{"sig":"MEUCIB4x9502f1MqjYvPHO8Rqr3KPGyzWt68kXLiZ7EZtIg4AiEApxCGDR8IzDCWW+7bRMG7jUgZBfvXwTy+cZ6lctsNPEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":448395},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.15.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/c07b17020313b49d3e9cb99c43cfa476/floh-solutions-pharos-cli-0.15.0.tgz","_integrity":"sha512-AyhcxV8Wi4crlTMxecpHXOurJcoi/wh4WxQu0K8yKIuHIvhkOhwca91VSd3puo1zeWD13OiRxNOqtQpqGgS5dw==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.7.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.15.0_1786112444367_0.1252229640306779","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@floh-solutions/pharos-cli","version":"0.16.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.16.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"7b12e3de69b32c057390e435ea0be97b17c749fe","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.16.0.tgz","fileCount":107,"integrity":"sha512-WuQWksGp/MLIuT501IvUMFTQ0Ff+DBS/6XWIwv5yIq4SvvZo9gQ2xoTOlK8I6aJBH5iYLKEBerKPtipB2thwfA==","signatures":[{"sig":"MEUCIH8aG5WumOfisBAN/EeyIV0ele1o4GmxvJ3m6DNNpUcQAiEA3IiH0nELz7Z/Qm+unntL/cKQ5KeFIVIucmKr3Qp4Cu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474429},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.16.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/11f22233dccb6be0b78734bb75f34946/floh-solutions-pharos-cli-0.16.0.tgz","_integrity":"sha512-WuQWksGp/MLIuT501IvUMFTQ0Ff+DBS/6XWIwv5yIq4SvvZo9gQ2xoTOlK8I6aJBH5iYLKEBerKPtipB2thwfA==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.8.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.16.0_1786116960601_0.48788418778698794","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"@floh-solutions/pharos-cli","version":"0.16.1","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.16.1","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"fec567d6f45be2e59cc3b9e067c5e0d831059a3b","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.16.1.tgz","fileCount":107,"integrity":"sha512-w54wUHW12EYxZC3Mf9fhr+RzNW/3mISIbu4tC5T9fv6dYCrs0aqlr6Ac9fNnnInKJ+wc4qMXw7Y9ih6HDjn4yg==","signatures":[{"sig":"MEUCIEMYZcE6G07e5C4i9T91X/arKFV65vcPHkGe0smLZ3BHAiEA+Tu8f8uBlGZd1BByLYmR8NiN12mEWbJcdJRu60hXUck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475047},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.16.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/89a33728d4797763bab98f14eb806aaf/floh-solutions-pharos-cli-0.16.1.tgz","_integrity":"sha512-w54wUHW12EYxZC3Mf9fhr+RzNW/3mISIbu4tC5T9fv6dYCrs0aqlr6Ac9fNnnInKJ+wc4qMXw7Y9ih6HDjn4yg==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.8.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.16.1_1786117162005_0.17267118015952887","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@floh-solutions/pharos-cli","version":"0.17.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.17.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"f5faa1a9cda0c6dbc7613e12f5097484cfa90193","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.17.0.tgz","fileCount":107,"integrity":"sha512-2UU+unZLKhqMsC6o4316mRgNpgwSDvd5Py3BL4Y8IbWsFtF+QMgYaE4xcM7qNfYO0ixd2srGbq4PZTYfRnUsoQ==","signatures":[{"sig":"MEUCIBieYvISndQkPWjbJcl8fmU+WuHJE/5yQ08DnmK+75QXAiEAvxscP1/pdA65nGyIT9/1qrAKCclvRvqNHtdM3Q6D/9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496270},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.17.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/d9c930880d65839a17b54aab59126882/floh-solutions-pharos-cli-0.17.0.tgz","_integrity":"sha512-2UU+unZLKhqMsC6o4316mRgNpgwSDvd5Py3BL4Y8IbWsFtF+QMgYaE4xcM7qNfYO0ixd2srGbq4PZTYfRnUsoQ==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.8.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.17.0_1786181156775_0.4811754304025675","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@floh-solutions/pharos-cli","version":"0.17.1","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.17.1","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"f2b270c2b70255a1281c09bbf8dc4fb13feec500","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.17.1.tgz","fileCount":107,"integrity":"sha512-zU+IYIvnO4Zq5aIaKQpUe2v846tY/OLphqceeKvEPZy2ENWcf+bNQYhVelBbNlRaSpytLwaBVCRKQcAfw0kAsA==","signatures":[{"sig":"MEYCIQClhaKhHHpMz0MzJDyIvReRjZIB3jdsgrnr90dwybkKagIhAIiau6bJFsS5+CL3LRSvMxtmnFi4fbUvt+h9oM1MSh14","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496859},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.17.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/26ffaa1aff525f986a61edff5f4b5f2b/floh-solutions-pharos-cli-0.17.1.tgz","_integrity":"sha512-zU+IYIvnO4Zq5aIaKQpUe2v846tY/OLphqceeKvEPZy2ENWcf+bNQYhVelBbNlRaSpytLwaBVCRKQcAfw0kAsA==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.8.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.17.1_1786181632489_0.39810354377407786","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"@floh-solutions/pharos-cli","version":"0.17.2","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.17.2","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"8f5e6009c2ab9480522ca390e6fc23888b90df52","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.17.2.tgz","fileCount":107,"integrity":"sha512-bZ5SBViR+ik8bgFmGs6ggEy7dHnpvK04nvin1cE3I8n7k/TRQfaMQFDXQEDiPLjm6gCAnaKvbEjDn24Xy7xhPA==","signatures":[{"sig":"MEUCIQDel8wgO3ocS0SZ1eacqACunOPMTPA8h1IXKXeshMBM8gIgLBJqr9QNNxKQx4/AzW5oGjCqCGj+534+xxUP0WkG/VI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498334},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.17.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/47eea7a3e7ffc971f6cb5dd661cc93f4/floh-solutions-pharos-cli-0.17.2.tgz","_integrity":"sha512-bZ5SBViR+ik8bgFmGs6ggEy7dHnpvK04nvin1cE3I8n7k/TRQfaMQFDXQEDiPLjm6gCAnaKvbEjDn24Xy7xhPA==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.8.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.17.2_1786182167086_0.36035291674741576","host":"s3://npm-registry-packages-npm-production"}},"0.17.3":{"name":"@floh-solutions/pharos-cli","version":"0.17.3","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.17.3","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"8622ca9ed94f63944a82d3ec22b581f88163745c","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.17.3.tgz","fileCount":107,"integrity":"sha512-F1KRN9kITbORNV4LaKW3jnC4xAaFECZXKNINvYln0JnKnvcgJk3g351NMfqQQKVJ5LHkNAkGcRtzMz9VbYPO1Q==","signatures":[{"sig":"MEUCIQDElt50idm8u63zep28izWJm1VI7gBGvLgWBztzm6pPYQIgQStE5qjTQAK/tj32i8sFB424duAHefWSpfc9io1WHM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500368},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.17.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/7757ab09faacb7d640594d1251387739/floh-solutions-pharos-cli-0.17.3.tgz","_integrity":"sha512-F1KRN9kITbORNV4LaKW3jnC4xAaFECZXKNINvYln0JnKnvcgJk3g351NMfqQQKVJ5LHkNAkGcRtzMz9VbYPO1Q==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.8.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.17.3_1786182919593_0.23205696105112494","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@floh-solutions/pharos-cli","version":"0.18.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.18.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"ea495b36c3455c4fe480e914be995534c817d6c2","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.18.0.tgz","fileCount":107,"integrity":"sha512-H97ATo0J2SJTem8Af1/46UIeSimgsUmLKzz7/si1iiIy9qWPGbwaKqYC7zBrS3YPNAMDyo5HcJkGlRev7tFpeA==","signatures":[{"sig":"MEQCIDpRemg2yi7vT6LAP5V/c29pgrIaTLgjTH7zsEYPv8fQAiBcIwFdpZ+XocI036ZJMzax1bDsV580ntuTyFQZmwnHpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503416},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.18.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/912717a470c7890da48a024175a7a797/floh-solutions-pharos-cli-0.18.0.tgz","_integrity":"sha512-H97ATo0J2SJTem8Af1/46UIeSimgsUmLKzz7/si1iiIy9qWPGbwaKqYC7zBrS3YPNAMDyo5HcJkGlRev7tFpeA==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.9.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.18.0_1786183480370_0.48782687522035184","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@floh-solutions/pharos-cli","version":"0.19.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.19.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"290b9a7148f19e5b667199923673cc0c04e4aad0","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.19.0.tgz","fileCount":107,"integrity":"sha512-zKtHkKyNWHoJkk2dDGSfg75UFx2ab7iF6iD7cWeKSlkOv4s/123L8dg8EZCQeYX+Q1dXF0PAvCMPnfkIfAbdbg==","signatures":[{"sig":"MEYCIQCBKoKHYRjtVoM3Utp5+Q7GnVJ3eZ2OTOBQajpB+ij46gIhANcRK9i9Ddcs+DfYD3AuCrcyeLqX6T+mqA1kY716VT6Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506789},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.19.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/d293da6b66b44d6c27e68268b474846c/floh-solutions-pharos-cli-0.19.0.tgz","_integrity":"sha512-zKtHkKyNWHoJkk2dDGSfg75UFx2ab7iF6iD7cWeKSlkOv4s/123L8dg8EZCQeYX+Q1dXF0PAvCMPnfkIfAbdbg==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.9.1","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.19.0_1786185528898_0.19445854176277955","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@floh-solutions/pharos-cli","version":"0.20.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.20.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"2c750eb142de563d0aaa741fdd223ed4185b810d","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.20.0.tgz","fileCount":111,"integrity":"sha512-zkHgA/IHQtqv/M7b9sIeMAoHJU1FLQZU/Mt6fWi9hiiIGFG1V+65F0ngyHIAlaqJcdEb4pa47o9VE7vTRksb7Q==","signatures":[{"sig":"MEUCICTAVDg6qpO2EoCHKsekVuKWH4e6R95Zz94dHM85XhLQAiEAqtyHvVNXDqcPab1arHnKYoCzH4r2yqiBYJnvRAZUroA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":538229},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.20.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/d887da4a1ca21deeb747830f249467da/floh-solutions-pharos-cli-0.20.0.tgz","_integrity":"sha512-zkHgA/IHQtqv/M7b9sIeMAoHJU1FLQZU/Mt6fWi9hiiIGFG1V+65F0ngyHIAlaqJcdEb4pa47o9VE7vTRksb7Q==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.9.1","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.20.0_1786186513522_0.8681954244419927","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@floh-solutions/pharos-cli","version":"0.21.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.21.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"efbff309ff05267ce981238f41b20cee5dec069e","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.21.0.tgz","fileCount":115,"integrity":"sha512-N9F4Jw0qJqxHqY+utzFtEforCuZLVk21K9spWrRnYR9eEvkKZxWwEUtZYGnn4aI8AvROYxJisMXKjTqdL4OZDw==","signatures":[{"sig":"MEUCIQCsAge4b5RPMwp9FKoD8ddvymxvV3TfDYUgSVTW5QJomgIgCAA/BZ4hOJwkdQ3lLYIUVYySp295//n4DWVrXKFdeI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557713},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.21.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/d76cd5b61c87e93eca21c63c1e8198b4/floh-solutions-pharos-cli-0.21.0.tgz","_integrity":"sha512-N9F4Jw0qJqxHqY+utzFtEforCuZLVk21K9spWrRnYR9eEvkKZxWwEUtZYGnn4aI8AvROYxJisMXKjTqdL4OZDw==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.9.1","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.21.0_1786187191617_0.8242605549692612","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@floh-solutions/pharos-cli","version":"0.22.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.22.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"c2d3c5a80356518b0f959e4b4a521e4eb02cd887","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.22.0.tgz","fileCount":119,"integrity":"sha512-/LlSSUVcjUWCCQwVq9T24aZ19HodLh7+X/SBqo+LafhaX/g+jG5TJjwTox/Ql9ar7esw6q/GIXtYGl5H2oyrvA==","signatures":[{"sig":"MEUCID6PUMy3Tdfb2cMNM+fqX0SfGGRipT3wObxqTgaJ6grqAiEAnGSd8+PKf99P2hmNWxL9F+jxgDc1thPHYVWhpnKlSeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":579198},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.22.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/4ebd2079125b497672b56023aa6c3be1/floh-solutions-pharos-cli-0.22.0.tgz","_integrity":"sha512-/LlSSUVcjUWCCQwVq9T24aZ19HodLh7+X/SBqo+LafhaX/g+jG5TJjwTox/Ql9ar7esw6q/GIXtYGl5H2oyrvA==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.9.1","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.22.0_1786187576546_0.27210008393446916","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@floh-solutions/pharos-cli","version":"0.23.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.23.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"abb292a3f3b651e9883ab155e03e099d6017956a","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.23.0.tgz","fileCount":119,"integrity":"sha512-YR/Ck2uJsDqqfylLfGgI+jGqwTaUvcduBr2vDGM3GXcMeRwV+hqeiZu5TA4jfBfICO2eu7TnMStQ/aEi4ZkBNQ==","signatures":[{"sig":"MEQCIGWwP0rN3gSt6RZGyLv5kvU0JmEL7V0fATpVAT2sZxAOAiAt/d+IjZmDH2mE/1RsC0xLH8SE/r6vBNDzczeQMy2Vww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589065},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.23.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/7e5f7369c95d78bf2245329c0ff215d2/floh-solutions-pharos-cli-0.23.0.tgz","_integrity":"sha512-YR/Ck2uJsDqqfylLfGgI+jGqwTaUvcduBr2vDGM3GXcMeRwV+hqeiZu5TA4jfBfICO2eu7TnMStQ/aEi4ZkBNQ==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/ado-core":"0.9.1","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.23.0_1786188641827_0.9734756522798003","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@floh-solutions/pharos-cli","version":"0.24.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.24.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"2928fac1b37b7f202f7ab62131e5ca21b069a16c","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.24.0.tgz","fileCount":131,"integrity":"sha512-cSigRFDJdmkGg6SUV+Q5P3/NKEDkd+1wq3Oq6fp5Rvin8GBFkZ9l2DWItCBZz9SW7nE6UdZ/bgWs5lBp2CAyEg==","signatures":[{"sig":"MEQCIDRw+8Bsrl3Og9cqcTpI2hreEYZrTwJILpLQYxjqkhtOAiBrYsyHV1ASMQVhyV/UJfVhQ7kvItdk/w/DLIAqr9gQ8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":951596},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.24.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/1423da34eac93a773da6ccf29bb49043/floh-solutions-pharos-cli-0.24.0.tgz","_integrity":"sha512-cSigRFDJdmkGg6SUV+Q5P3/NKEDkd+1wq3Oq6fp5Rvin8GBFkZ9l2DWItCBZz9SW7nE6UdZ/bgWs5lBp2CAyEg==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/gh-core":"0.1.0","@floh-solutions/ado-core":"0.9.1","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.24.0_1786218583793_0.9259344113993051","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@floh-solutions/pharos-cli","version":"0.25.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.25.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"585c34527e8ac4c2a8049d39f5cda128345ae6d3","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.25.0.tgz","fileCount":135,"integrity":"sha512-FSA21XGrOFa8pcb4l1T/7u9UpCeHDO2jCzFJ3Z8pSxi7TRVMIgMgQXkyOJXvSD0jUpb+MmlyEG9xFhZp+SwMsA==","signatures":[{"sig":"MEUCIQCz/ZYJGNdzVdDL0LMAJi14vHvnldUZfh+lNvfaoPmgHAIgFwVBKYGnWA57gUsX7DQpPLcAkd2z+osv/kRcFB3JMgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1075101},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.25.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/4a6179e08f8512afad7b34a6747139d8/floh-solutions-pharos-cli-0.25.0.tgz","_integrity":"sha512-FSA21XGrOFa8pcb4l1T/7u9UpCeHDO2jCzFJ3Z8pSxi7TRVMIgMgQXkyOJXvSD0jUpb+MmlyEG9xFhZp+SwMsA==","_npmVersion":"10.9.2","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@floh-solutions/gh-core":"0.2.0","@floh-solutions/ado-core":"0.9.1","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.25.0_1786273031526_0.5478864638906669","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@floh-solutions/pharos-cli","version":"0.26.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.26.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"4d3c162721883c3dc607c9bd885cde38d9b7388c","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.26.0.tgz","fileCount":147,"integrity":"sha512-qxh9gYr7xFT3AjlWCMb5s1iI/7JrjQ78ih4JFTz0pBFnqbLHNbutkEX4UIDUuAPPuF1cmf2Ljt9J9b/5rTEa2g==","signatures":[{"sig":"MEUCIQDWJD1PJ31MePh1J25WKPcb5L6M+7TzmgwssTZiCruWWAIgIF5CtHMsOUo3f6KFBBd3Fod5VyHVdyoz7PpD+yoO5Y4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1156272},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.26.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/2fbf22427e2ab8b8300b9ae623760e9a/floh-solutions-pharos-cli-0.26.0.tgz","_integrity":"sha512-qxh9gYr7xFT3AjlWCMb5s1iI/7JrjQ78ih4JFTz0pBFnqbLHNbutkEX4UIDUuAPPuF1cmf2Ljt9J9b/5rTEa2g==","deprecated":"Broken: cannot start. Resolved ado-core 0.9.1, which does not export selectableTypes. Use 0.26.1.","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.2.1","@floh-solutions/ado-core":"0.9.1","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.26.0_1786360332555_0.6691142146987274","host":"s3://npm-registry-packages-npm-production"}},"0.26.1":{"name":"@floh-solutions/pharos-cli","version":"0.26.1","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.26.1","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"ef5406991e53318706803c723ab2f5984b7d6ecf","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.26.1.tgz","fileCount":147,"integrity":"sha512-Ut+8DLhEOqCTsAS/cHU9X6m9OymPEzn0tLunBVXsxrL5p72KAPYU01PTrydoVnBYz7uK9HhrHLvAf7VL+Qe9jw==","signatures":[{"sig":"MEQCIHVYqe/jTvgVzq2SO+rIIR5UVdNm0SM7Tz9eBx52tx6DAiB+b6C9uIFlwWqfYuAV8FWcQTpQKlvn6RB/S2NT3gCjVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1156273},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.26.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/1d6349c93ef6f17bf5de0dc40bd19189/floh-solutions-pharos-cli-0.26.1.tgz","_integrity":"sha512-Ut+8DLhEOqCTsAS/cHU9X6m9OymPEzn0tLunBVXsxrL5p72KAPYU01PTrydoVnBYz7uK9HhrHLvAf7VL+Qe9jw==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.2.1","@floh-solutions/ado-core":"0.10.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.26.1_1786360445532_0.9174507501873534","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@floh-solutions/pharos-cli","version":"0.27.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.27.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"416a4807734360c548ce8a1d814d749df8956506","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.27.0.tgz","fileCount":155,"integrity":"sha512-cqVnSg0mdhMfFwBCTbVpw16vwIov45sNNjI1phpp5Ju7oe1rJH8dZkJcsSs2wSEM5agZalAvhTo61NMSoBHm6w==","signatures":[{"sig":"MEQCIC6gUSQDjGU6QTNVUyyV2yRZGLxJSK3jV+hwU3V1gtrdAiBs/IC6tUYy9u65LG9kVAUOSjE4F7nDtCAFPcgToiu/iQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1209857},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.27.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/d39338f80b7466ad77087210f6f2a199/floh-solutions-pharos-cli-0.27.0.tgz","_integrity":"sha512-cqVnSg0mdhMfFwBCTbVpw16vwIov45sNNjI1phpp5Ju7oe1rJH8dZkJcsSs2wSEM5agZalAvhTo61NMSoBHm6w==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.3.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.27.0_1787159842162_0.5778001088805722","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@floh-solutions/pharos-cli","version":"0.28.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.28.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"87525d2fd3e71644fcd955eceb9d0bad62528b34","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.28.0.tgz","fileCount":155,"integrity":"sha512-CvgElnkGrQjnkAmX1R04nocVWob/HxOTuWV8CTDYOvuLNEmj/Vf/c95RWbbGPYG7p3Q910y0znE5ObeC6pdZyg==","signatures":[{"sig":"MEUCIQCzjY4h0JT1uWDQzbMh17BTICabaIl3qo1DKN/KM8eObAIgK7jk0Qqp2e81Z6wHx5S/m7jUmE3n/7MWVzwO6MfdZ0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1204235},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.28.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/6de9988edfadce3aea854eff8a1ddeb2/floh-solutions-pharos-cli-0.28.0.tgz","_integrity":"sha512-CvgElnkGrQjnkAmX1R04nocVWob/HxOTuWV8CTDYOvuLNEmj/Vf/c95RWbbGPYG7p3Q910y0znE5ObeC6pdZyg==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.28.0_1787160587502_0.5433709764765888","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@floh-solutions/pharos-cli","version":"0.29.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.29.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"5631f4d01285928dfb4f7200d58a768cb2266e14","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.29.0.tgz","fileCount":155,"integrity":"sha512-0a92t6vjkVRk04Rz8LaoyBTllGuC/MUAAJxAcXPzDPW2hVJasClZfZrAqA9j9hctEf00EfFrKGOThJV7nR2xlg==","signatures":[{"sig":"MEQCIAKyJK5negzeNpJpEVOsVr6dTIoHexJoNGpCO9XMpM6PAiBkuxFBNx2aH5zjOzgIgyGZj5x0ws7FezyEsh4ZGz8bOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1212658},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.29.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/84528a9c256c0650d3997a4470325523/floh-solutions-pharos-cli-0.29.0.tgz","_integrity":"sha512-0a92t6vjkVRk04Rz8LaoyBTllGuC/MUAAJxAcXPzDPW2hVJasClZfZrAqA9j9hctEf00EfFrKGOThJV7nR2xlg==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.29.0_1787751793353_0.7858631477590423","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@floh-solutions/pharos-cli","version":"0.30.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.30.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"66871cfc44d104fc85cdcce355b09da9b4d678c4","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.30.0.tgz","fileCount":174,"integrity":"sha512-4J+2HOCkI5aR4TT2CUhGlQpLXJZBRjGUUYyEncOkv7vxpw5mWKEovrUuno2USN53XvNAPD/8PEVnZcB42vrFhQ==","signatures":[{"sig":"MEUCIE48prZ/26kSmLuakjfK1/zndUPbAgkCNIIwW75tFb1eAiEA5CvMsvUd49rvh3FJ73ilRBsd5R7AbtzaTqdY8he4rr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIELwbh4uMfs29YK6QQJ+i9jWTeEGkRuBfqHyFFnqISAZAiAMmm9VfbmeSi2y/D7ej6R4Uk48Z250zHjX2/fHbZ82Dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1374743},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.30.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/c05971c31e498918c123f08a6d937b53/floh-solutions-pharos-cli-0.30.0.tgz","_integrity":"sha512-4J+2HOCkI5aR4TT2CUhGlQpLXJZBRjGUUYyEncOkv7vxpw5mWKEovrUuno2USN53XvNAPD/8PEVnZcB42vrFhQ==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.30.0_1789083197687_0.6044288663890263","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@floh-solutions/pharos-cli","version":"0.31.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.31.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"5a539e44e7b8002bdebb25215074c6f8078ce0de","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.31.0.tgz","fileCount":174,"integrity":"sha512-8L7frCWv43LY+nVX1FjvMwTfUQkGKGMOxBNJP0d3Olf7fy8eFfvBicvtT08y7etOFVfg0moQgvELbXXeiGK53A==","signatures":[{"sig":"MEQCICHaCHit3BpcJkcppfQ9hG5asZcWG64GNG58LT14W1dZAiA6pipGhynhWxW3+FJDjLO63NfyENAcxznUGQ2QWQmDrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDgWr99c3dy6xsHd8qcCmB1rVDBB8PcJge7m8zPJHC+DAiEAohEptn6aFn83dDebOiXszH6lZCO0uGDLAe+GTZPNfeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1404526},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.31.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/57fdc75e3e61228e9bc8ecde078be745/floh-solutions-pharos-cli-0.31.0.tgz","_integrity":"sha512-8L7frCWv43LY+nVX1FjvMwTfUQkGKGMOxBNJP0d3Olf7fy8eFfvBicvtT08y7etOFVfg0moQgvELbXXeiGK53A==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.31.0_1789087893039_0.565294411926007","host":"s3://npm-registry-packages-npm-production"}},"0.31.1":{"name":"@floh-solutions/pharos-cli","version":"0.31.1","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.31.1","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"8012d043ac01c4ebc1aad1c31b2d03a2e8e3480d","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.31.1.tgz","fileCount":174,"integrity":"sha512-/bO8jnGI5nPqIMUejw5vQwQvabDMivEAH6b83vc2I8tx9bspzy0ESUeILyppDH7SFB3dxMt3mbybUrhncSeqRg==","signatures":[{"sig":"MEYCIQCgpzMgGwCLixNr9Rp3dpUU8N3ZsgziNWqRMFwNdeOaRwIhAIoBi78WHrLGcnDjXn40/me2Kpp5sr8hiPenTJDcR6x3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCpkVrrfg0NXi/9V/3nmKgjZhpo2x7GSl/cWvTLI8KIgAIhAPf0hx4vUZRrCu8/fX2uZwU8irgVR4dQVMrw5eR942qU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1417953},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.31.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/255a265f5d76663ad8c8871eb063841c/floh-solutions-pharos-cli-0.31.1.tgz","_integrity":"sha512-/bO8jnGI5nPqIMUejw5vQwQvabDMivEAH6b83vc2I8tx9bspzy0ESUeILyppDH7SFB3dxMt3mbybUrhncSeqRg==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.31.1_1789089438951_0.9646978175248351","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@floh-solutions/pharos-cli","version":"0.32.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.32.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"68f43220fb67f646adb3df1cf7eb95f376555ca0","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.32.0.tgz","fileCount":178,"integrity":"sha512-OyKXUCNfi+XjWUd27lAWZATW0O/gE+UjM4aQ8a3fPTJxU6zx3b8xwXyEKkCjN3XPz4ezAypw1OvcUgTnvd6+ig==","signatures":[{"sig":"MEYCIQDFWP3PspmcoeHlYiDfQDl3jJ5WxNx0CVT/Z2CUVQL2lwIhAOe+fhoucTzmdtwYwSRoGLoLxq8wqPZXu+yGFXsh/1ly","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDQ61NZpVH9hYfP1DiVSGIaag9c0E0KgKMKB24NWMAQJgIgZUxE4Fl6aGJcZe0RSKmKZbLZ6b1nbAby50BAwHVdYwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1526541},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.32.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/944dfb61cf03da9fb2969333cfbcad80/floh-solutions-pharos-cli-0.32.0.tgz","_integrity":"sha512-OyKXUCNfi+XjWUd27lAWZATW0O/gE+UjM4aQ8a3fPTJxU6zx3b8xwXyEKkCjN3XPz4ezAypw1OvcUgTnvd6+ig==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.32.0_1789091648395_0.8495863848286898","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@floh-solutions/pharos-cli","version":"0.33.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.33.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"2580b54a237bf07063d4a400b5ba152031617aff","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.33.0.tgz","fileCount":182,"integrity":"sha512-3L8otzCwU/U4SpT9bwlZxYkJ6/5PH43eXV1F+xLxlaNqqDXC3ShbN0rFUblWpymZrnuDFqdpCLoPwBGhDWdhhQ==","signatures":[{"sig":"MEUCIB+c0keLz3PrvK0v0M9v6Losn8V/fnT+eF0Y2LI0I7cqAiEApW3BNSZBMXySQd5ZakVvGlFbIDRCBE5mzUG7RX0LhTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDPe6mG458D++XXEVCm8wkrewhiMIoAbpIfOH2n/AwOkQIgd9yINpEYiBnA8kUCO4avAyw+0v9nQzjju0ehpLUhrxs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1644350},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.33.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/4280a76f43fae667b9ede7a616f791a9/floh-solutions-pharos-cli-0.33.0.tgz","_integrity":"sha512-3L8otzCwU/U4SpT9bwlZxYkJ6/5PH43eXV1F+xLxlaNqqDXC3ShbN0rFUblWpymZrnuDFqdpCLoPwBGhDWdhhQ==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.33.0_1789127813656_0.613839249434591","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@floh-solutions/pharos-cli","version":"0.34.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.34.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"927caf3137d318c7e8c5d444ef62508539c5917f","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.34.0.tgz","fileCount":182,"integrity":"sha512-rZixZ+dwB/2l4US6LKa3MLSCkPBpxBeuF55AkZPU9GEn51ZQlVe/WVlsUwhFOMimeVE21YsWSjDxL0I+mItoTw==","signatures":[{"sig":"MEYCIQCvdeCqmFYeDzb0DxtEHvo+LmT269+1YEoRAUILH5fMXQIhAN3QhCXtmrKTUSOGx2Z1rPcKVWsi65QwHvvsSTF6dpRJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDP672nszchIrKh6btJPJo0vhyRdha5bc7V8Z696aDLKQIhAIuynCCpGhBsJnYa3yc/q8/jXN6yHegjMaT9NlInDm20","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1689876},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.34.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/5639f121b049d4e02a93c590f2898329/floh-solutions-pharos-cli-0.34.0.tgz","_integrity":"sha512-rZixZ+dwB/2l4US6LKa3MLSCkPBpxBeuF55AkZPU9GEn51ZQlVe/WVlsUwhFOMimeVE21YsWSjDxL0I+mItoTw==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.34.0_1789135689357_0.7608339442683627","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@floh-solutions/pharos-cli","version":"0.35.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.35.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"5b2e29adc5bdb55451978ef26806b6d40ee7cdd6","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.35.0.tgz","fileCount":182,"integrity":"sha512-DyLGlxUeOUZmnpEZUBryNooRrXgc+J8xNqG05VwldRLkXOl9t4posQrDp/zpfxXr4PPQ0onZofGMIYFav//arA==","signatures":[{"sig":"MEUCIQDaasiBFBhOiA0A0wvfip4FpJ1HGpFyl+ZvLT1oESIx8AIgH0b0EzEeQBs2izRZamPQRfJfYnIuHz2e4gEBXnvi97c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDZHpPRQrIYj2CzfFzy7Gg/2b4UgSqWZjzfmD6ktFnnXAiBO55eNHB1bo7yrt/ey/Tq376zW3Mc4LP9a4PZW9Ef95A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1720363},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.35.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/7844260fdfed67e06f13315b2e0f72d6/floh-solutions-pharos-cli-0.35.0.tgz","_integrity":"sha512-DyLGlxUeOUZmnpEZUBryNooRrXgc+J8xNqG05VwldRLkXOl9t4posQrDp/zpfxXr4PPQ0onZofGMIYFav//arA==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.35.0_1789138200589_0.01021731752797761","host":"s3://npm-registry-packages-npm-production"}},"0.35.1":{"name":"@floh-solutions/pharos-cli","version":"0.35.1","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.35.1","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"7f96157a515e2085f5db9cd82f5cfd9302d495d0","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.35.1.tgz","fileCount":182,"integrity":"sha512-pAE2d1X+FyY32eboNd6gTAtmkMS7uyj4j4jQfI90omwzsQlndKvCQUdbCGcfjaTszHaBQfUBkDjGJkEFCj2udg==","signatures":[{"sig":"MEYCIQDft1PX6xHgyHVo68CpQpYrmceM/8oPZEyuPN6UjIyXKgIhALVFn3kahzQYtVI+ftyf3KGdB0i6wpeWjqr5iQRAH4Rk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCJ/wVN0r8fSttN3jLtP6fCxWzn0ZMmJ7GOsurZFNthZAIgJYwgI7j1qtqJ+XOJR8eHDKIhyyevw8zFgYS5gw1y5hE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1727833},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.35.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/dbdbf43506b6728f4945a49d4fabaca8/floh-solutions-pharos-cli-0.35.1.tgz","_integrity":"sha512-pAE2d1X+FyY32eboNd6gTAtmkMS7uyj4j4jQfI90omwzsQlndKvCQUdbCGcfjaTszHaBQfUBkDjGJkEFCj2udg==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.35.1_1789139963635_0.9139182960804786","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@floh-solutions/pharos-cli","version":"0.36.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.36.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"78dc10664cfdafeb870fdca71545a0cae75a090a","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.36.0.tgz","fileCount":206,"integrity":"sha512-ETEjKj5Me4j0JLVuFYNPhweV9xwah4JxPRNQGe0vrgwjhj/wo3CRFZpUdQzztMebnafexJXeeAcniX+2gm8JdA==","signatures":[{"sig":"MEQCIFewGqEGT32mcqr22iIzlkx9oLDKJ7B5ZyxPE+kqix2DAiBM/gob8S6GG7IDpxS2qENP65FmAKaTC5kmBmTUBWNaFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3R9xgfdrcarngu6zXYrhBa3qIFDg/E/IjolLjuBR93gIhAOtd0k2vo+zCokgDWebMdOrUw5jDZEvjT1BLlprvD+S7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1928173},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.36.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/71ed3b43c768a4bee42b82e82049336f/floh-solutions-pharos-cli-0.36.0.tgz","_integrity":"sha512-ETEjKj5Me4j0JLVuFYNPhweV9xwah4JxPRNQGe0vrgwjhj/wo3CRFZpUdQzztMebnafexJXeeAcniX+2gm8JdA==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.36.0_1789252878831_0.08304076567625551","host":"s3://npm-registry-packages-npm-production"}},"0.36.1":{"name":"@floh-solutions/pharos-cli","version":"0.36.1","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.36.1","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"b4d1da561c7b92e346e77860cf7d4a01ef0a46f7","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.36.1.tgz","fileCount":206,"integrity":"sha512-ExSzFHzZhWjrY6Rs920krYVxGMiOgcL4bEkGhlH1eedXv1vVETycUXMCTZZ/ARzwEIJBsdvsYetDsmmjT4J0dw==","signatures":[{"sig":"MEYCIQDH2QhaE/wShk8sv/8XwkfCLlkaqIKXSKQNZkRF+nwo4QIhAMPGqac5n96VsQcZwfXiY0MC2z73cobDaeM3ZlsA1jaH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCb5VxjXDvSM6aWV1jo7vhFivMdZYyMoV4jG6YMmDZ5eQIhAM+9xrlcP7xju0r2E3VXZPDIcB4p0Aa3GccbuIi4n5JS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1939731},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.36.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/0df7ceced95ad5fb08e672643bf59713/floh-solutions-pharos-cli-0.36.1.tgz","_integrity":"sha512-ExSzFHzZhWjrY6Rs920krYVxGMiOgcL4bEkGhlH1eedXv1vVETycUXMCTZZ/ARzwEIJBsdvsYetDsmmjT4J0dw==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.36.1_1789286642461_0.5829182356657869","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@floh-solutions/pharos-cli","version":"0.37.0","author":{"name":"FLOH Solutions"},"license":"UNLICENSED","_id":"@floh-solutions/pharos-cli@0.37.0","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"d626f7dd1af25772975b2a1570c70151b50f16e6","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.37.0.tgz","fileCount":214,"integrity":"sha512-KTRHpVnSok8rtanddNmR8FjQV/b4/jwISRsRDgXEFhtQQupaU6tXhFSvgm3Gv4aBKv5I83w+Ol0gS19WnfxBPw==","signatures":[{"sig":"MEYCIQCO9iQ9r+MJAZ1xPc+O0k4cEbEP4/CxjHBtDQAf3G4dUQIhAKHDstEyBqhd/MwwAYlJky8Xrmv41Kso2r/D0yiqbQHx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCx69aOedmEQgh9t1yn9znJZHntLP2HJ9P8gvxp5D8WFQIgFt2TvKbg7aq0CjJzv8JKOig/zYG5MHmcm9m59ZG8n9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2012794},"main":"./dist/index.js","type":"module","_from":"file:floh-solutions-pharos-cli-0.37.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/c3ade5b1f6ab33c7ad7356a54e1be247/floh-solutions-pharos-cli-0.37.0.tgz","_integrity":"sha512-KTRHpVnSok8rtanddNmR8FjQV/b4/jwISRsRDgXEFhtQQupaU6tXhFSvgm3Gv4aBKv5I83w+Ol0gS19WnfxBPw==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"tmp":"tmp/pharos-cli_0.37.0_1789300540878_0.27234200500938743","host":"s3://npm-registry-packages-npm-production"}},"0.37.1":{"_id":"@floh-solutions/pharos-cli@0.37.1","bin":{"pharos":"dist/bin.js"},"dist":{"shasum":"59cef5360f14b8b50ce9c5d01640969b374718d6","tarball":"https://registry.npmjs.org/@floh-solutions/pharos-cli/-/pharos-cli-0.37.1.tgz","fileCount":214,"integrity":"sha512-b4Lo+YnU3JwLcGwpitWQYbrksMzHIU4go42a99rkStDChpHoFKysRioSEENMOytaStAecwfhp6E1YQkd45ur5Q==","signatures":[{"sig":"MEYCIQCiMI674zKS6lnDSXYFBou5+MzT1aCgpgDViRZmfQIJ6gIhAJ13okGi3TpDpNfLi6fZaXGgcU/RTtfLkeQgaBXXGbwy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCF8OYjY4UirzL2nUKtxhJ/G6ihxy3k/uIrzdCF8wVKkgIhALNCjr5c+zoMxDBQFaVTwv66WkvCHUTTVbdfS+DJeprT"}],"unpackedSize":2014008},"main":"./dist/index.js","name":"@floh-solutions/pharos-cli","type":"module","_from":"file:floh-solutions-pharos-cli-0.37.1.tgz","types":"./dist/index.d.ts","author":{"name":"FLOH Solutions"},"engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"license":"UNLICENSED","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/bin.js","test:live":"ADO_LIVE=1 vitest run","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"version":"0.37.1","_npmUser":{"name":"asnnetworks","email":"contact@floh.solutions"},"_resolved":"/private/var/folders/cm/rj1w6k1d0pj7yy6l815qvgg00000gn/T/6f32cd60c47a92a0b54415a6290f00d7/floh-solutions-pharos-cli-0.37.1.tgz","_integrity":"sha512-b4Lo+YnU3JwLcGwpitWQYbrksMzHIU4go42a99rkStDChpHoFKysRioSEENMOytaStAecwfhp6E1YQkd45ur5Q==","_npmVersion":"11.19.0","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","directories":{},"maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"_nodeVersion":"26.7.0","dependencies":{"@floh-solutions/gh-core":"0.4.0","@floh-solutions/ado-core":"0.11.0","@floh-solutions/plan-to-board":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.2","@types/node":"^22.10.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pharos-cli_0.37.1_1789303237943_0.2827499741496393"}}},"time":{"created":"2026-08-04T14:03:29.695Z","modified":"2026-09-13T12:40:38.252Z","0.1.0":"2026-08-04T14:03:30.114Z","0.1.1":"2026-08-04T14:07:59.170Z","0.2.0":"2026-08-04T14:21:22.984Z","0.3.0":"2026-08-04T14:55:29.414Z","0.4.0":"2026-08-04T15:01:19.067Z","0.12.0":"2026-08-06T20:27:03.988Z","0.13.0":"2026-08-07T13:38:37.909Z","0.14.0":"2026-08-07T14:01:04.436Z","0.15.0":"2026-08-07T14:20:44.546Z","0.16.0":"2026-08-07T15:36:00.752Z","0.16.1":"2026-08-07T15:39:22.164Z","0.17.0":"2026-08-08T09:25:56.919Z","0.17.1":"2026-08-08T09:33:52.642Z","0.17.2":"2026-08-08T09:42:47.228Z","0.17.3":"2026-08-08T09:55:19.780Z","0.18.0":"2026-08-08T10:04:40.556Z","0.19.0":"2026-08-08T10:38:49.173Z","0.20.0":"2026-08-08T10:55:13.660Z","0.21.0":"2026-08-08T11:06:31.810Z","0.22.0":"2026-08-08T11:12:56.760Z","0.23.0":"2026-08-08T11:30:42.001Z","0.24.0":"2026-08-08T19:49:43.998Z","0.25.0":"2026-08-09T10:57:11.684Z","0.26.0":"2026-08-10T11:12:12.737Z","0.26.1":"2026-08-10T11:14:05.731Z","0.27.0":"2026-08-19T17:17:22.355Z","0.28.0":"2026-08-19T17:29:47.655Z","0.29.0":"2026-08-26T13:43:13.503Z","0.30.0":"2026-09-10T23:33:17.778Z","0.31.0":"2026-09-11T00:51:33.194Z","0.31.1":"2026-09-11T01:17:19.062Z","0.32.0":"2026-09-11T01:54:08.485Z","0.33.0":"2026-09-11T11:56:53.762Z","0.34.0":"2026-09-11T14:08:09.482Z","0.35.0":"2026-09-11T14:50:00.701Z","0.35.1":"2026-09-11T15:19:23.749Z","0.36.0":"2026-09-12T22:41:18.929Z","0.36.1":"2026-09-13T08:04:02.588Z","0.37.0":"2026-09-13T11:55:40.972Z","0.37.1":"2026-09-13T12:40:38.074Z"},"author":{"name":"FLOH Solutions"},"license":"UNLICENSED","description":"Azure DevOps from a headless shell, for an agent: the whole context of a task in one call, and the wiki/comment verbs Microsoft's MCP server does not ship.","maintainers":[{"name":"asnnetworks","email":"contact@floh.solutions"}],"readme":"# `pharos`\n\nAzure DevOps from a headless shell, built for an agent to drive.\n\n```bash\nnpm i -g @floh-solutions/pharos-cli\nexport ADO_ORG=your-org ADO_PROJECT=YourProject ADO_PAT=…\npharos task 210\n```\n\n## Why it exists\n\nMicrosoft's `@azure-devops/mcp` server is missing capabilities that matter once\nClaude is doing real work on a board. Enumerated against its shipped tool list,\nnot assumed:\n\n| | |\n|---|---|\n| wiki comments — list, add, edit, delete, react | **no tool at all** |\n| work item comments — delete, react/unreact | absent (it has add and update only) |\n| wiki page delete | absent |\n| service hook subscriptions | absent |\n\nAnd it authenticates with an **interactive browser login**, so an unattended\nagent blocks on a modal nobody is there to answer.\n\n## The command it exists for\n\n```bash\npharos task 210\n```\n\nOne call returns the work item, its fields, its comments, its attachments, its\nrelations **with their titles**, and the full content of every linked wiki page\n**plus the discussion on those pages**.\n\nAssembled by hand that is five or six round trips across two different tools,\nand one of them is impossible. It is what an agent needs in order to *start*:\nthe plan a colleague wrote on a wiki page, the argument underneath it, and the\ndependency that says this cannot begin yet. Anything forgotten is context the\nagent silently works without.\n\nIt gathers; it does not summarise or rank. Whatever could not be fetched lands\nin `problems[]` rather than being quietly dropped — a context with an invisible\nhole in it is worse than a short one, because it gets reasoned from\nconfidently.\n\nAdd `--pretty` for a human-readable brief.\n\n## The output is the interface\n\n**Success is JSON on stdout. Failure is JSON on stderr with a non-zero exit.**\nAn empty array and exit 0 is a query that matched nothing; that is a different\nfact from a 403, and prose makes it a guess.\n\n| exit | meaning | what to do |\n|---|---|---|\n| `0` | it worked | carry on |\n| `1` | the call failed | maybe retry — check `kind`, and `retryAfterMs` if rate-limited |\n| `2` | called wrong, or not configured | **never** retry unchanged |\n| `3` | refused by a guard here | re-run with `--yes`, or raise `--max-writes` |\n\nErrors carry what you need to act:\n\n```json\n{ \"error\": { \"kind\": \"conflict\", \"expectedRev\": 4, \"actualRev\": 5,\n             \"hint\": \"Re-read the item and re-apply…\" } }\n```\n\nA bad token exits **2**, not 1 — retrying it is pure noise. A conflict carries\nboth revisions, and says out loud that posting a comment bumps `System.Rev`, so\na rev mismatch is *not* proof that somebody edited the same field.\n\nA failure that came from GitHub says so — `\"platform\": \"github\"` — because\n`pharos issue` touches two platforms in one call and which one refused is the\nfirst thing to know. Its absence means Azure DevOps or this tool, as before.\n\n## Guards\n\nEvery verb here is one an agent can call in a loop against a board real people\ndepend on.\n\n**Destructive verbs refuse by default.**\n\n```bash\npharos wiki delete /Plans/Old        # exit 3, nothing changed, preview attached\npharos wiki delete /Plans/Old --dry-run   # exit 0 — the preview IS the request\npharos wiki delete /Plans/Old --yes       # done\n```\n\nThe bare form exits **non-zero on purpose**. Exiting 0 with `\"applied\": false`\nreads as success to anything that checks only the status, and an agent that\nquietly does less looks identical to one that succeeded. `--dry-run` beats\n`--yes`: the safe reading of a contradiction is the one that changes nothing.\n\n**Replacing a wiki page needs `--yes`; creating one does not.** Creating adds,\nreplacing can destroy somebody's text. The read that decides which is also\nwhere the `If-Match` version comes from, so the concurrency guard is not\nsomething a caller can skip.\n\n**A write budget, counted at the transport.** Default 20 per invocation, so a\nrunaway loop becomes a clean refusal rather than 500 work items. `--max-writes 0`\nis read-only: reads work, every write is refused before it is sent.\n\nIt counts **both platforms**. `pharos issue` writes to Azure DevOps and to\nGitHub in one invocation, and a cap that covered one of them because the other\nleft by a different transport would be a cap in name only.\n\nIt is **not security** — anything that can run this holds the token and can make\nthe same REST calls directly. It shapes intent and catches accidents. A\ncapability that must be impossible has to be withheld at the token.\n\n## Commands\n\n```\ntask <id>                             the whole context, in one call\nsearch <terms...>                     WHERE it is written — full text over work\n                                      items AND wiki pages, with the matching line\nwiki list | tree | read | write | delete\ncomment list | add | edit | delete | react | unreact | reactors\ncomment hide | unhide | pin | unpin    GitHub only\nissue adopt | link | say | trail | drift | backfill | close\n                                      a GitHub issue and a work item, joined —\n                                      and kept honest\nplan <file>                           an implementation plan becomes a work item tree\n```\n\n`comment` takes any of three targets: a work item is its number (`210`), a wiki\npage is an **absolute path** (`/Plans/Foo`), a GitHub issue is\n`owner/name#45`. The leading slash is required by the wiki API itself — it\nanswers 404 without one — so the spelling that tells them apart is also the only\nspelling that works, and the three grammars cannot collide.\n\n### A URL where an id is taken\n\nEvery verb that takes a work item id takes the item's Azure DevOps URL too —\n`task`, `update`, `history`, `attach`, `detach`, `download`, `link`/`unlink`\nand their `--parent`-style flags, `create --parent`, `delete`, `restore`,\n`wiki link --item`, `comment`, and the `issue` verbs — and every wiki verb that\ntakes a page path takes the page's URL, by page id or by `pagePath`. A\n`pharos://` link reads as the `https` URL it stands for.\n\nThe URL is read by the link rules of **navarch-protocol 0.6.0** (\"Integrations\nand links\", #1561) — `src/links.ts`, a second reader of that contract proven\nagainst its own table, `links.json`, read from the vendored copy under\n`apps/Pharos/Vendor/navarch-protocol` (`test/links.test.ts`). It is not\n`new URL()`: a raw space, a non-ASCII character or a password in a URL is\nrefused rather than repaired.\n\n**Only the configured organisation.** Work item ids are unique per\norganisation, so `…/fabrikam/_workitems/edit/214` handed to a CLI configured for\n`contoso` names a real item this CLI would read as contoso's #214. It is\nrefused by name, and nothing is read. A wiki page URL must be in the configured\nproject too — by name, or by the GUID its wikis report — and in a wiki that\nproject has; the page's wiki is the one acted in.\n\nA refusal is exit 2 with a stable `reason`, the contract's own spelling where it\nhas one:\n\n| `reason` | |\n|---|---|\n| `not-a-url` `too-long` `scheme` `credentials` | the contract refused the URL |\n| `no-organisation` `incomplete` `unknown-route` | a `pharos://` link that does not read whole |\n| `not-a-work-item` `not-a-wiki-page` `not-a-comment-target` | the URL names something else — `type`, `itemKind` and `key` say what |\n| `other-organisation` `other-project` `other-wiki` | not this configuration's — `organisation`/`project`/`wiki` and `configured` say whose |\n\nAzure DevOps **Server** URLs (`https://server/tfs/…`) are not recognised in\n0.6.0 — nothing in a URL says a host is one — so on such an install pass the id.\n\nLong text does not belong on a command line:\n\n```bash\npharos comment add 210 --file review.md\npharos wiki write /Plans/Sprint-4 --stdin < plan.md\n```\n\n### `comment` on a GitHub issue — the surface `gh` half has and half has not\n\n```bash\npharos comment list   contoso/widgets#45          # ids, state, and what you MAY do\npharos comment edit   contoso/widgets#45 900 --file fixed.md\npharos comment delete contoso/widgets#45 900 --yes\npharos comment react  contoso/widgets#45 900 thumbs-up\npharos comment hide   contoso/widgets#45 900 off-topic\npharos comment pin    contoso/widgets#45 900\n```\n\nThis is the one place `pharos` reaches past the join, and it is two arguments\nrather than one. **Editing or deleting a comment can destroy the link record**,\nwhich nothing outside this repo knows to protect. And **hide and pin have no\n`gh` verb at all** — they are GraphQL mutations with no REST route, so they pass\nthe same \"nothing else can do this\" test the `issue` verbs pass. Posting a *new*\ncomment is still `gh issue comment` or `pharos issue say`, and `comment add` on\na GitHub issue is refused with both of those named.\n\n**`list` is the load-bearing verb**, and it is not one the macOS app needed: the\napp has a window, an agent has this. Before it there was no way to learn a\nGitHub comment id from this CLI at all, so nothing else here was addressable. It\nprints both ids per comment — the REST number that edit, delete and reactions\naddress, and the node id that hide and pin take, because neither is derivable\nfrom the other — plus a `may` object read from GitHub's own `viewerCan…` fields.\nFor a window those grey out a menu item; for an agent they turn a write that\nwould 403 into a fact known beforehand.\n\n**An edit cannot double or strip the `pharos:v1` trailer.** Send prose with no\ntrailer and the existing one is restored, with `markerPreserved: true` saying\nso; send two, or one naming a different work item, or one on a comment that\nnever had one, and the edit is refused with the reason and the repair. The rule\nlives in `gh-core`, not here, because it is a rule about the link record rather\nthan about this command — and the macOS app edits through the same package.\n\n**Deleting the comment that carries the trailer is allowed and never silent.**\nThe `--yes` refusal names the work item about to lose its GitHub end and hands\nover the `pharos issue link` that puts it back; `--dry-run` prints the same\npreview and exits 0. Both read the comment first, because a preview that could\nnot say which of the two deletes this is would be a preview of the wrong thing.\n\nReactions are **not one vocabulary across the two platforms**. Azure DevOps\ntakes `like dislike heart hooray smile confused`; GitHub takes `thumbs-up\nthumbs-down laugh hooray confused heart rocket eyes`. Passing one platform's\nname to the other is refused rather than translated. The CLI spelling is words\nbecause GitHub's own names for the first two are `+1` and `-1`, and `-1` as a\npositional is read as a flag by every argument parser including this one.\n\n### `issue` — the GitHub edge, and only the edge\n\n```bash\npharos issue adopt contoso/widgets#45 --parent 39\npharos issue link contoso/widgets#45 4821\npharos issue say contoso/widgets#45 --file reply.md\npharos issue trail 4821            # …or trail contoso/widgets#45\npharos issue drift                 # where the two platforms disagree\npharos issue backfill contoso/widgets --limit 25 --yes\npharos issue close 4821 --text \"Shipped in 1.4.0.\"\npharos issue edit contoso/widgets#45 --title \"Crash on resize\" --yes\n```\n\nAzure DevOps already has a GitHub integration and **the link it makes carries\nnothing**: title, body, comments, labels and state stay on their own island, and\nthe transition only ever fires from a commit or a PR merge, never from closing\nan issue. That is the gap, and it is the whole pitch — not \"there is no\nintegration\".\n\n**Eight verbs, because `gh` already exists.** Listing, viewing and commenting on\nan issue is `gh`'s job and it is better at it — closing one *end* is `gh issue\nclose`, and closing the *pair* is `pharos issue close`; a second GitHub CLI\nwould be the drifting duplicate this repo has been bitten by three times.\nPharos owns what `gh` cannot see: the join.\n\n**`edit` is the one verb that overlaps `gh` head on, and it earns that by\nrefusing.** `gh issue edit` writes the same fields and writes them well; what it\ncannot do is notice that somebody changed the thing you are overwriting. It is\nlast-write-wins — if a colleague renamed the issue while you were composing,\ntheir rename is gone and neither of you is told. Fine for a human at a terminal,\nwrong for an agent that reads, thinks for a minute, and writes into a world that\nmoved. Want an unguarded edit? `gh issue edit` is right there.\n\nThe guard is a **value compare**, because GitHub offers nothing better:\n`PATCH /repos/{o}/{r}/issues/{n}` answers **400** to `If-Match` (measured), and\n`updated_at` and the ETag both move when somebody merely *comments*, so a\ntimestamp guard would refuse a good edit for a change that touched nothing. So\n`edit` re-reads immediately before sending and refuses only if the text it is\nabout to overwrite moved. Pass `--if-title` / `--if-body` / `--if-body-file` to\nguard against what **you** saw rather than against this command's own read; the\noutput says which, as `fields.guard.window`. It narrows the race to one round\ntrip and does not close it, and it says so.\n\nTwo things GitHub does quietly, which `edit` reports:\n`POST …/labels` **creates** a repository label that does not exist (so an unknown\none is refused with near misses — `--create-label` is how you mean it), and\n`POST …/assignees` **ignores** a login it will not assign while still answering\n201 (so read `assignees.ignored`). Labels and assignees go through their own\nadd/remove endpoints, never the whole-issue PATCH, which carries them as whole\narrays and would overwrite every label on every write.\n\n`adopt` creates the work item **and** writes both ends of the link:\n\n| | where | |\n|---|---|---|\n| 1 | a `Hyperlink` relation on the work item | measured, not chosen — `_apis/githubconnections` answers **401** on Pharos's PAT scopes while a control call answers 200, so the connection id a native `vstfs:///GitHub/Issue/…` link needs cannot be read at all |\n| 2 | one comment on the issue: `AB#4821` **and** `<!-- pharos:v1 repo=… issue=… ado=… -->` | `AB#` is free official linking wherever the Azure Boards app happens to be installed and harmless text where it is not. The trailer is what every machine reads, including the loop guard |\n\n**The marker goes in a comment, never the issue body.** Editing a reporter's\nbody collides with them, is rude on a public repo, and needs write access we may\nnot have on a community issue. A comment is append-only and needs none of that.\n\nThe relation and the parent ride in the **same patch** as the fields, so a work\nitem is never briefly pointing at nothing. Azure DevOps is written first because\nthe work item id does not exist until it lands — so the one failure this can\nleave is always the same shape, and it is reported rather than swallowed:\n\n```json\n{ \"error\": { \"createdWorkItem\": 4821, \"halfLinked\": true, \"wrote\": [\"hyperlink\"],\n             \"recover\": \"pharos issue link contoso/widgets#45 4821\" } }\n```\n\n`link` writes only the half that is missing, which makes it both the way to join\nan existing pair and the repair for exactly that state.\n\n**Adopting an issue twice never makes a second work item, and there are three\ndifferent answers behind that one sentence.** Which one you get says what state\nthe pair was in:\n\n| the issue carries a marker | exit **0**, `created: false` — the work item it names, and nothing written. The state you asked for already holds |\n| a work item links the issue and the issue says nothing | exit **3**, `halfLinked: true`, carrying `recover` — the same `pharos issue link …` command the failure above handed over. Finishing that link is the repair; a second work item is not |\n| two work items claim one issue | exit **3**, both named, and no `recover` — picking one would be inventing an answer to the question this feature exists to answer |\n\nThe middle row is the one that used to be a duplicate. The marker is the index\nand in that state it was never posted, so before creating anything `adopt` also\nasks **this machine** — an adoption is written to `~/.config/pharos/half-links.json`\nbetween the create and the comment, and removed when the comment lands — and\nthen **the board**, narrowing on `[System.HyperLinkCount]` and matching the\nrelation URLs client-side, which is the only way round Azure DevOps having no\nquery over them. The board is the stronger of the two — it sees a half-link\nleft on another machine — and the local record covers what it cannot: a board\nquery that is refused, a half-link older than that scan's cap, and a refusal\nthat costs no round trip. Every run reports `boardCheck`, because \"the board\nsays nobody has adopted this\" and \"the board could not be asked\" are different\nfacts and only one of them means the check happened.\n\n`trail` is read-only and answers from **either** end — the output shape does not\ndepend on which you passed. Read `evidence`: `[\"hyperlink\",\"marker\"]` is a\ncomplete link, and either one alone is a link that only half exists.\n\n#### `say` — one message, two audiences\n\n```bash\npharos issue say contoso/widgets#45 --file reply.md\npharos issue say contoso/widgets#45 --stdin --summary \"Fixed in 1.4.2; asked for a crash log\"\n```\n\n| | GitHub | Azure DevOps |\n|---|---|---|\n| who reads it | the reporter, who does **not** have an Azure DevOps account and never will | the team |\n| what they get | the full explanation, in their register | a summary, and the URL of the comment carrying the rest |\n\n**The asymmetry is the verb.** The same words in both places is `gh issue\ncomment` followed by `pharos comment add`, and neither of those knows the other\nhappened. Without `--summary` the board gets the first paragraph cut to 200\ncharacters — a guess, and allowed to be one *only* because the comment's URL\ntravels with it. The board is never the record of what was said; GitHub is.\n\n**The loop guard keys on content, never on `sender.login`.** GitHub events carry\nan actor and Azure DevOps events do not, which makes the actor look like the easy\nanswer and is the trap: every client writes with its own `gh` credential, so\n`sender.login == me` is *also* true of the human typing into the web UI, and\nsuppressing on it silently swallows their real comments. So the guard is the\n`pharos:v1` trailer, in two halves:\n\n- **Every comment `say` posts carries it**, because the read sweep is only safe\n  if `isPharosAuthored` is total. One unmarked Pharos comment anywhere is one the\n  sweep reads as a human's, and the loop that starts from it does not stop.\n- **A message that already carries one is refused.** That is Pharos's own output\n  being handed back — a mirrored body, a copy-paste, a script re-posting what it\n  read — and it is the loop starting one step before any sweep could see it. The\n  macOS app's queue refuses exactly the same thing.\n\nGitHub is written **first** here, the opposite of `adopt`, because the board's\ncomment carries the GitHub comment's URL and that does not exist until the POST\nreturns. The work item is read before anything is published, since the GitHub\nhalf lands on a repository that may not be ours. If the board half then fails:\n\n```json\n{ \"error\": { \"halfSaid\": true, \"wrote\": [\"github-comment\"],\n             \"github\": { \"commentUrl\": \"https://github.com/…#issuecomment-950\" },\n             \"recover\": \"pharos comment add 4821 --stdin\", \"adoComment\": \"…\" } }\n```\n\n**Do not re-run it.** A comment is an append, so a second `say` posts a second\npublic comment; the error carries the exact text and the command that writes the\nhalf that is missing.\n\n`say` starts from the issue end only. A work item may hyperlink several issues,\nso that end names no single reporter — `pharos issue trail <id>` is how you find\nout which issue you meant.\n\nPull requests are out of scope for v1 and are refused by name rather than\nhalf-supported: on GitHub's API every PR is also an issue, so `adopt` on a PR\nnumber would otherwise mirror something the rest of this does not model.\n\n#### `drift` — the report no other tool can produce\n\n```bash\npharos issue drift\npharos issue drift --repo contoso/widgets --limit 50\n```\n\n`gh` can list issues; Azure DevOps can list work items; **neither holds both\nsides**, so neither can say *these two disagree*. A link nobody checks decays\nquietly — an issue gets closed on GitHub and the board still shows the work in\nprogress, or a work item is marked done and the reporter, who has no Azure\nDevOps account and never will, is still waiting.\n\nFour kinds, because they want four different actions:\n\n| kind | what it means |\n|---|---|\n| `state` | both ends exist and disagree about whether the work is finished |\n| `missing-issue` | the work item names an issue GitHub does not have |\n| `one-sided` | the board has the link and the issue does not — what a failed `adopt` leaves. Carries the `pharos issue link …` that repairs it |\n| `unreadable` | the GitHub end could not be read, so nothing about this pair is known |\n\n**It scans links, not issues.** An unadopted issue is not drift — on a repo with\nfour hundred of them, counting \"not linked\" as a problem buries three real\nfindings under three hundred and eighty-eight rows of noise. What is *missing*\nfrom the bridge is `backfill`'s question; what is *wrong* inside it is this one.\n\n**\"Finished\" is read from the project, never guessed.** A process template\nrenames every state, and `Resolved` is terminal on a Bug and open on a User\nStory — so each work item is judged against its own type's categories and the\nreport says which source it used. When the catalogue cannot be read the stock\nnames are used *and said out loud*, because a row is uninterpretable without\nknowing what was counted as finished.\n\nAn unreadable repository is **information, not a fault, and never fails the\ncommand**: a work item can hyperlink a repo somebody else adopted on a machine\nconfigured differently.\n\n#### `backfill` — the adoption path, for the repo everybody actually has\n\n```bash\npharos issue backfill contoso/widgets                    # previews, then REFUSES\npharos issue backfill contoso/widgets --dry-run          # the same preview, exit 0\npharos issue backfill contoso/widgets --limit 25 --max-writes 50 --yes\npharos issue backfill contoso/widgets --label bug --parent 39 --yes\n```\n\nWithout a bulk route the bridge only works on a greenfield repository, which is\nnot where anybody is. A team with four hundred open issues cannot adopt them one\ncommand at a time.\n\n**Deciding what is already adopted costs two requests, not four hundred.** The\nboard is the enumerable side: a work item carries its `Hyperlink` relations on\nits own row, so one WIQL and one `workitemsbatch` return every link at once.\nGitHub cannot answer the equivalent question at all — the marker lives in a\ncomment, so asking costs a request per issue. That subtraction is correct\nbecause `adopt` writes the Azure DevOps end **first**, so the half-state it can\nleave is a hyperlink with no comment and never the reverse. The mirror image is\nstill possible if somebody deletes a relation by hand, so the marker is re-read\nper issue **at adoption time** — on the handful being written — and an issue\nthat turns out to be claimed already is skipped rather than adopted twice.\n\n**It is resumable and needs no state file to be.** The link *is* the progress\nrecord: a second run reads the board again, finds the ones the first run adopted\nalready linked, and carries on. Candidates are ordered by issue number ascending\nso that is true in the obvious way as well as the technical one.\n\n**The write budget is the throttle, on purpose.** Each adoption is two writes, so\nfour hundred issues is eight hundred against a default cap of twenty. That cost\nis worked out *before* anything is written and a run that cannot finish is\nrefused, naming both ways forward — rather than stopping at write nineteen,\nwhich is the outcome a caller can reason about least.\n\nA bare invocation previews and **refuses** (exit 3); `--dry-run` is the same\npreview at exit 0. The preview names the repository, the `gh` account it would\nbe reached as, **and the Azure DevOps organisation and project the work items\nwould land on**. Nothing in the design pairs a repo with a board, and a\nmis-aimed `adopt` is one work item where a mis-aimed `backfill --yes` is four\nhundred — each with a public comment naming a board its reporter has nothing to\ndo with.\n\n`--state` defaults to `open`: a closed issue is history, and adopting it creates\na work item that is finished before anybody looks at it.\n\n#### `close` — the ending of the trail\n\n```bash\npharos issue close 4821                       # …or close contoso/widgets#45\npharos issue close 4821 --to Removed --reason not-planned\npharos issue close 4821 --file release-note.md\n```\n\nCloses **both** ends, comments on each **pointing at the other**, then **re-reads\nboth** and reports what actually moved. Two 200s are not proof: a workflow rule\ncan refuse a transition on a field the API happily accepted, so `verified` is\nwhat was there afterwards rather than what was sent.\n\n**It does not compose `Closes #45` / `Fixes AB#123` into a PR body.** Those fire\non a PR *merge* and pull requests are out of scope for v1 — so there would be\nnothing to compose into and nothing to verify.\n\n**There is no hardcodable `Closed`.** The state written comes from the project's\nown categories: exactly one terminal state for that work item type is used,\nseveral is a **refusal** naming them and `--to`, because `Done` and `Removed` are\nboth finished and mean opposite things. If the catalogue cannot be read at all it\nrefuses rather than guessing — `drift` degrades to the stock names because a\nmisclassified row is a question somebody can dismiss, and the same guess here\nwould be a write.\n\n`--to`, not `--state`: `--state` already means `open|closed|all` on `backfill`,\nand one flag with two meanings across two verbs of one command is a bug that only\nshows up when somebody runs it.\n\nClosing an already-closed pair writes nothing and exits 0. A work item linking\nseveral issues is refused unless `--all` says so — \"close 4821\" should not read\nas \"close four strangers' issues\".\n\n## Configuration\n\n| | |\n|---|---|\n| `ADO_ORG` | your organisation — the first path component of your `dev.azure.com` URL |\n| `ADO_PROJECT` | the project inside it |\n| `ADO_PAT` | a Personal Access Token |\n\n**From the environment, and nowhere else.** No keychain, no credential helper,\nno config file — that is what lets this run headless, in CI, or under an agent\nwith nobody there to answer a prompt. There is deliberately no built-in\norganisation either: a default would let a misconfigured run succeed quietly\nagainst somebody else's board.\n\nScopes are separate and both are needed for full use: `vso.work_write` for work\nitems, `vso.wiki_write` for the wiki.\n\n**Every person uses their own token.** Board attribution is per-person, and a\nshared token makes everyone's work read as one account.\n\n### GitHub, which follows a different rule for a measured reason\n\nThe rule above is about `ADO_PAT` and it has not moved. GitHub is a separate\nthing, and it needs two facts that an environment variable cannot carry.\n\n**The credential comes from `gh`, so there is no fourth secret to manage.**\n`gh auth token --user <account>` resolves it and the API calls are ordinary\nHTTPS from there; revoking GitHub access never touches the Azure DevOps token.\nPass `--user` or nothing else: a bare `gh auth token` returns whatever `GH_TOKEN`\nhappens to be exported and ignores the keyring entirely, so an exported token in\nsomebody's shell would silently become the identity of a sweep.\n\n**The account is bound per repository, in `~/.config/pharos/repos.json`.**\n\n```bash\npharos setup --repo contoso/widgets --gh-account alisina-tibata\n```\n\nBoth flags or neither — a repository is a `(repo, account)` **pair**, and there\nis deliberately no fallback to whichever account `gh` has active. Azure DevOps\nbinds a project to one GitHub identity; `gh` holds many at once with one active\nmachine-wide, and on the machine this was measured on the active account was not\nthe one owning the repository behind the project being worked. The failure is\nnot a clean error either: two accounts can each see a repository of the same\nname, so the wrong one answers **200** for a different repository. That is what\n`pharos doctor --verify` compares owners for.\n\n`$PHAROS_REPOS_FILE` and `$XDG_CONFIG_HOME` both move the file. `gh` is optional\n— without it every `pharos issue` verb is refused by name with the reason, and\nthe Azure DevOps verbs are untouched.\n\n**And it runs in the other direction too: a verb whose target is a GitHub issue\nneeds no `ADO_PAT`.** `pharos comment list contoso/widgets#45` reads over `gh`'s\ncredential and touches Azure DevOps at no point, so it works on a machine that\nhas never had a PAT. The Azure DevOps configuration is resolved when something\nactually needs Azure DevOps, and not before — which means the `kind: \"config\"`\nerror naming `ADO_PAT` now arrives only from a verb that would have used it.\n`pharos issue` is the exception and honestly so: it writes to both platforms in\none invocation, so it needs both credentials.\n\n**`half-links.json` sits beside it, and it is the only thing this CLI remembers\nbetween runs.** An adoption is written there between the work item create and\nthe GitHub comment and removed when the comment lands, so what survives is\nexactly the set of adoptions that half-happened — the state neither platform can\nbe asked about, and the one a retry follows. It is never consulted for what a\nlink *is*: the marker and the hyperlink are read fresh every time, and an entry\nis checked against Azure DevOps before it is believed. Delete it and you lose\nnothing but one guard; `$PHAROS_HALF_LINKS_FILE` moves it.\n\n## Checking a machine\n\n```bash\npharos doctor                 # three tiers, with a stable id per check\npharos doctor --verify        # prove the credentials with real calls\npharos setup --install gh     # or ask|all|libreoffice,poppler,…\n```\n\n`doctor` is read-only and works before anything is configured, which is what\nmakes it the right first move when something behaves oddly. It prints the PATH\nit searched, because a GUI-launched app inherits a minimal one and would\notherwise be told a fully provisioned machine is bare.\n\nIt is offline apart from one probe, and that probe is named rather than glossed:\n**`gh auth status` validates every token against github.com**, with no flag to\nstop it, so it runs only when `gh` is installed. Measured on gh 2.87.3, it also\nreports an unreachable host as `The token in keyring is invalid` — a\nconnectivity fault worded as a credential fault. `gh-auth` therefore never tells\nyou that you are signed out; it reports both causes, because from here they are\ngenuinely indistinguishable.\n\n### The skill serves both agents\n\n`pharos setup --install skill` installs the skill from the floh-skills\nmarketplace into **every coding agent on the machine**: Claude Code, Codex, or\nboth when both are found. Codex reads the same Claude-format\n`.claude-plugin/marketplace.json` and generates its own `.codex-plugin/plugin.json`\nfrom it, so one publish reaches both.\n\n`doctor` reports them as two rows — `skill` for Claude Code, `skill-codex` for\nCodex — and emits each only when that agent is on PATH, so a machine running one\nof them does not get a column of red about the other. **Publishing a new version\ndoes not update an installed one**, and the command that picks one up differs:\n\n| agent | update |\n|---|---|\n| Claude Code | `claude plugin update pharos@floh-skills` |\n| Codex | `codex plugin marketplace upgrade floh-skills` then `codex plugin add pharos@floh-skills` |\n\nCodex needs the two because `codex plugin marketplace add` is a no-op once the\nmarketplace is configured and does **not** refresh the snapshot it fetched the\nfirst time — so `plugin add` alone reinstalls whatever was published back then.\n`--install skill` runs the refresh for you, and reports per agent which got it.\n\n`pharos setup --skill` is something else and stays Claude-only: a personal copy\nin `~/.claude/skills/`, which **shadows** the marketplace one and stops receiving\ncorrections. It is for a machine that cannot use plugins, and Codex has no such\nmachine — `codex plugin` ships with the CLI.\n\n## Delegating a work item to a coding agent\n\n```bash\npharos delegate --host vscode-insiders --agent claude \\\n    --folder ~/Developer/widgets --text \"Fetch Azure DevOps work item #4821 …\"\npharos delegate --host terminal --agent codex --folder … --text … --dry-run\npharos delegate --list --host terminal --agent claude --folder …        # what is running\npharos delegate --list --host all --agent claude --folder …             # …in every host\npharos delegate --session 6844 --host terminal --agent claude --folder … --text …\npharos delegate --host navarch --agent claude --folder … --text …       # a worker in Navarch\n```\n\nPharos.app's *Ask Agent* is a GUI over this verb, the way its Command line\nwizard is a GUI over `doctor` and `setup`: one detector, one launcher, and the\napp renders the decoded outcome rather than parsing `ps` or speaking\nAppleScript itself. It finds the session already running on that folder in\nthat host — `claude agents --json` for Claude, `ps` and `lsof` for Codex, the\nprocess tree for which application owns it — and types the prompt into it, or\nstarts one with the prompt as its first message.\n\n| host | how the prompt gets in |\n|---|---|\n| `terminal` | Apple Events: `do script … in` the tab whose tty the session holds, else a new window. macOS asks once whether the calling app may control Terminal. |\n| `vscode`, `vscode-insiders` | a `vscode[-insiders]://floh-solutions.pharos/delegate?…` URI handled by the Pharos bridge extension — `pharos setup --install vscode-bridge`. Nothing else can put a prompt into VS Code from outside; the Claude Code and Codex extensions take none. |\n| `navarch` | one JSON line on `argusd`'s board socket — `{\"op\":\"delegate\"}`, the verb that needs no board todo. The daemon finds a worker on the folder, Navarch starts one if there is none, waits for a screen that can take text, and types. See below: it is the one route that can answer `pending`. |\n\n### Several sessions on one folder\n\nA folder can carry more than one session of the same agent in the same app,\nand only the person knows which they meant. `--list` is the inventory and\n`--session` is the pick, and both read the **same ranking** — so the row marked\n`recommended` is not a claim about what a plain delegate would do, it *is* the\nrow a plain delegate takes.\n\n```json\n{ \"ok\": true, \"sessions\": [\n  { \"id\": \"6844\", \"name\": \"team-sync-6c\", \"agent\": \"claude\", \"host\": \"terminal\",\n    \"status\": \"idle\", \"detail\": \"Terminal tab ttys003\", \"recommended\": true } ] }\n```\n\n`--list` sends nothing, needs no prompt, and is scoped to the requested\n`--host` — or to every host, with `--host all` (below). Every key on a row is\nalways present and never null — the app decodes\na row into a menu item, and an absent field is a decoder somebody gets wrong\nonce and then only on the machine where it is missing. (`profile`, below, is\nthe one deliberate exception.) `id` is a **string**\neven though it is a pid today, because a Navarch id will be a worker UUID.\n`detail` is the locator only and never repeats the status, so a caller composes\nits second line as status + detail. No sessions is a normal answer: exit 0 with\n`[]`. Only `host-not-installed`, `agent-not-installed` and `folder-missing`\nrefuse a list — notably **not** `bridge-not-installed`, because listing is\n`claude agents --json` and `ps` and reads the same on a VS Code with no\nextensions at all. `--dry-run` carries the same array.\n\n### Every host at once: `--list --host all`\n\nA person with a Claude session in Terminal and another in VS Code wants both in\none list, whichever host they would start a new one in. `--host all` answers for\nevery installed host in one listing, and it is **the union of `--list --host\n<h>`**: the same rows, the same ranking inside each host, hosts in the fixed\norder `terminal`, `vscode`, `vscode-insiders`, `navarch`. Each row carries its\nown `host`, and `recommended` is on the head of **each** host — the row a plain\ndelegate to *that* host would take, since there is no plain delegate to \"every\nhost\". Beside the rows, `hosts` says what each host answered:\n\n```json\n{ \"ok\": true, \"host\": \"all\", \"sessions\": [ … ], \"incomplete\": false, \"source\": \"daemon\",\n  \"hosts\": [\n    { \"host\": \"terminal\", \"sessions\": 2, \"incomplete\": false, \"detail\": \"…\" },\n    { \"host\": \"vscode\", \"sessions\": 0, \"incomplete\": false,\n      \"reason\": \"host-not-installed\", \"detail\": \"…\" },\n    { \"host\": \"vscode-insiders\", \"sessions\": 1, \"incomplete\": false, \"detail\": \"…\" },\n    { \"host\": \"navarch\", \"sessions\": 4, \"incomplete\": false, \"source\": \"daemon\", \"detail\": \"…\" } ] }\n```\n\nA host that contributed nothing it could have carries the `reason` its own\n`--list` would have refused with — `host-not-installed`, `agent-not-installed`,\nor whatever the Argus socket said — so there is no new vocabulary. A host whose\nlist may be short is `incomplete` on its own entry (the three pid hosts share one\ndetection, so a failed probe marks all three; a broken socket conversation marks\nonly Navarch), and the top-level `incomplete` is true when any is. The listing\nrefuses only where no host could be asked: the folder is missing, nothing is\ninstalled, or every installed host refused for the same reason — and then with\nthat reason. The three pid hosts cost one `ps` and one `claude agents --json` per\nregistry between them, and the Navarch read runs beside it.\n\n**It is a list, and only a list.** A send, a `--session` pick and a `--status`\nread each go to one host, so `--host all` with any of them is a usage error. A\npick is sent back with the **row's own `host`**; `--session new` and a plain\ndelegate go to whichever host a new session should start in. A pharos older than\nthis refuses `all` with a usage error naming `--host` and the value, which is\nwhat an app built against this one falls back on.\n\n### Sessions that run as another login\n\n`claude agents --json` lists ONE config directory's sessions, and a machine has\nseveral: the default (`$CLAUDE_CONFIG_DIR`, or `~/.claude`), every Argus agent\naccount (`~/.config/argus/auth/claude/<name>`), and whatever `CLAUDE_CONFIG_DIR`\na VS Code or a session was started with — an editor opened from a shell inside\nan Argus worker gives every terminal that worker's login. So Claude sessions are\nread from all of them, one `claude agents --json` each, merged and de-duplicated\nby pid, and a session found outside the default carries `\"profile\": \"floh\"` and\n` · profile floh` in its `detail` (both absent for the default, so its rows read\nas they always did). Every registry past the default is asked only when it\nalready holds `sessions/*.json`: asking one that has never run a session writes\na first-start `.claude.json` into it, and those directories are the fleet's\ncredentials. Starting a session is unchanged — the host's own environment\ndecides the account — but when a VS Code carries a non-default\n`CLAUDE_CONFIG_DIR`, `--list`, a launch and `doctor`'s host row all say so, with\nthe fix (relaunch it from the Dock). Terminal cannot be asked the same: it is an\nApple platform binary, and macOS shows `ps -E` none of its environment, so its\nsessions are found through their own and a new window says nothing about a\nlogin it cannot read.\n\n### Navarch, over `argusd`'s own socket\n\n```bash\npharos delegate --host navarch --agent claude --folder ~/Developer/widgets --text \"Fetch …\"\npharos delegate --host navarch --agent claude --folder … --list\npharos delegate --host navarch --agent claude --folder … --session 1958E897-… --text \"…\"\npharos delegate --host navarch --agent claude --folder … --gh-account alisina-tibata --text \"…\"\npharos delegate --host navarch --agent claude --folder … --status 89933CD2-…\n```\n\nIn Navarch neither half of the job belongs to the application alone. A worker's\nterminal is held by **`argusd`**, a daemon that outlives the app; only the app\ncan watch a screen settle before typing into it. So the route is one JSON line\non `~/.config/argus/argus-board.sock` — `{\"op\":\"delegate\"}` — and the two halves\nsplit where the knowledge is: the daemon validates and finds a worker on the\nfolder, Navarch starts one if there is none, waits for an input box and types.\n\nIt is also the one route that needs no board todo, which every other operator\naction in Argus does. That is the whole reason the verb exists: the work item\n*is* the todo, and it lives in Azure DevOps. The hand-off is recorded on a\nhidden scratch pad instead, reported as `delegation.todo`.\n\n**`pending` is a successful answer, and a `--status` read is the other half of\nit.** On the default autonomy dial the first hand-off on a machine raises an\napproval card in Navarch, and the daemon answers the moment it goes up rather\nthan holding a CLI on somebody who is in another app:\n\n```json\n{ \"ok\": true, \"action\": \"pending\", \"host\": \"navarch\", \"session\": null,\n  \"detail\": \"Navarch is asking you to approve this hand-off …\",\n  \"delegation\": { \"request\": \"270005F8-…\", \"worker\": null, \"name\": null,\n                  \"created\": false, \"todo\": 2 } }\n```\n\n`worker` and `name` are `null` rather than `\"\"` because nothing has been typed\nyet — \"we have not got a worker\" and \"the worker is the empty string\" are\ndifferent facts. Pass `delegation.request` back as `--status <request>` to turn\nthat into `sent`, `launched`, `declined` or `delivery-failed`; argus keeps the\nrow for an hour, sized for a person at lunch rather than for a poll.\n\nThe socket adds ten `reason` ids, and they are separate because **each names a\ndifferent fix**:\n\n| `reason` | what is true | the fix |\n|---|---|---|\n| `argusd-not-running` | nothing is listening on the socket | open Navarch; argusd comes with it |\n| `argusd-outdated` | argusd is running and predates the verb | reload it — deliberately, it ends every live session |\n| `navarch-not-running` | argusd is up, the app is not | open Navarch |\n| `unsupported` | Navarch is running and is an older build | update it (`make-app.sh --install`) |\n| `declined` | a person said no at the card | nothing to fix |\n| `delivery-failed` | Navarch reached the worker and nothing landed — a trust dialog, a blank screen | look at the pane, then delegate again |\n| `rate-limited` | twelve operator writes a minute, and this was the thirteenth | wait a minute |\n| `not-an-operator` | the gate refused the stamp pharos sets on every request | almost always a daemon that predates it |\n| `request-unknown` | `--status` for an id this core does not hold | it aged out, or was made elsewhere |\n| `gh-account-unknown` | `--gh-account` named an identity this core has never heard of, and a worker would be started | add it in Navarch ▸ Accounts, or pass a spelling it knows — the refusal lists them |\n\n`argusd-outdated` is the one to expect first, and it is not a bug: argusd\noutliving the app is the feature that keeps sessions alive across a restart, so\nmaster, the installed app and the running daemon drift independently. It is also\nthe one that has to be **inferred rather than read**. `reason` arrived with the\nverb, so a daemon too old to serve `delegate` is too old to stamp one — and it\nsays three different things, two of which blame the caller:\n\n```\n{\"ok\":false,\"error\":\"unknown op 'delegate' — see argus-board help …\"}\n{\"ok\":false,\"error\":\"delegate requires a \\\"todo\\\" (id) — the work it serves\"}\n```\n\nThe second is the trap. An old daemon forwards any verb the attached app claims\nit can run, and that forwarder demands the board todo this verb exists to do\nwithout — so a correct delegation is refused for not carrying one, and a caller\nthat believed the message would go and add it. **The tell is the missing\n`reason` key, never the prose.**\n\n`--list` asks `delegate_candidates` — **the find, asked rather than\nperformed** (argus #1402). The rows are argusd's own answer to its own\nquestion, ranked by its own rule: not exited, the right kind, local, not\nholding a board mission, and **not an Argus Agent** — an operator is a claude\nworker with no mission sitting in a base checkout, which is exactly the folder\na person links in Pharos, and delegating into it would hand the work item to\nthe thing that drives the fleet. Ties break on `starting` last and then on\nascending UUID, never on status, so two calls a second apart name the same\npane. `recommended` is the daemon's own `target`. A row's `id` is the worker\nUUID, its `status` is the contract's `idle`/`busy`/`unknown` — with\n**`needs_input` reported `busy`**, because a worker on a trust dialog is idle\nby every measure except the one that matters.\n\nThe answer carries **`source`**, which is not a footnote:\n\n| `source` | what the list is | what `--session` / `--gh-account` do |\n|---|---|---|\n| `daemon` | `delegate_candidates` — a row it offered is a row it accepts | honoured |\n| `fleet_status` | this CLI's own reading, a prediction of the find | refused `argusd-outdated` |\n\nAn argusd that predates #1402 answers the read `unknown-op`, and `fleet_status`\nanswers on *every* generation of argusd — so the list is still worth serving,\nand it is served with `source: \"fleet_status\"` and a sentence saying the pick\ncannot be honoured against that daemon. One that predates `delegate` itself\ncarries no `reason` key at all, and that is `argusd-outdated`: listing workers\na send is about to refuse to touch would hand the app a menu of picks that can\nonly fail.\n\nTwo things the route does **not** do. It never pre-checks the agent on `PATH`:\nargusd spawns the worker from the app's own login shell, and a GUI-launched\nPharos has roughly `/usr/bin:/bin`, so a check here would refuse nearly every\nreal call while reporting a fact about the wrong process. And it never folds a\nmulti-line prompt into one line — the receiving TUI submits on Enter and Navarch\nowns that Enter, so several lines is a usage error rather than a rewrite nobody\nproof-read.\n\n### Picking a worker, and the daemon that would ignore the pick\n\n`--session <uuid>` travels as the op's `worker`, and `--session new` as\n`worker: \"new\"` — a fresh worker even where the find would have had one. The\nCLI does **not** re-check the pick before sending it: argusd validates `worker`\nagainst the very predicate `delegate_candidates` listed from, so one rule\nserves the find, the list and the validation, and a second copy here could only\ndisagree with it. A row the read offered is a row the send accepts.\n\nA pick it will not take comes back as **`session-gone`**, keeping argusd's own\nsentence — which names *which* of six it was: *has exited*, *is an Argus Agent*,\n*is holding mission #N*, *is a codex worker, not claude*, *is on ax52, not on\nthis Mac*, *is in … , not in …*. That is the same fact and the same fix as a\nvanished pid on Terminal, so it is the same word. (`session-not-targetable` was\nthis route's own refusal and is **gone from the closed set** — it meant the op\ncould not express a target at all, and it can.)\n\n**A daemon that predates #1402 does not refuse these flags — it ignores them.**\n`delegate` reads the keys it knows and discards the rest, so a `worker` it has\nnever heard of is dropped, the find runs anyway, and the answer is `sent` about\na pane nobody chose; a `gh_account` is dropped the same way and the worker\nstarts as whoever `gh` was last logged in as. Nothing in the reply says either\nhappened. So `--session` and `--gh-account` ask `delegate_candidates` first —\nit landed in the same change, so serving it is proof both fields are read — and\nrefuse `argusd-outdated` with nothing sent when it is not served. `pharos\ndoctor`'s `argus-delegate` row reports the same fact before anybody hits it.\n\n### The GitHub account a started worker runs as\n\n```bash\npharos delegate --host navarch --agent claude --folder … \\\n    --gh-account alisina-tibata --text \"Fetch Azure DevOps work item #4821 …\"\n```\n\n`--gh-account` takes a **GitHub login, or the label of an account bound in\nNavarch** — argusd resolves it against its own `accounts.json`, label first and\nthen login, case-insensitively and read fresh on every call. Two spellings\nbecause two systems name one identity differently: Navarch knows a label a\nhuman picked, and a caller outside Argus knows the login. The flag is held to a\nlogin-shaped token (no spaces), so a label containing a space cannot be named\nthrough it — pass the login, which always resolves.\n\nThree rules, all argusd's:\n\n- **A worker it STARTS runs as that account.** An account it does not know is\n  refused `gh-account-unknown`, never substituted — a worker with no binding\n  runs as whatever `gh` was last logged in as, and a hand-off that commits\n  under the wrong identity is the failure the resolution exists to prevent. The\n  refusal lists every label and login the core holds.\n- **A prompt that lands in a worker already running leaves its account alone**,\n  and says so in the reply: a session already on the project is already running\n  as somebody, and re-checking would refuse hand-offs that are perfectly fine.\n- **There is no fallback**, in either direction.\n\nOn `terminal`, `vscode` and `vscode-insiders` the flag is accepted, ignored,\nand said to be — those hosts hand the prompt to a session in an app that is\nalready running as whoever this machine is logged in as, and only Navarch\nstarts a session on your behalf. An empty `--gh-account \"\"` is a usage error\nrather than \"no account asked for\": a caller whose variable came out empty must\nnot silently get the wrong identity.\n\n### Picking one of several\n\n`--session <id>` delivers to exactly that session and **never falls back**: a\npick that no longer matches is `session-gone`, not a new window. That covers\nthe session exiting between the list and the send, and a Terminal tab closed\nwhile the process still reads as Terminal's — the one case no pre-check can\ncatch, because only Terminal knows its own tabs. The refusal says which it is,\nincluding when the pid is alive under a *different* host. `--session new` is\nthe reserved opposite: start a fresh session even though live ones exist. A\nmalformed id is a usage error rather than `session-gone`, because the latter is\na fact about the machine and would tell somebody their session had died when it\nnever existed.\n\nOn Navarch the pick is a worker UUID and travels as the op's own `worker` — see\n*Picking a worker* above. On the VS Code hosts it travels in the URI as\n`session=<pid>`, and the bridge honours it — from **0.2.0**. An older bridge refuses any query key it\ndoes not know, so it would reject the whole URI and send nothing; `--session`\nagainst one is therefore refused `bridge-not-installed` here rather than\nreported as sent, and `pharos doctor` marks such a bridge not ok so the wizard\noffers the upgrade. Delegating without `--session` works on either.\n\nSuccess is `{ ok: true, action: \"sent\" | \"launched\" | \"pending\", session,\ndetail }` — `pending` only on `navarch`, where it carries a `delegation` block.\nA refusal is `{ ok: false, reason, detail }` on stdout with exit 2, `reason`\nbeing one of `host-not-installed`, `agent-not-installed`,\n`bridge-not-installed`, `automation-denied`, `folder-missing`, `unsupported`,\n`session-gone`, plus the Argus socket's ten tabulated above — stable ids,\nbecause the app renders facts. **`session-not-targetable` is no longer one of\nthem**: it meant the `delegate` op could not name a worker, which stopped being\ntrue with argus #1402, and a dead id in a closed set is a fix the app builds\nfor a state that cannot happen. `pharos doctor` carries the rows behind them:\n`terminal`, `vscode`, `vscode-insiders`, `navarch`, `claude`, `codex`, per\ninstalled VS Code flavour `<host>-claude-ext`, `<host>-codex-ext`,\n`<host>-bridge`, and — only where Navarch is installed — `argus-delegate`, which\nasks the **running** `argusd` whether it serves the verb, and then whether it\nalso reads a target worker and a GitHub account. That last one is a row\nof its own because argusd outlives the app: a current Navarch in `/Applications`\nand a daemon from last week are an ordinary state, and the daemon is what\ndecides. It offers no `install`, because the fix is a reload that ends every live\nworker session and is a person's to time. The agents are reported, never installed:\na coding agent is the person's login.\n\n## Resuming an older conversation\n\n```bash\npharos conversations                                   # what ran in this folder, both agents\npharos conversations --all --agent codex --include-unavailable\npharos delegate --resume claude:<id> --host terminal --text \"…\"\npharos delegate --resume codex:<id> --host vscode-insiders --text \"…\" --dry-run\n```\n\n*\"one thing both miss and can easily add, is fetch all conversations and resume\none from the native UI\"* — @user (#1520). Pharos.app's \"Load conversations…\"\nwindow is a GUI over these two verbs, and Navarch's New Worker dropdown reads the\nsame stores in Swift. **Two readers in two languages stay one reader because\nthey share one contract and one fixture set** (#1526: canonical in argus\n`packages/navarch-protocol/Tests/NavarchProtocolTests/Fixtures/conversations`,\nvendored here by `scripts/sync-navarch-protocol.sh`). The record is the\ncontract's, spelled snake_case because `conversations.list` on the Navarch wire\ncarries it verbatim:\n\n```\ntool, id, name, first_prompt, cwd, created_at, updated_at, turns, git_branch?, model?,\nprofile {dir, source}, host, entrypoint, live, pid?, archived, resumable, reason?\n```\n\nOptional keys are omitted, never null; `reason` is present exactly when\n`resumable` is false and is the first of `live`, `live-unknown`, `archived`,\n`cwd-gone` that applies; dates are whole seconds with `Z`.\n\n**What is read.** Only the profile this shell runs as —\n`CLAUDE_CONFIG_DIR` / `CODEX_HOME`, else `~/.claude` / `~/.codex` — because a\nconversation lives in the config directory it was made under and is invisible to\na resume under another. The accounts Navarch holds are Argus's to list. Claude:\n`projects/<slug>/<uuid>.jsonl`, the folder from the FIRST record carrying\n`cwd` (the slug is lossy and cut at 200 characters, and a later record carries\nwherever the Bash tool `cd`'d to), the name from the last `custom-title`, else\nthe last `ai-title`, else the first prompt. Codex: `state_5.sqlite` › `threads`\nfor every field it has, a rollout found by id under `sessions/` or\n`archived_sessions/` (a thread whose rollout is gone is not a conversation),\n`thread_history_1.sqlite` for turns, and `session_index.jsonl` for nothing. The\nfull rules, and the measurements behind each, are the file comments of\n`src/conversations/`.\n\n**Live is decided one way.** Claude: `claude agents --json` under the same\nprofile, and `kill(pid, 0)` on the pid it names — a registration whose process\nis gone is stale. Codex: the process holding\n`<CODEX_HOME>/thread-writer-locks/<id>.lock` open (`lsof`), and `kill(pid, 0)` —\na lock file nobody holds is a crash's leftover. A probe that cannot be asked\nmakes that store `live-unknown`, never resumable.\n\n**Per folder by default**, `--all` lifts it. Hidden unless asked for, and\ncounted in `hidden`: a folder that is gone and an archived thread\n(`--include-unavailable`), and the `sdk-cli` and `codex exec` runs\n(`--include-noninteractive`). A live one is always listed: it is the one a\nperson most likely means, and the route to it is `--session <pid>`.\n\n**`--resume` opens a NEW process on the conversation** — never types into a\nrunning one — `claude --resume <id>` or `codex resume <id>`, in the recorded\nfolder, with the profile reproduced both ways: `env` sets the variable to the\nstring verbatim (Claude Code keys its login on a hash of it), `default` removes\nit (a Terminal or an editor started from another account's shell would\notherwise pass that account's on). The prompt follows `--`. In Terminal that is\na new window; in VS Code it is the bridge, from **0.4.0**, which takes\n`resume=<tool>:<id>` and a `profile=` only for `env` — an older bridge would\nreject the whole URI, so it is refused `bridge-not-installed` rather than\nreported as opened. Success is `action: \"resumed\"` with the `conversation`.\nThe bridge runs a `profile` only when it is `~/.claude` / `~/.codex`, an Argus\naccount under `~/.config/argus/auth/<agent>/`, the one that VS Code was started\nwith, or listed in its **`pharos.allowedProfiles`** User setting — a vscode://\nlink can be opened by anything, so a shell whose own `CLAUDE_CONFIG_DIR` /\n`CODEX_HOME` is none of those allowlists it there once, and until then VS Code\nrefuses the resume (`profile-not-allowed`) and says what to add.\n\n| refusal | what it means |\n|---|---|\n| `conversation-live` | it is running — a resume would put a second writer on one transcript. Carries `route: {host, session, typeable}`: send there with `--session` |\n| `live-unknown` | whether it is running could not be asked, and a resume never proceeds on \"could not check\" |\n| `conversation-archived` | Codex refuses an archived thread — `codex unarchive <id>` first |\n| `cwd-gone` | its folder is not there. A resume from any other folder succeeds and quietly moves the conversation, so none is substituted — `--folder`, if given, must be the recorded one |\n| `conversation-unknown` | no such id in this profile's store, or it is an agent's own sidechain or subagent thread |\n| `profile-missing` | the profile this shell resolves to has no store |\n\nNavarch is `unsupported` for now: its route resumes over the handover wire,\nwhich gains a resume target in navarch-protocol 0.5.0 (#1527).\n\n## Requirements\n\nNode 22 or later. `gh` for the GitHub bridge, and nothing else is required.\n`pharos delegate` is macOS only: its hosts are macOS applications.\n","readmeFilename":"README.md"}