{"_id":"@flowapt/flowiq-cli","_rev":"67-aa1d9646b8da1477a220bf2743f33ffa","name":"@flowapt/flowiq-cli","dist-tags":{"latest":"0.12.1"},"versions":{"0.1.0":{"name":"@flowapt/flowiq-cli","version":"0.1.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"269e0862cb1d2c3fc23da2715dc5a20e5e6f7d1c","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.0.tgz","fileCount":8,"integrity":"sha512-0WLF+qyaM85tS3Goob6tUq4RKc7hB7rFktJWLOY5R8gCWv5uK0nVcXI/iwDv/MhJh+TI0IyfFGtSu7kVbr4ztw==","signatures":[{"sig":"MEUCIBjEHh/qUSD+/2XNuoB7cILc5YiRzwJO+IPr/ASvaQgbAiEAzr1JUII4/YIgWirShqWAXnbNfAK/Y8IOVlWJ7R43pXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15043},"type":"module","engines":{"node":">=18"},"gitHead":"ed0bdb95aab71eac0e487b0f571df0ab46d387f3","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.6.2","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, webhooks, and more without ever touching service-role credentials.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.0_1778628798749_0.5343775235468247","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@flowapt/flowiq-cli","version":"0.1.1","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.1","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"a53e4d905cfacbba57735192c4b0a8f6de4cd025","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.1.tgz","fileCount":9,"integrity":"sha512-TnSUUxxtLhLq1Ga5BSbNu7IyHdveu8SOfObrj7rRty4i9XK1fMbdOlHWd966W+QpVizdE5X1IDdxsFcGNl0w6g==","signatures":[{"sig":"MEUCIBMRMVWyOJwarHxmclX4MAP6Op7GkSmjmpPmOJ6Csm0iAiEAks1xkBOtM0o+qk4WHO/wUK1lB4k4O54wEY7Jai/cgSM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20087},"type":"module","engines":{"node":">=18"},"gitHead":"ef0824248a668b934c8ba4a1c147902c68705496","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.6.2","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, webhooks, and more without ever touching service-role credentials.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.1_1778685956109_0.5676109435180505","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@flowapt/flowiq-cli","version":"0.1.2","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.2","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"9722cf00b7d351e5aa75833af7bade3ecb01f64a","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.2.tgz","fileCount":10,"integrity":"sha512-b280upww0S5j0h2ot9DrjP9fYoZNISckU5wYsGA4PXDvA1SZ4gHSDxFGquj2w3wRthRVwf4GF5PTaFzjgEFRvQ==","signatures":[{"sig":"MEYCIQCiRbQwK5xHHR3CTGs7I0LVEwGFtwHB6hxHx26qSrVMMgIhALH8ZRCxqvN62QKuzLWiYp/uJADp5VhUM3kLWevj7R46","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23470},"type":"module","engines":{"node":">=18"},"gitHead":"e337e978dbdb5d0c3b025f9f5ffa83bb17cbdac7","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.6.2","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, webhooks, and more without ever touching service-role credentials.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.2_1778781199369_0.8692061111242435","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@flowapt/flowiq-cli","version":"0.1.4","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.4","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"b6af8c5adf001d324585ffe9215eefe4d4ff1eb3","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.4.tgz","fileCount":13,"integrity":"sha512-KPhR2Aq3fZ47SLrR8xoe0l82J0fqWx8YFYr3LGI0kUPhjOu7Xo0y/bunfzrIBLFwtip5R+snh16NGokseo0rOw==","signatures":[{"sig":"MEQCIDzcp+qBcouxiaTSwGP4Cgsy38U1i5iIwkU3xBj7w4sGAiB/M29LdAUUJ61TPbiXD44qM9qYptxZAeMbOTjRGsDViw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45323},"type":"module","engines":{"node":">=18"},"gitHead":"60a80e1f81ab0b54e38e7d2b6d7026e7771209ff","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.6.2","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, webhooks, and more without ever touching service-role credentials.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.4_1779311110233_0.8978060341581136","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@flowapt/flowiq-cli","version":"0.1.5","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.5","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"325ca663f64282d95c2521c2e82ca052b449dffa","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.5.tgz","fileCount":13,"integrity":"sha512-s9UcM1ZAKJ9Gg5IB1Kfm409XWFB4Zki4SYTZNl6sMnL+oDPf1OfD7DamDl7GsWlMG8IxiWOdBjlG2orhcejHyA==","signatures":[{"sig":"MEUCIDEb0ACa1etxvqMLTpPa20Ye57Qr6t7p0NoX8bxWu3fHAiEAnoWZDoCVsKet0MXmN1SlSMpnTqcTyOZpCb49m+NYOaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45804},"type":"module","engines":{"node":">=18"},"gitHead":"5485e45e8d2b492f32e56afd933b70466a0658cb","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.6.2","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, webhooks, and more without ever touching service-role credentials.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.5_1779316330095_0.6896256482395657","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@flowapt/flowiq-cli","version":"0.1.6","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.6","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"9d4f107aad5c15afea61bd4742502018c0486cf3","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.6.tgz","fileCount":15,"integrity":"sha512-sjhs02WFRui5gz9+wg0Hy6ZdJe2d6v5DYKTthWu1V5PnxSIIDNPASQH5RcmU+Gpv5qxyT1689jrcXR4l7ZNYng==","signatures":[{"sig":"MEMCH3AV6YcA4HGcI3OSfuj2PuACJea05w/naouNMe5Bu4YCIFCcgl7mr6dLP6gxYBNagcp4tM8p6FupQlnWqcJ2EgoL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69297},"type":"module","engines":{"node":">=18"},"gitHead":"fedc11be3927b3074b550a8f13379477714f25de","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, FlowMod master-group prompts, webhooks, and more without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.6_1782398953934_0.6353835542196227","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@flowapt/flowiq-cli","version":"0.1.7","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.7","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"6682027e3128e2aeefb1847aa6222c2b951017b1","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.7.tgz","fileCount":23,"integrity":"sha512-hRLDRcAJCh5qCcotifWUPd+njzt75ROuRg9H/FNfbfevxM5kWK9vRpjboZMg/kPlRI7aADCDNFBh0yYiRfSKzA==","signatures":[{"sig":"MEYCIQDzyLuajr2qtrcci7/qOnKL+t/pSsD4MtluXTdT7dOvzgIhAL4JlaEoUpi9kgJAJaCBvQ5xAD7eKUfaFvS/+S8VQc+n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124891},"type":"module","engines":{"node":">=18"},"gitHead":"23e54ba2c9df4ea140b28cabad4534906dcf32cd","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.7_1783504846036_0.23215104301784106","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@flowapt/flowiq-cli","version":"0.1.8","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.8","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"e4e6583fe004584c314a50f1012e3907ce829ee4","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.8.tgz","fileCount":24,"integrity":"sha512-xishC5En5vGLW7juxYY4coFm8ThvDy+9ns+XlRK9oYgIuA9McLQ4OD9XcfnrlAJXjsyXGDaA9/h9HgwSwhaNZQ==","signatures":[{"sig":"MEUCIByByCkfM1O+X1PkeffcapGsACzPZSZX1YCCFyUyIQWeAiEAj4eIExhcy0EBP3VbsOcZIIljfOH3NYu2vQguRUONS28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131343},"type":"module","engines":{"node":">=18"},"gitHead":"15406089ae62e07a4c0edc12bd5be60c3d9fd043","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.8_1783898165983_0.47120068530956893","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@flowapt/flowiq-cli","version":"0.1.9","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.9","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"3c2a59c953ecf7fc1c3b97e0a822c4a5b30ec28d","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.9.tgz","fileCount":24,"integrity":"sha512-7K97ke4uDqBKTw2R/tJTez4hTpubIB0xpZ4BJ+TjB4myTeKGWOPiXF5+Z9l0PfRg5RgcHBVF5Ge41Qtd6y7gyg==","signatures":[{"sig":"MEQCIDLqjNmZ9cdjijl+L4B6R4ETgP+nT3oqRSkarax0rHn9AiAhGtvZSrv2XCE3vj+hRsSl5le3NTYuH8XmyyykgVyOww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132563},"type":"module","engines":{"node":">=18"},"gitHead":"bdf5ca090cc2945b83935729f4123f30ce175e20","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.9_1783902722813_0.9286511560177171","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@flowapt/flowiq-cli","version":"0.1.10","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.10","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"77e4ad085fdd82fe09d3c4a6215740e2c828b7ba","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.10.tgz","fileCount":25,"integrity":"sha512-BVzHWgmk1eZizR6gT26uYGqoeQR7ylPl5FdK2CGZMUYu8FC/PUKmatjtdxU+Cdd5n904Yq3oHW+0X4V2X5kC2w==","signatures":[{"sig":"MEUCIQDqDxyfsS2Dby9b74i9/UkeCA706Xg8D2+Ls5OAGS7A0wIgJSvfasjQnqxGVrG1lG7lsXd/SdXSyoMr6kJLjWE/Ms4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140747},"type":"module","engines":{"node":">=18"},"gitHead":"c58294f6da8bed7d72a7974d6e4779a939e93439","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.10_1784061412909_0.3124331015240953","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@flowapt/flowiq-cli","version":"0.1.11","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.11","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"da194f75c5e53c683e8895b3521ad8ae554ba40c","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.11.tgz","fileCount":25,"integrity":"sha512-UvtT76gP/NiF/w6IVo8UGrw2PVfcoxE24QGXfjiJ33Y5gUiyrcSrogLy2F4fwtF0V9UWyi1fXx2fz9jAVA0JPw==","signatures":[{"sig":"MEUCIQCTYy2HVFn0A5sEOABhI20y98pooV6h1gg3eeE4wq9zYgIgaJ9f6QkOEtDNfJQvVG7Q1WtU9djmSSQd+73wIS0qJH8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146907},"type":"module","engines":{"node":">=18"},"gitHead":"2be9c0fbcff5a6c758c4945ccb1f47f67ba87033","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.11_1784063738713_0.5516421501836182","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@flowapt/flowiq-cli","version":"0.1.12","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.1.12","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"b4a921b8b9ec1f023391acbdc6868b8a83ecb4a5","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.1.12.tgz","fileCount":26,"integrity":"sha512-/+6nGsvxlNC5p/ifJMNtgIHLx4oE0KWxPXfSSGRDcH1xfvhNvhNlZI1NQm4LbOLriSsP6kOA9GZk1gD74XLM7w==","signatures":[{"sig":"MEQCIECdCnVhqoAeebygm7hfAM9aQ5nEIgzSI2Tfx4R31f4ZAiB0EembF8lZUY0Q26ksWq9FidnE1etkVpkSm9ZMkgpRKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157820},"type":"module","engines":{"node":">=18"},"gitHead":"bf1938f483eee80d1491cf06b3fc2b10deefd394","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.1.12_1784143792315_0.7874891146583802","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@flowapt/flowiq-cli","version":"0.2.1","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.2.1","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"494585b0f0ab9d9e57f789cb0974a5e3cbf3c24a","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.2.1.tgz","fileCount":29,"integrity":"sha512-7nE5NYF390E77Eb0mB4JFrWK0bm4gSimESnHNt8N6+NYHJzd6d6VFKiDZw6x0g2UF0fYoVZo5NmPcfvaTFWeFw==","signatures":[{"sig":"MEUCICL+OAxin7c5XxI6FXpg9McM8W9TSK1YWnFIhzOKrDo7AiEA2fpYP/5ItivO0hjNb4Zza+DP1VO0RZepDy330GWyIuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237190},"type":"module","engines":{"node":">=18"},"gitHead":"38f66a4c1e5590c1e51a4b8746fd5cbeedc0de15","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.2.1_1784210813808_0.5067340182306626","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@flowapt/flowiq-cli","version":"0.2.4","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.2.4","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"f6f84d1c2457c607adccfb0102d21530b07a4250","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.2.4.tgz","fileCount":30,"integrity":"sha512-jFLLlzZMHVPqUbH+MpufR7r4RGo5pY6ctTAS+FYZOgeyksYxUOZyNfp7G2TEQLKcql9zPo5k88MtIbH1hnTQXw==","signatures":[{"sig":"MEUCIHrP3g084auV9Y8/+a1bGtGf39DEfuK/vxcwt6RiEdjkAiEA5WWwc4lEbfiRFT4ZJqtV8Rew/BKIT/fkSGbVKQABj6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249740},"type":"module","engines":{"node":">=18"},"gitHead":"8a4fd5f4e5888bc6a55484cd54af2b9c328ba735","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.2.4_1784213506138_0.8836536492047926","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@flowapt/flowiq-cli","version":"0.2.5","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.2.5","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"4379d097a9175f53cbdf70561dcb398f8278e9b1","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.2.5.tgz","fileCount":31,"integrity":"sha512-MVLOgofM+gQ179Rg2qO4ZwYQ1rOebW8u8FkW4L9Kn0xgcSEpiATvB6Q7eBoIEN0AwZLeyrlYpLd9Alu2l8aVyA==","signatures":[{"sig":"MEUCIQCRIxtn7yUB3bIsz1dTsrX+xmuYD8KAOGVnpEh9ngklzwIgARC2oRYMZpyms3KguU9akD/5nnrvZMiyVSvt5P5uBjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252732},"type":"module","engines":{"node":">=18"},"gitHead":"414f18e4adab8a8039e774a3782ff62eeaa8d436","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.2.5_1784220762712_0.0806347913819041","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@flowapt/flowiq-cli","version":"0.2.6","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.2.6","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"007575d64197d9e1ccfafda11a1ec8ac643c2d45","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.2.6.tgz","fileCount":31,"integrity":"sha512-dOq/+9e5WTfhBx5ePbq+gx1fGWbHJbgo6aT0cIP6MXHPxGk/vrTemg2OAij1einw0HweERw9GI13/ooZuFa6MA==","signatures":[{"sig":"MEQCIFaoC0NWD3NaP1XLJ6xR9wAiIbWmzls36GEy4fqnw6OHAiB6iBPZvQVud4WZgRUmLjkKBlThuR/FFAngTDxpt24Few==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256553},"type":"module","engines":{"node":">=18"},"gitHead":"c2e54befe1e203d14aca2adaf2f184b66dcab5d2","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.2.6_1784223433156_0.5458584303386271","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@flowapt/flowiq-cli","version":"0.2.7","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.2.7","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"c45d6093ad0112f719926453d20b12d24410ef92","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.2.7.tgz","fileCount":32,"integrity":"sha512-mLa1RC4tKQ84LKBtzumzIeQtD1zG7OI66zySWPflw4iApnsGSn5NlrXFJ4hSGdF5GNoVyn+lJ2HEctCJVVlC5A==","signatures":[{"sig":"MEYCIQDLJEcmaF0BGqRBBR7/6wUSkUkvUN0bSDCBYXNaL1eTuQIhAJ8RaGYpIFX6JpFTajXZgR5JxpONblF9hEoS5cxxJCPg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275356},"type":"module","engines":{"node":">=18"},"gitHead":"d8d83dacb8b81448a9136c9285b9623c3f2effd0","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.2.7_1784225598518_0.39320742243055107","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@flowapt/flowiq-cli","version":"0.2.8","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.2.8","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"b0edeaa90c8452d4e7303f04cccb56a581eb5578","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.2.8.tgz","fileCount":32,"integrity":"sha512-1sTIF3/sVtsBIORI595H8k3EW5d870PyRnVifnaUt7rKSj6ip/q5RBqXCtKYqUfHA3wMsgTELMz04VKvEngHnQ==","signatures":[{"sig":"MEUCIQD3/dk8N8+q/CaxTyiWXZW3EDNKoooMy5Kys9vdrd/6eQIgSp8BXKnzASovKqLlPMM5nc3/X0WYiDjDE53tvJjOyVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277309},"type":"module","engines":{"node":">=18"},"gitHead":"d968091aac2d62c04d5909f972e2352aa10796d0","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.2.8_1784226389539_0.588161938864926","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@flowapt/flowiq-cli","version":"0.2.9","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.2.9","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"c99f578443eb88aa24a2ab5360a0c709050e0c58","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.2.9.tgz","fileCount":32,"integrity":"sha512-lE3sN1okezye89X47V1R1QSOj0KgyIiiRUNaUYlqoatSPGPKFZ728Ntu4DgVJc3EC0pWAhVDetaq5t9Fbj1EBA==","signatures":[{"sig":"MEQCIC4REeA0fHTVLyz86Z1rOL1c5fKhFxZfbpXaw0mHVnS8AiAshGVjDxgqjet2g/tNP2UgV55Vzy+49BiEhmzpAUyCvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278970},"type":"module","engines":{"node":">=18"},"gitHead":"e6111a2f1f371fd65ea81e8cce221a956568f7be","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.2.9_1784228210984_0.7071743437457467","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@flowapt/flowiq-cli","version":"0.3.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"3b0f193db8b66022ddba65d60e8bd7d56f3662dc","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.0.tgz","fileCount":33,"integrity":"sha512-c7WkDALjPOJZ+sV9MWXiU3/PLoNz/cnc0iIY6PHzgiWJmS3XksAXOd2bhRlnDzmA9UzQnWg7rZ6wufFSZWtjFA==","signatures":[{"sig":"MEQCIGqT0m9jCyhgx5lBehBpWyOPuspUAdt8dM8Wtm+dYSGJAiAb9himrIIstpydPc+7TMko056SlSOER/HZxswPLtx8bQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284927},"type":"module","engines":{"node":">=18"},"gitHead":"c6815cd6ae78de9c7aa1c525fb08164427040490","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.0_1784228946794_0.6677233350803198","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@flowapt/flowiq-cli","version":"0.3.1","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.1","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"a37c894df9d082f77223b5912871244549d37ae7","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.1.tgz","fileCount":33,"integrity":"sha512-5UQtslX7GLJ1JccKWWpASBwoeSbQB6Zf/nDUxjZNA8pIc8MuLHk3eNvXpqANP5aISKooWmp1YPUqAjYDrh2GtQ==","signatures":[{"sig":"MEYCIQDwz6wvQquurywFNUBR4+IGGcKRyKVHs+CnTkkE2TD5gAIhAJFkNkLY0EthKDgLXUIJ3grE1MNM3qe/upBE7BrNXDB7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291007},"type":"module","engines":{"node":">=18"},"gitHead":"99068c012f2ae49a2aac8400ae595e64a54973d7","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.1_1784537134237_0.40108483524645777","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@flowapt/flowiq-cli","version":"0.3.2","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.2","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"ddb4793ba226cae3ac2d037e68a77aea79d2e0bb","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.2.tgz","fileCount":33,"integrity":"sha512-mGGBa3/XiICjtQ+4XbyiaqREVRaRySehYv+HXZ5SFd42H64VEkVsCjEjZRFreU0QJ229HCQPsGG6JAMV0sBbkw==","signatures":[{"sig":"MEYCIQCEcVqxqX052XrV8V7odAkcaSovWWOqfk/GF1pjRxGWiwIhAO0TGQJlHhotsD4RUBrgIQcVCjjcOjOAyNRHkJQetLst","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293455},"type":"module","engines":{"node":">=18"},"gitHead":"2c08856dfc0c29ee068d06e9725dd8107af16453","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.2_1784559755936_0.8472348684681146","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@flowapt/flowiq-cli","version":"0.3.3","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.3","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"a105969ddf6ae383b483e7c1e55672d032183085","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.3.tgz","fileCount":33,"integrity":"sha512-8L2E3wQpde5mjcOsiJ+daMIqHFoB4gHCGtMtGwjHe/bD4zKVydCiMBihTd6HbtldrEKyBaEdf3OZjU21RRuBng==","signatures":[{"sig":"MEUCIHZhsGEwFtzCAKg68W700lpBzJp3PpEYYHmeDkt9m1LCAiEA7ysKkRIVBCyp9ljeN5TNi3imGU5K+8KHDp76cJtT2c4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296669},"type":"module","engines":{"node":">=18"},"gitHead":"594b6898185f9e09907176456a5cdf935390ffd6","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.3_1784562399938_0.9257701546964427","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@flowapt/flowiq-cli","version":"0.3.4","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.4","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"284006c7a37bb6b7a11b6953bc8d986ed18a64c3","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.4.tgz","fileCount":33,"integrity":"sha512-TtAKUd018v/LdT5esCic16R4Mf3XzjS3jiLrVNYrScIwHK+pUpVxkh92ulP/T8olNPLTtOpze+vulW0aL4gyvQ==","signatures":[{"sig":"MEQCIHQPcbwVjXB4kF/QkBeAwuwyDuO6mapi7PELctjzof68AiB3WcRbhk21mJRTPF1dptrr4hbh7JQsTyZRxPe0lLxA2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301194},"type":"module","engines":{"node":">=18"},"gitHead":"982cd423f3dc387f7c8c4bf73c2cc5fed7d65910","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.4_1784564604569_0.06530803231226012","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@flowapt/flowiq-cli","version":"0.3.5","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.5","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"df01b9d6290224bd294fa91c791aaf0e7845705a","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.5.tgz","fileCount":33,"integrity":"sha512-WPTCWRrpdnl/3+Onyo9L2kMosFbGTz3lpJ7E58rkvV7to2xiFs9gPna9QKtpyWwNKe8hFj2mQgYnZQ8M3FRsvw==","signatures":[{"sig":"MEUCIALRY7AxeYjeYbqXPjwDdjGohIWvDCnPlnAcDkMANbtxAiEAtHVQSATdiCRGmtOq+FwhImV1Qxi2OAfWUZQML71zvTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303905},"type":"module","engines":{"node":">=18"},"gitHead":"108e3c9105cc48b2a2ee5b3e60b773fbd27bb7d2","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.5_1784565467882_0.30793863538510813","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@flowapt/flowiq-cli","version":"0.3.6","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.6","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"f46eecd2743e4f3d2ef8a4741dcd4fb2485c5077","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.6.tgz","fileCount":33,"integrity":"sha512-qrDkQu+Ti8RfJXrRTaWqkj/ZG6aeYIm+nFiUlL4v72kVilU4yd4Ua8lcsG4bJG5wR5h3g/vlQXwAwHco1SuHgw==","signatures":[{"sig":"MEUCICZnEDZuFfPA1x+Y8NMxy+zQ2GsgDMxHdB9PRbKQqqlqAiEAtaWWbYVM63OoN8ORc3A8OZZh2wOUHuEwJNn0eB2lF3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305078},"type":"module","engines":{"node":">=18"},"gitHead":"a6b248329f4b563e681a02ed2223ea4386c3998c","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.6_1784566009750_0.20414206294050086","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@flowapt/flowiq-cli","version":"0.3.7","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.7","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"554af8bf675c5246e413a2382170c68652021195","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.7.tgz","fileCount":33,"integrity":"sha512-On64b5na/6T8+cLLkxVcqJsmIgfXRQZdJBMUJTrwZLOljgsY7n3Fkl0GfMzXBcSpPsoEOw7zyBtabhD2yURBZA==","signatures":[{"sig":"MEQCIGEeI64A6TaSxV/i8NOYczhT2pFPMLoSd7ChkbGddw5JAiABwd8QQe1/zfFd4A7sq6aOYzYfgmfPh3YyHrYZLs+sSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310060},"type":"module","engines":{"node":">=18"},"gitHead":"ee8193467bbc1959ca3195d78e3dc2a9f3604d95","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.7_1784638040706_0.754131324093285","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@flowapt/flowiq-cli","version":"0.3.8","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.8","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"b6d51f624cb52cac58dc02710541a46a198db54f","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.8.tgz","fileCount":34,"integrity":"sha512-xC+4UGVW8hIMlajdR6SE8IBVjYB+74DKVEiBPVifKAKZ7tBk7YgB5TKk+A9qMWeUdZRwTSIFY2wA8JizMwlNFQ==","signatures":[{"sig":"MEUCIQDqQ7dVYbVrufgNOrKtcazHmkf39Mazo4m9iF2qvk9g/QIgX1ARWmEC0k/XrxxH/J0V4ou7HzXHeyf7znQO2ylZzgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333006},"type":"module","engines":{"node":">=18"},"gitHead":"411d2ad7d7d3a997e10818f6ac22d6293ad7d507","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.8_1785409519480_0.9536943628550074","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@flowapt/flowiq-cli","version":"0.3.9","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.3.9","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"c1721b38354de47fc7ba445f079990f9fc0b5ee3","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.3.9.tgz","fileCount":34,"integrity":"sha512-aVGXi4j06NK3C3mq2kV2kT+1YR7zeIiByVC7yO0ZyqBsHucshCgeMkoibq5QYf/F1upZ2LB6ldI3FzBFYNPcVw==","signatures":[{"sig":"MEQCIGDP8+ipIiqc7oSvsdKOaqCOAN2XAGElkQmY/gmqAoeBAiA00A6MuQGKlERZibDadV+ZegjAfXXwZmmDnLw8jTQrmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338019},"type":"module","engines":{"node":">=18"},"gitHead":"d30877d50434b04dae4bac5784ca97f1f93248ab","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.3.9_1785416113903_0.5369083070590399","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@flowapt/flowiq-cli","version":"0.4.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"244d1c8f184cbd016d69dfea3023c901da854a69","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.0.tgz","fileCount":34,"integrity":"sha512-xmHVawhk8e+hgZLlenIOcBamgBBlnVkI37gUxC1JHJP1LvnnqM1n2fbjdgKE684pxGjBsBadZeNSUGLnBcO0bw==","signatures":[{"sig":"MEQCIHYZBWI/AbalCO7ZC5772iUNo3XP+0mapUYZkSrsVRK9AiBGlVJzhYPxdBvYzZ05O0BC0YRGjW9lr12mZ3S396+H3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341151},"type":"module","engines":{"node":">=18"},"gitHead":"2b30824b5f795c029aea4ba681d0637acbb04446","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.0_1785759484911_0.4726884608630806","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@flowapt/flowiq-cli","version":"0.4.1","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.1","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"e266d09bb139186c95228ae7de9273fdf53aec8d","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.1.tgz","fileCount":34,"integrity":"sha512-lLVuYrBaf8Jj8Si4Ftkg+Z0RuOFOnExCbbkSxHyjZbrKMsjhh51o8jRrjBUezvwOKPS1iDSxfvURoY7l7EEjMA==","signatures":[{"sig":"MEUCIAKLmcZ+mct1qXZW1hkx52O2SycF/t6qWWDI6CKfJKrQAiEAvE45dGJJuqJZwc5JEw5AJ9Fv3d+0J/7d1Qtlt6E6MS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346790},"type":"module","engines":{"node":">=18"},"gitHead":"58403af2393603ff98d4994da32303a381dc1546","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.1_1785769049293_0.9443523111904537","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@flowapt/flowiq-cli","version":"0.4.2","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.2","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"09950936c0315131ea6635f65f9499c60d207ccd","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.2.tgz","fileCount":34,"integrity":"sha512-NVu/W3WxQOXoA+nCJAVM5G/st90W3KuPo3H4tvmIPmZQNdlBV05NHOECKvWk5LdOD3LvhbA1QVcmgdVnySbnRQ==","signatures":[{"sig":"MEUCIB+Q3y7OR5qRKi7tMoOPFzjlwfvK04qCgoht/3uaCGAvAiEAsNpUto8qis+LHX5bN2G52GyLzdJu5x64Evs5Vu4AO0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348493},"type":"module","engines":{"node":">=18"},"gitHead":"06591271af026ad1c920792d259ce548b59ea0d1","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.2_1785771276964_0.6521049423032277","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@flowapt/flowiq-cli","version":"0.4.3","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.3","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"2a174a00859c7ba4c0ddf05609321204c3d6ab7d","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.3.tgz","fileCount":34,"integrity":"sha512-jCAnVLhTCyHx3d2fl0/XFzEwRvwCCrQ2H0le7pvAG0cnIMJLSnEjm/X8pSoGABZfCw3d28Tv8RI1IRKG50rc6g==","signatures":[{"sig":"MEUCIQChZ487jJBzt9tsSQC6jK373DevaiW3amN8GBg43/zTWAIgJb47kkYaqChcSuzd/U1zYx65lGQrmJexhE4sLpPqy98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349214},"type":"module","engines":{"node":">=18"},"gitHead":"ee0cbaa30ef53666af0d480c8d923a9108a95607","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.3_1785773216367_0.9799517037179044","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@flowapt/flowiq-cli","version":"0.4.4","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.4","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"807b3ae375aa1a6ad59684f681ea785624747150","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.4.tgz","fileCount":35,"integrity":"sha512-ZTU6MFNochZsY/fg7B4RdNmFC81CcEnOeUHOI1CejqlKvvvaQtGzk6TLsuoj9C57199evHaGIbn8yd5uBUvOZA==","signatures":[{"sig":"MEYCIQCJxFDkk/zX5y4EaU3JNiwpO3MLiWc0Cnytp2+h+erShQIhAMb3Nk5r8mWnHK7vqG0tVzmsx3a7m98b9Xe7g1QJ52RL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379179},"type":"module","engines":{"node":">=18"},"gitHead":"d506dfd3cf830722493ac94223fafd62b1a31ddf","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.4_1785860754397_0.7152133838690276","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@flowapt/flowiq-cli","version":"0.4.5","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.5","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"f87d3a685010160da1ef233eb8da7dda300b1428","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.5.tgz","fileCount":35,"integrity":"sha512-RSDX9g/ctYjwhOx/xkeAvPh6GhXDnreqkeinr394icuAgz9Fn/2pwyzwDIhhTcU3PvSFhA2EL17gmGMHJJTkEQ==","signatures":[{"sig":"MEUCIQCdxCYGWPJ7nLwEXU+XD2TuPTJhusIiZX2gen0k0b976QIgYzZwIqMjmRVIqoL2Ox0ZV1REkW1Y+V4+DmY7zZGDzEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394174},"type":"module","engines":{"node":">=18"},"gitHead":"bbc93036becb93d35bbcdc92240ce262ef175a74","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.5_1785863658769_0.957538444727702","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@flowapt/flowiq-cli","version":"0.4.6","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.6","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"7f93d7a8b0e242b9bdda04f94030b57a009b6579","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.6.tgz","fileCount":35,"integrity":"sha512-yxdXvtMrbABR0/7c5ltBB37J96rL6vKOxw69XfHdZ3IaMc2h0MphEbvnyNlIHfV7al1JlaTiAfNSW89+J8b+Kw==","signatures":[{"sig":"MEUCIQCCAzKOIHUxWI1j5JXfkPaFhGRm+uwg0qlm4l+lnfE1jwIgbAwwhEsrZKgUE0fXKZLQBFgNGPzLhsM/ILPDooHcOX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":402673},"type":"module","engines":{"node":">=18"},"gitHead":"cf1609901ffbba530123c0855f32a60d40174f4f","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.6_1786052246848_0.39906815225242287","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@flowapt/flowiq-cli","version":"0.4.7","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.7","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"e86149707ef986447c441dfd6ed98cb7bc2d55d9","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.7.tgz","fileCount":35,"integrity":"sha512-BAA/0JPgJtUUvVODGKNcYNhSMe5UMC/aBz79NZhui6FutCujsE6TyMFoVBvUv/TgKvNrYC/dQH4I5fTHr1nTLQ==","signatures":[{"sig":"MEYCIQCoHhEm3nyYPphXJxsG/ubPkW3JlXdy1kBeELVwlG7j6gIhAPoCQZM8eMcHnuKL8oUu4wV0ZKfMwjAcrB4PgOjcDIf1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":403387},"type":"module","engines":{"node":">=18"},"gitHead":"cf1609901ffbba530123c0855f32a60d40174f4f","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.7_1786439872481_0.35831137412398695","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@flowapt/flowiq-cli","version":"0.4.8","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.8","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"dc93288f44524e427eb02445ad91a600707b5497","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.8.tgz","fileCount":36,"integrity":"sha512-b4O3ec9GmKLqoWkSPgIyeW/Wr7p5VfiKJJNTKd+cm0JtIodXenV9GGALKrlQWDVSdyadbeFCRJFnesbUC9v9FQ==","signatures":[{"sig":"MEQCIAIuB0/XiLC09Ly3u57yqtCayeqay26SPupU3/2iTtUUAiAufLbBAqp5FWBMqXLQe7BxdO5es36CNqdTNYYJQr3aGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":415487},"type":"module","engines":{"node":">=18"},"gitHead":"e2d0cc47a611eb55ff55ff4cac0a6707c2d7b017","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.8_1786627283745_0.9015544962585849","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"@flowapt/flowiq-cli","version":"0.4.9","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.4.9","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"e0ce6c231943d4db46f3f0540d0f1c93a511b181","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.4.9.tgz","fileCount":36,"integrity":"sha512-9Inw6I2KN4tWZn9wJgTeR814sItwHmXpD/O347bEZlNkhT5PlQPT6W5uedBGUnpR7+yRShY8HmLEBp7SysrsaQ==","signatures":[{"sig":"MEYCIQCLzST5quqLCXCHoj98nS3cD0nca6It5aX+kYb76cGZhAIhAKqYPV16Y+BI6mg5dYGXVG66Gr7kAuqYW0Q9nMLAQ5Cg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":428455},"type":"module","engines":{"node":">=18"},"gitHead":"e2d0cc47a611eb55ff55ff4cac0a6707c2d7b017","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.4.9_1787060749295_0.455816160610532","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@flowapt/flowiq-cli","version":"0.6.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.6.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"0fa4db0f4c21b56217ce014072cca967896174d7","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.6.0.tgz","fileCount":37,"integrity":"sha512-/QHSwG//GfK9+Yk0lHqi4biqwXFdzmd+AoC5UUjKSwXuVz5Z6oAKvxKgbWNNXFSVjLDADV0PrCpVXPDG0doLPw==","signatures":[{"sig":"MEQCIAkXk6EMNx7NKGUnoVHB/NEhcpF1GcX835B5ryTvC3HgAiBI8rflTM8egv+0RJjXDQXR1b0ifwM97jSzNtZEZUBARA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCdTx6vT4aqhs3JjMX+PK9cOQz6VtCIHZW+lAxojrG4gQIgSTU0nfWWoac3eHMrQfafWKrcR9wIzqY1lLJuYiRnLJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":452767},"type":"module","engines":{"node":">=18"},"gitHead":"bddc2a71391cd6bd9d1e0d74e6e585a6aa8b4ff2","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.6.0_1787313007195_0.4230834410525508","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@flowapt/flowiq-cli","version":"0.6.1","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.6.1","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"a0560aae53f36eca81898f7db9b1916e7a05e9d3","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.6.1.tgz","fileCount":37,"integrity":"sha512-+zIaLouokWvcBWJeM5/8SrgydCkOzZdMSiHrNIsaidxSKfFyochPy0hnmLbuG7X6i/R1AL7zSAtpro+HvGxd/Q==","signatures":[{"sig":"MEYCIQCGGGFE9hliym2xXpKoBnGOhw6MnArZ1NiM04NlA+9dVAIhALpxy4jQPWGef/Pf6TaHPShDqkRCyo2IIK3uArtA5bBJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCPtc/fjvyoAYl4skVAX/sgJ9gCSx3pOH+Ei5zbBw1/ywIgARLAZ8dPiPkIwlR240x1iCqEBMZ0U5AYShkosIdXo10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":458620},"type":"module","engines":{"node":">=18"},"gitHead":"bddc2a71391cd6bd9d1e0d74e6e585a6aa8b4ff2","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.6.1_1787325045381_0.6296448506771004","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@flowapt/flowiq-cli","version":"0.6.2","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.6.2","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"adad56c3c1eee0a8988291368df561ad4efb3ef8","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.6.2.tgz","fileCount":37,"integrity":"sha512-DeOeaX3EGdT7psPktD2l+irmX3iz/531de6Tl9aE0CVQs0entRfBKY5bGexC4ujQpDEyzFUacznKOa7H4mAPAw==","signatures":[{"sig":"MEUCICK7fydk2GycKedeqAVvQ+0fhvp5Pezn1SJwIBa6ndY6AiEAkPNXzRZ2xDUtzwpUsTCG3ELohpQqiJwt2j8x6VO7sxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDzf5GOydTkdmdewkyGokg3gKBUiO2REN9b4cs8WMlQJAiBWyOyHsFHLhlvb9YeNAI/6vKbsLyCdQUfMvP0RGMtxGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":459235},"type":"module","engines":{"node":">=18"},"gitHead":"42e437229a941155b5db6cfb409ecf604015be18","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.6.2_1787923486072_0.9737931704587448","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@flowapt/flowiq-cli","version":"0.6.3","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.6.3","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"3db5490f1cba8fc9f231a579c9de297d8e7b7e9b","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.6.3.tgz","fileCount":37,"integrity":"sha512-TQCNgyXVX2NRvyJk+rpC+aO0n2zWUtHvRxzrC6KuXGxnNG8aqSEje74PVrp3PVT6pFI+hU+fBaah/ZqWHXHnlw==","signatures":[{"sig":"MEUCIGc4rZ8Q+EFLsf56R9/qBdFXhwKGwFqCU/sF3iis6nU+AiEA0AMYbFLsXoF640AWH+wV46HCfMZkJwEAyexJNdrINn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICAumuFWWf1ZTQWFWLFPhNFb+sIVc40wXn+ua7L8PmFPAiEAlV0FyXyD+kJF/sR+hfAKc7jSlFJMgLzG7tonYcIfBG4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":460165},"type":"module","engines":{"node":">=18"},"gitHead":"42e437229a941155b5db6cfb409ecf604015be18","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.6.3_1787960610951_0.22136548517395527","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@flowapt/flowiq-cli","version":"0.6.5","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.6.5","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"0573f3f3b36c492437f9b19eb78bf96406bf6e41","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.6.5.tgz","fileCount":38,"integrity":"sha512-pgjtt7ixicA6OFYryjfGg2pVW0nW+fV9U2zdX8Ggm76pT9Pi6/VjZg/BoP2RzRbL7BwMJjefhJS7xVAKpo8wUg==","signatures":[{"sig":"MEUCICXxroZr4ZdEJ6pFZBopN443u1p0U8l7QnSgxsD+5WalAiEA6a2RKZ7Uq1cqQ+HFtAS3j/Zdtnl3agDkj9Uzw7JndRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD9htul/ffP/RzBjJt22rDVeuIBZCmahvA2suP0W55FjQIgS8Z0clZ8N2CBu9mrPXM9tSEA47UjKpXjqTvNNoTNq0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":479942},"type":"module","engines":{"node":">=18"},"gitHead":"f200d04ca18e25a0ef7682e8358b14d36ce6ed1e","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.6.5_1788821507162_0.5462155264870583","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@flowapt/flowiq-cli","version":"0.6.6","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.6.6","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"dfd3e8c1ccbb1446974c962d39056b783e871da0","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.6.6.tgz","fileCount":38,"integrity":"sha512-m0c/55hg3eY2m/JlDeb2PwaOC09SwSh+LBuMmz4AurbUpMnAzghIehAArWbkceSJOn648h0i67SsjGVG0O23bQ==","signatures":[{"sig":"MEYCIQCRNlxbXQa0wPBi2PMItu71nYrWwtwIg6Xtg0Rlj/yJIgIhAMN2pD9acYcUwLZ9iSaFrt8XpnnE4l4ckoRTEI85uPKB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCbhhQnXhsAwEA9JV3S6b408kxapQhcIcMqB8sM6JHzKgIgYkBWw8zEDUqGQin7uut/8VOMjhevY2ERMu0lfFGD4/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":482093},"type":"module","engines":{"node":">=18"},"gitHead":"f200d04ca18e25a0ef7682e8358b14d36ce6ed1e","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.6.6_1788823524690_0.802980709616729","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"@flowapt/flowiq-cli","version":"0.6.7","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.6.7","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"f161ad52d04664807ea18671804dbf895e464456","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.6.7.tgz","fileCount":38,"integrity":"sha512-rtS6+k5eIz50frBJVH22UBnldYU0f6foDUVe1e6nKEiJpYom7VhDfF3wZpYbhu71Hz1o5slzeaq3kgw+VWIRhw==","signatures":[{"sig":"MEUCIQCk7zFaA6f/oR4gQMvv3q4v+xsATma4IgKr9MZcFs+5kwIgMw94DSX8pLdWtQv7JnB03OQ4LL89IxxJ+eTntKABoY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC1FKnTk1K9NtOhLmxKawGXt+AuGG9+MSGRMb7HZewWvgIhAOHjKFSpMXyDa0jKTQsWWqRD3qBnPNT8UFLIiey1zKAN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483628},"type":"module","engines":{"node":">=18"},"gitHead":"f200d04ca18e25a0ef7682e8358b14d36ce6ed1e","scripts":{"start":"node bin/flowiq.js"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.6.7_1788951668624_0.9658030377717937","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"@flowapt/flowiq-cli","version":"0.6.8","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.6.8","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"7249f59f4bad270addd928326143273ee80e2200","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.6.8.tgz","fileCount":40,"integrity":"sha512-sXEoWz355ttXQneK66BqsFOEg3gj9R/WzgBBDicX3xriYITNsei8u1JpKATKdm3AOSsUoTSC7NCDu8UlHc0RPQ==","signatures":[{"sig":"MEUCICMxcxWaGE/kIw4zhbA6DkrW+7iBnUf0CB4NXXJnluhSAiEAoH7o8viEcM+V4Jt7Mih6t56Z/TzoOR5LulWDsgSLNWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGswt4KfsZsfHNBDPE4Fm4uXnlbuIsCG586hnSYCRA6bAiBG8aLUR0N5d68DcjBCeq/6oGZVr9sJe36QwiKgLBJ3bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513427},"type":"module","engines":{"node":">=18"},"gitHead":"f200d04ca18e25a0ef7682e8358b14d36ce6ed1e","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.6.8_1788952278254_0.5247701835072982","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@flowapt/flowiq-cli","version":"0.7.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.7.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"c4fdc10b58b634fcfb10f5ab2ca46353f254055f","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.7.0.tgz","fileCount":47,"integrity":"sha512-OCTcwy6u0VUW9HNiK0hHKC+Z/P9kQOPO952g99zqiH5xKHjg0kdiIAu1MOLHqOyfEHAZ6U3Ik3uOiZnA7JiMPA==","signatures":[{"sig":"MEYCIQCpjeq4ooytWTsU8HbpgdomwqPRmsfXApH/FXEoUpZseQIhAPXTkiHrQ/YcyHfta47haBPzaKQZ5c14B6iYIdNNCHXg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFD1wfe5qU0ZIxrs9vL1KzKZwKQWIItwWCyBa+IvwBMmAiEAhiptW5zLq2RtMUY6+k068iYvfzWIiIc0deUp8sa3D9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570051},"type":"module","engines":{"node":">=18"},"gitHead":"f200d04ca18e25a0ef7682e8358b14d36ce6ed1e","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.7.0_1789050683634_0.5296815754503472","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@flowapt/flowiq-cli","version":"0.7.1","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.7.1","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"44c31efa59e6d3febc701978495adefd1001ecac","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.7.1.tgz","fileCount":48,"integrity":"sha512-xIdaP8BKDki5Eo56tQJJUMQPHg1WAXbkg9qYquGMg/drAiRCX30cCPUnUHIx3uLeuq79S2/AL0LCWtkIivyWmA==","signatures":[{"sig":"MEYCIQDymM10avgElLVs/zlY6DkCZjAqyct5mNAj35CnCJm2kgIhAIlkp8PLDw7xJxV7c1xyZ6sYCHDXFFyJzzV98a8OrlK9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCuumFkqV6q//h/JqKr8MZvaI2NI09Jt2JRakWkG3cXeAIgHZgTt7xpv9nyWxDcIC5VW7qgOs00ONju8SHkOR2FiWA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":586141},"type":"module","engines":{"node":">=18"},"gitHead":"f200d04ca18e25a0ef7682e8358b14d36ce6ed1e","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.7.1_1789071945913_0.48084993972287604","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@flowapt/flowiq-cli","version":"0.7.2","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.7.2","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"63c2fc21b636bc2905341e0ee0dea6262c894688","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.7.2.tgz","fileCount":48,"integrity":"sha512-8YfTWK7/RHz/YlXNRj12KIAW6eyQFm1ANKjNC/EanSaXWWtl8OnnuFoQwApgr0JUo8zXLexAA8LXQIuAK6k7JQ==","signatures":[{"sig":"MEYCIQDgX4aDbDkHfvZCpXlE4tEIK86p2TJLZydasMvvVqv4ZgIhAIwXYkQy9yBdSlb4RzpJz7IAE3mzbmI5753/7RfoZjt7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQClJONye8XHsvq3VJrXcQkADw20shReafzsiRcS5QXL7AIhAKrjmk7LKlo3NHqVlovWmWfYaIiAQkWPjBwgKRnO2F7F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":587773},"type":"module","engines":{"node":">=18"},"gitHead":"f571a9e2dff62c2293517c8db674db28ea8eeb0f","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.7.2_1789399410913_0.3879261270951524","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@flowapt/flowiq-cli","version":"0.7.3","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.7.3","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"8834145e09d7df18f1ce5c5d0852431454ae58c5","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.7.3.tgz","fileCount":49,"integrity":"sha512-1j6DdX8Tzozr4tGiXvs8AnMCNfd9IpTZihsL83sjLFPGYCOeFHBXhtVh6iwUtGsfaniTktHs7db+ik5ZU10ykw==","signatures":[{"sig":"MEUCIAmEJYO6HSVSkqe6S8X73HZvRArF3Vf8uj43RegJMfgCAiEApZ0Hul0S1kL4IAvBd9VUyNR7uhGfnGreHjC7TaPgD04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDWpAfm/PcfBiB+0/DJfkB3NRwRAHbcOv8K3jNA0aIqxAiAtjZWNS6MA9yxSS360U7EISa2TIDGFoVhnXP+qklPlYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":603203},"type":"module","engines":{"node":">=18"},"gitHead":"fa18c67c1f78d302a3c339ab384a9a0897896f7e","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.7.3_1789482573522_0.46787102507849565","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@flowapt/flowiq-cli","version":"0.7.4","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.7.4","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"8a7bf993af5b0cd5ec09a14ea5c32491694d1196","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.7.4.tgz","fileCount":50,"integrity":"sha512-4lmOszaZSsj3tCdAEvMF803L7tqjUiTTNiof7ZZrnSOFeblgEyoETJYaCAgxdqyiM/5oWujVPwitR9Ggh9PJbA==","signatures":[{"sig":"MEUCIAdQ2JtUOHdBVgJ+YLnu7LDhGEphSTHHGxUig8gqP2ubAiEAjjrbnOo6O15QouCtE+hZW52IuMmBZCERrC+1g8WKMis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDiv3EbS8+q4jOSkWtpfehfzDzJtLWAzyHfrEQFAPb2sQIgDv6VFPHRKAjgRb9zaJTDw5GPFvBefRAyH0jyqfCemt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621145},"type":"module","engines":{"node":">=18"},"gitHead":"b4da57c037ee0e33f777519fea218aec1eb0da9d","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.7.4_1789637962685_0.519711993267002","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"@flowapt/flowiq-cli","version":"0.7.5","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.7.5","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"26986f3cfb2bbe230860f5ddd4a9870c90aaa303","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.7.5.tgz","fileCount":51,"integrity":"sha512-wnDIj5CZaTlTMXjYOTZMQoT5Yk3Xshur9nMLXUWjkAGwXz34RaIpXNCpbV8XSOcGzPAaughK4KghYh4Zmzo+Eg==","signatures":[{"sig":"MEQCIDzVWEmftacYEOJ5/HjoS8j2wGi1ct5GVa0cPieCrDm5AiARhjkPRElN12NTCzh/loQsNN3yr7GNPM36lPgNM6UxOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFrISOFEQUwWZbsye1ElN9d9mgmCdBCRfCA1XNmKBl0mAiEA+rUJ7nAXbTMWQ+AhjHExEfCFTaG8kyaGODmbrZAxTLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":628652},"type":"module","engines":{"node":">=18"},"gitHead":"d0b648ad16af8ea7f4d11e608f40a00d2c3ea765","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.7.5_1789656399308_0.8685260017600411","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@flowapt/flowiq-cli","version":"0.8.1","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.8.1","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"54b0ff0bedae46521f9fbcc6b38590b8f9d37149","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.8.1.tgz","fileCount":52,"integrity":"sha512-gNwz9PYi7x8MPpvXDKyOjweI7I3F1wpu+vdVzyl/mg92bhGWwEvkjBWaXigawQ5o+kOL4JsjxFDWoK5x63XF+A==","signatures":[{"sig":"MEUCIDFV98MSk04qBn9++JXKM/TCetWHW5anB0M1egevr1RiAiEA1OLBznIs1hhgvp8BEoNX/vL0kfS6UDLvEHB2QMim+Rc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD89SYvd7MfE49rRWC33Xe4H8WhgZFdXTqlvmxvSv+8hAIgYftECBqNbH/t+zQEsEzG6F3VQsMjUYuShCIQIoTSld8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":647254},"type":"module","engines":{"node":">=18"},"gitHead":"44ce1653cf849fb9d35b01484c20246c92579f74","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.8.1_1790021993810_0.7662839443330194","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@flowapt/flowiq-cli","version":"0.9.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"4ab21783561cbbfa7af48f54c2455b53bc74b237","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.0.tgz","fileCount":53,"integrity":"sha512-M5OoQJCxLSqAninauHCThGDBtyn8vPk2pNcjz5M8pG+UiON0th4C4tv27dHHCRTio+SXBWJkLmMH8YCLclEoug==","signatures":[{"sig":"MEQCICuOoYiaNgbF05WscPO1U8jFVIYWSderr2cw+rEbNssgAiA7rQubBR+y/PXd1F26NmKivwn4r3QapLkAFl+dhpiXkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHBVR1O6bpjzQafGwbxP2CUJQX2N+N82r1xU3O4oWCkSAiBXKGzUnBLD5SxuSTmTvBVUhudj/2IFvr4oZe5o+4g3qA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":675562},"type":"module","engines":{"node":">=18"},"gitHead":"26af979e1e57daeb7628aa3304c66b6aec5693c1","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.0_1790033931378_0.8938116613715232","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@flowapt/flowiq-cli","version":"0.9.2","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.2","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"60c6cf20bff7fc3494b89256a8b9c08f7d2a7d78","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.2.tgz","fileCount":53,"integrity":"sha512-uJuPjkbMH6eIWZGXN/7esvY2RNOjvWYG4xsctTu1GmujwCEaWk8x+hEHXlG3sKkycXQ7nt0arEs8E7hlTPNLqQ==","signatures":[{"sig":"MEUCIQDlNmThcsR1njWj1AbJ23wK1tIFQfsWNp7s/I7DQEkHogIgMBipe+refuBHuVp1+rLZrSvupfnQ3zadtw/9SZL4c7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICcnkdKyq0Xv65KPi5DbHj4B+GK9liFlzhQFkDzbXmZDAiEAmcbKJEWi5Z5G52pS5D4Rd6/sxNl59/1Ogi/XfOB+SIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":695468},"type":"module","engines":{"node":">=18"},"gitHead":"bca8c4b95f74762cce9d3cbca4a0ebfb3a102dea","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.2_1790115037289_0.8997222076819424","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@flowapt/flowiq-cli","version":"0.9.3","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.3","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"d8f544bcd4cd3370ce45058c957b6dd709c6c22f","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.3.tgz","fileCount":53,"integrity":"sha512-NRHBRItbJ2dRNYTEmYPAowhG3QrovRNJW7nJJi9D3hda5rEYmCwI6RWqX5Qj2fQLZWnx9uJvMhvE1gHhWg3uxg==","signatures":[{"sig":"MEUCIQDk/OvefFY1XOUJKAEDofLEMSiYrWTL9IMRCzCE1B+7PgIgOAfvVov5vQthU0PHcIDagYX/i8WGkSR9KGcvc80HS4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCkHgWomur0iKoJJwhFVeEkBLqIhJMA1KXM28o0rw7wzgIhANY+8vFrBWtpCq7E7tSeSZPA3d4dvlZTj89uBrkjH4g1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":705506},"type":"module","engines":{"node":">=18"},"gitHead":"fb3e2f9de8c0959f0c88a66604c0fe3b0b7c5a38","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.3_1790121826077_0.21130713156280567","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@flowapt/flowiq-cli","version":"0.9.4","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.4","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"e2e62526b98304e01f8dcef4f56c632c974a712a","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.4.tgz","fileCount":53,"integrity":"sha512-uo3ltEMW3eUEgrLuyWkAHTTSPFz8ofcnHeiQ8gmigyUVRyO2kq2puBY0yAoj8A3jLb+7qB28qfVonqw5DrUiEQ==","signatures":[{"sig":"MEUCIDlqewTx8QVVj5UovUJWm29n5KkXwHfM2GVGgHXphBbVAiEA7sEMYpETsGXXTH0L2LVXijI060kZ+51OE8Y1MiI6KwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC4HSbXSIxtfimVs2+fb2pHBV+BnkbnXe/MT1BLQXwsWgIgTs3Z8BclUFtni8alrPXoJzapIDDN4EcdQxXkFHdgsS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":707298},"type":"module","engines":{"node":">=18"},"gitHead":"e87948a315b54705c52f8fa877c22debde0efa0f","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.4_1790160120451_0.8120026039313586","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"@flowapt/flowiq-cli","version":"0.9.5","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.5","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"65a615cf38f73fd8d75d2ebadd9c41f48fc661f4","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.5.tgz","fileCount":53,"integrity":"sha512-5Pbc59tddxMLr/RWHHsLOGsyHx91oa7kGVRF/7H6/9tOtuVXAOzmhvvrr3633LmmDjSUN3a0ek/0VGucJe/o7g==","signatures":[{"sig":"MEYCIQDFtKyK/LxeTWj7LaVzlK+QhqW6xcNdhadpfB5APcy8xwIhAKX9jsWVdGp8K5BhnuJ6lfrjwbTBL4REK4dbPWLjEkOE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIACP5P7b7kTCtTrSnMi07R4L6WPDIQ9GHm3p2oIqZk91AiA9df2hu6kp/lsnsZzf/NDRoINvS8oQZZWQdSrf7J8Xcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":707529},"type":"module","engines":{"node":">=18"},"gitHead":"b36ab210d57203dcf48a19520ae9007978a9038d","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.5_1790161751879_0.447633328886488","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"@flowapt/flowiq-cli","version":"0.9.6","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.6","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"39b22fba2920a1fa532a6817fe2502cce9f401fa","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.6.tgz","fileCount":53,"integrity":"sha512-BVtnL93Um5TmddwybnUD1EfwG1/Dnz/l4XzGloV1ZxV51bBvv0aoWlUDbxqAI5FWuOr1y3Y87ieyGj7Wyd/M7Q==","signatures":[{"sig":"MEYCIQCFAcdJgYbho8VIJzTACYJeNrSB6l25+CzaXFmq4DxWBgIhAN5qtMf7T5Z1D//+iMiAyRfTUSv3nmN7FL+w52DiYLeP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICkM1YKGmoBqb2v26HARiFhHWnjed7uPQzRvIQoxfCIBAiEAwXgRyMtXGcY6CyacSwG/kEkr49R1bnRbzpeRiWZIBik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":709084},"type":"module","engines":{"node":">=18"},"gitHead":"84bbe51813300d50c93835c6220050add88a2920","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.6_1790177980544_0.8830664518135731","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"@flowapt/flowiq-cli","version":"0.9.7","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.7","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"dd0f686f17a55dcc2898ec79f677600edfe69ef1","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.7.tgz","fileCount":55,"integrity":"sha512-TklNLs1PFJGPTTKHe1K5Ki5MRKnvaxqXj2nSJ0PURHjBLaq9j1HkibrLWpHkStF1RL2y/smci2qJDrClujwPSQ==","signatures":[{"sig":"MEUCIEv95jOq5AVqbdV/dmS4Y/qZ1y4gDb9UR4DRjmMg2vulAiEA4qpNUf9bMB7XdLM9dzAyz1974n9RBEwi7q9bqeM+9qw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDgRg4iqMrnBRMA2ONrHuiBC625rLbr/bIvOgY6x6FpOgIgfD56CZz9804YgG/6731vMVOxZg/Rofjl3FTRaDzN9fI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":737790},"type":"module","engines":{"node":">=18"},"gitHead":"40d375971ed7746a971edb1b3f481b6d082c4721","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.7_1790799995568_0.738212654001771","host":"s3://npm-registry-packages-npm-production"}},"0.9.8":{"name":"@flowapt/flowiq-cli","version":"0.9.8","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.8","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"8daf0c49d94624e6322fe81062df7a0efb69ec46","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.8.tgz","fileCount":57,"integrity":"sha512-pftsHLzgEQq/KPse1g1QIN+VMfT2I2uN6BSNj+N3Img1tC4IFU/L1vK4u+1zVq9BRdWyPqNzjQ+OljAIekA58A==","signatures":[{"sig":"MEQCIHnYViUnO1imxb21eal3uvAL1Acp41Im6Jp8Zns32Qq5AiBbEnK//kE+9fFA37VAlIO13czmTlov9sZ4IhfI/RBstQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCjNhp8OjBJJMQDWxRMwh75Avt0jyOdk734JDzqH3T/1AIgBqhV2jncoQBtgnldmS6tcKfVmzeqHzDafe0tdx9Qpvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":774798},"type":"module","engines":{"node":">=18"},"gitHead":"c1671208994ba5c2bc6449ea30feeba8bb37b89c","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.8_1790808240465_0.15114296418342366","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"@flowapt/flowiq-cli","version":"0.9.9","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.9.9","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"31155ee3281b6ecb47b92cd875eaa3d057cb9934","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.9.9.tgz","fileCount":57,"integrity":"sha512-KsnJelf1oZI8xiNFVBgGedmSHbDEtbKrdOQbBlIvhmjS9JBF8OUvYJlVGbTlyfYrGqvDGRsWeqXPAPlGWHREBA==","signatures":[{"sig":"MEUCIAXZfZsSuyDoYHerjU7s+wBFyjMhiNeA+VxjFh9Ftzk3AiEA0CLq7D4AwmS/7i2oZRMA06d5Yf9PE4ZUscbtKLJ5xQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDznGlxeBk8TEdLVqwCuIxWxhUl2CpGKlhSfJ5XrE2/jQIgWMUuNz6GnMtQJ5lNxlohXTJdc87YO968SOeD01/EMrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":774971},"type":"module","engines":{"node":">=18"},"gitHead":"df4cd2e7484488074a88217a3a6950296a70b6c8","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.9.9_1790808496181_0.11573671378007999","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@flowapt/flowiq-cli","version":"0.10.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.10.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"39b00ca74a347068c79bc5671bba78f453e3394b","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.10.0.tgz","fileCount":63,"integrity":"sha512-0oC+aHK31I3quQ6INZfwmRC9/G67/Q9ntPge/BffKATywPX38BSouFC078+yidIQBplJjR0w49IoNTktN5zIkQ==","signatures":[{"sig":"MEUCIHfz2+8MhS2lYc5Zlz7QOTInX144Ri7ZINAHG2Or2uXuAiEAzIdWXD9Hoiu3eztRpcCBknBC6AkfPNTaWfJgK0zcNrQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDcOlJ+dpIv2D5pKW4WSHL2SW1vTDMgU5RmqZFOIcWt3wIgNYrjoWJzQHxj8ae2pL2zdbaNW/wQLzCiBq5FgP3oqFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":855302},"type":"module","engines":{"node":">=18"},"gitHead":"bad2dc536c63768bad13f4b23b81d7355fa78d2b","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.10.0_1790812071039_0.6109250312579839","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@flowapt/flowiq-cli","version":"0.11.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.11.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"38e0d78e6e60733d140fafa700907084a12f9c3e","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.11.0.tgz","fileCount":67,"integrity":"sha512-t5PoEMkz2KVtLfY8rk7aLS/Hu1StkCydW54cVs/HMlF3obgCmUfa1YYCSLTbc5rsWRy3Py69KiKzGGnEjZ5l3Q==","signatures":[{"sig":"MEUCICeAnL/i22jLJ1UOCAuJwtgAoCjOGuo2GlT10dpfsHSNAiEAxDgyOVYH9mtlI68T4cxiD4P3BKJtobY84UrSTC/AxSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCURp1QVyViEn0yv2WvlANZZ8oAMTCcSnt4XVvw5SxUtgIhAJDIP4THnXPArD4TRFWFNeH2vTy0VXcJFWjy7YA+qpmQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":922651},"type":"module","engines":{"node":">=18"},"gitHead":"44e803e360e9fd2be61b0a960d6675b56c7ce163","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.11.0_1790871265294_0.36994426090114807","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@flowapt/flowiq-cli","version":"0.12.0","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"license":"UNLICENSED","_id":"@flowapt/flowiq-cli@0.12.0","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"bin":{"flowiq":"bin/flowiq.js"},"dist":{"shasum":"d0abb043aad78c10815573c6c330210fb545bdb3","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.12.0.tgz","fileCount":68,"integrity":"sha512-PG5Qidd6fxDzScscCo5+HeQ1YuTe0fJdRxMGDezvnHsL1ECJYKfkns5YqX9dYrIGBoWX8C8ULVnHO7LE5983lA==","signatures":[{"sig":"MEUCIBoJ2Bkee76gfboDzcakaBk2ExSPHx5rxa4oQYKTnolOAiEAga9/U8LcUx/9kd4whKq+KrERp8xj1bpIeB3D0CkJunU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDfkRhqtygbUx6jDsOlmKkHQdxlf+lo9lIh72gfzYrVHAIhAIzh6AY0Ek7xDuPJd7PVTMaqLtl3QdZXpdiebXRxejh0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":955828},"type":"module","engines":{"node":">=18"},"gitHead":"2fdf4e18b96374cf328d44cba4f31fe1aa8124c5","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/flowiq-cli_0.12.0_1790939040239_0.9733876891903106","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"_id":"@flowapt/flowiq-cli@0.12.1","bin":{"flowiq":"bin/flowiq.js"},"bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"dist":{"shasum":"c66373a377df25b65de2db7d9c4c7c305a7463ad","tarball":"https://registry.npmjs.org/@flowapt/flowiq-cli/-/flowiq-cli-0.12.1.tgz","fileCount":69,"integrity":"sha512-+iKRrYrpzm2aQzH/+JHXm3PpuqHH+91SqmxEnAu+KRY81yyqaxNegEg6LDG+POYN4SIIqjFpeg4WPcn/7MiOEw==","signatures":[{"sig":"MEUCIDhIiyX3Aj83rfP39kPeDKbtLdLhci316tubjSSwGAZEAiEAyID4bOrXoyfv6rrBhH/mfWfT2gKSkGbLfZgf6GfmGs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEswPTdcBABlvlxKdJSo/jYIrzYdU3tck19waOjnORydAiByRD3cbEHQAfZJ41daAReCtXHa8kznFLOMbxdOr3uASA=="}],"unpackedSize":961167},"name":"@flowapt/flowiq-cli","type":"module","engines":{"node":">=18"},"gitHead":"80008bef65eadba8dc7ca9892f7d9ba2068ea806","license":"UNLICENSED","scripts":{"test":"node --test src/*.test.mjs","start":"node bin/flowiq.js","prepublishOnly":"node scripts/prepublish-check.mjs"},"version":"0.12.1","_npmUser":{"name":"mattflowapt","email":"matt@flowapt.com"},"homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"_npmVersion":"11.12.1","description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","directories":{},"maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"_nodeVersion":"26.0.0","dependencies":{"pg":"^8.22.0","commander":"^12.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/flowiq-cli_0.12.1_1790940650503_0.8749672170706306"}}},"time":{"created":"2026-05-12T23:33:18.690Z","modified":"2026-10-02T11:30:50.834Z","0.1.0":"2026-05-12T23:33:18.933Z","0.1.1":"2026-05-13T15:25:56.257Z","0.1.2":"2026-05-14T17:53:19.501Z","0.1.4":"2026-05-20T21:05:10.421Z","0.1.5":"2026-05-20T22:32:10.240Z","0.1.6":"2026-06-25T14:49:14.080Z","0.1.7":"2026-07-08T10:00:46.186Z","0.1.8":"2026-07-12T23:16:06.113Z","0.1.9":"2026-07-13T00:32:02.955Z","0.1.10":"2026-07-14T20:36:53.049Z","0.1.11":"2026-07-14T21:15:38.848Z","0.1.12":"2026-07-15T19:29:52.493Z","0.2.1":"2026-07-16T14:06:54.071Z","0.2.4":"2026-07-16T14:51:46.275Z","0.2.5":"2026-07-16T16:52:42.851Z","0.2.6":"2026-07-16T17:37:13.284Z","0.2.7":"2026-07-16T18:13:18.739Z","0.2.8":"2026-07-16T18:26:29.688Z","0.2.9":"2026-07-16T18:56:51.130Z","0.3.0":"2026-07-16T19:09:06.973Z","0.3.1":"2026-07-20T08:45:34.371Z","0.3.2":"2026-07-20T15:02:36.112Z","0.3.3":"2026-07-20T15:46:40.074Z","0.3.4":"2026-07-20T16:23:24.712Z","0.3.5":"2026-07-20T16:37:48.047Z","0.3.6":"2026-07-20T16:46:49.888Z","0.3.7":"2026-07-21T12:47:20.836Z","0.3.8":"2026-07-30T11:05:19.626Z","0.3.9":"2026-07-30T12:55:14.075Z","0.4.0":"2026-08-03T12:18:05.056Z","0.4.1":"2026-08-03T14:57:29.466Z","0.4.2":"2026-08-03T15:34:37.103Z","0.4.3":"2026-08-03T16:06:56.523Z","0.4.4":"2026-08-04T16:25:54.577Z","0.4.5":"2026-08-04T17:14:18.889Z","0.4.6":"2026-08-06T21:37:27.022Z","0.4.7":"2026-08-11T09:17:52.613Z","0.4.8":"2026-08-13T13:21:23.903Z","0.4.9":"2026-08-18T13:45:49.494Z","0.6.0":"2026-08-21T11:50:07.304Z","0.6.1":"2026-08-21T15:10:45.475Z","0.6.2":"2026-08-28T13:24:46.165Z","0.6.3":"2026-08-28T23:43:31.038Z","0.6.5":"2026-09-07T22:51:47.245Z","0.6.6":"2026-09-07T23:25:24.809Z","0.6.7":"2026-09-09T11:01:08.725Z","0.6.8":"2026-09-09T11:11:18.364Z","0.7.0":"2026-09-10T14:31:23.761Z","0.7.1":"2026-09-10T20:25:46.043Z","0.7.2":"2026-09-14T15:23:31.022Z","0.7.3":"2026-09-15T14:29:33.638Z","0.7.4":"2026-09-17T09:39:22.793Z","0.7.5":"2026-09-17T14:46:39.394Z","0.8.1":"2026-09-21T20:19:53.926Z","0.9.0":"2026-09-21T23:38:51.485Z","0.9.2":"2026-09-22T22:10:37.395Z","0.9.3":"2026-09-23T00:03:46.189Z","0.9.4":"2026-09-23T10:42:00.539Z","0.9.5":"2026-09-23T11:09:12.091Z","0.9.6":"2026-09-23T15:39:40.638Z","0.9.7":"2026-09-30T20:26:35.689Z","0.9.8":"2026-09-30T22:44:00.561Z","0.9.9":"2026-09-30T22:48:16.273Z","0.10.0":"2026-09-30T23:47:51.132Z","0.11.0":"2026-10-01T16:14:25.389Z","0.12.0":"2026-10-02T11:04:00.342Z","0.12.1":"2026-10-02T11:30:50.617Z"},"bugs":{"url":"https://github.com/MattFlowapt/flow-v1/issues"},"license":"UNLICENSED","homepage":"https://github.com/MattFlowapt/flow-v1/tree/main/cli","keywords":["flowapt","flowiq","cli","whatsapp","internal-tool"],"repository":{"url":"git+https://github.com/MattFlowapt/flow-v1.git","type":"git","directory":"cli"},"description":"Command-line tool for FlowIQ staff: round-trip agent prompts, questionnaires, fine-tuning, pin-board tasks, webhooks, templates, agent-updates, chat exports, and live agent testing without ever touching service-role credentials.","maintainers":[{"name":"mattflowapt","email":"matt@flowapt.com"}],"readme":"# flowiq\n\nFlowIQ staff CLI. Round-trips agent prompts, questionnaires, fine-tuning,\ncontact chats, platform webhooks, outbound messaging webhooks, FlowMod\nmaster-group prompts, Pin Board tasks, WhatsApp templates, agent-update\nrequests, full chat exports, and live agent testing through\n`https://api.flowiq.live/cli/*` so the Supabase service role never leaves the\nserver.\n\n## Install\n\n```bash\nnpm i -g @flowapt/flowiq-cli\nflowiq --version   # should print 0.1.x\n```\n\n## Authenticate\n\nDefault flow — browser login (like `npm login`):\n\n```bash\nflowiq auth login\n```\n\nThe CLI shows a short code (e.g. `FQ4X-9KTB`), opens\n`https://app.flowiq.live/cli-auth` when you press ENTER, and waits. A\nlogged-in FlowIQ **super admin** confirms the code on the page matches the\none in your terminal and clicks Approve — the CLI then receives a\nfreshly-minted personal key automatically. **Never approve a code you\ndidn't just see in your own terminal.**\n\nFallbacks (CI / no browser):\n\n```bash\nflowiq auth login --token fiq_staff_…   # supply a key directly\nflowiq auth login --paste               # prompt for a key on stdin\n```\n\nYour key is saved to `~/.config/flowiq/auth.json` with `chmod 600`. To\nverify what you're authenticated as:\n\n```bash\nflowiq auth whoami\n```\n\nTo rotate this device's token (mints a fresh key, revokes the old one\nserver-side — run whenever you want a new secret):\n\n```bash\nflowiq auth refresh\n```\n\nTo log out (deletes the local key file, does NOT revoke the key\nserver-side — use `flowiq auth refresh` first if you want the old key\ndead, or ask another super admin to revoke):\n\n```bash\nflowiq auth logout\n```\n\n## Commands\n\nAll `pull` commands write to `./.flowiq/<topic>/<slug>.json` relative to\nyour current working directory. We recommend picking a dedicated folder\nfor your CLI work:\n\n```bash\nmkdir -p ~/flowapt-cli && cd ~/flowapt-cli\n```\n\n### Prompts — `flowiq prompts pull|push <slug>`\n\nRound-trips an org's active WhatsApp agent's system prompt\n(`agents.settings.prompt_sections`).\n\n```bash\nflowiq prompts pull <organization_id>\n# edit ./.flowiq/prompts/<slug>.json — modify section titles/content\nflowiq prompts push <slug>\nflowiq prompts pull <organization_id> --out /tmp/check.json   # a scratch copy; the working file is untouched (0.9.8)\n```\n\nNotes:\n- **A new section needs no id (0.9.8).** Add `{ \"title\": …, \"content\": … }` and push:\n  the CLI writes a fresh uuid into the local file first, says which sections got\n  one, then pushes, so the next pull keeps the same id.\n- `system_prompt` is regenerated server-side from `prompt_sections` on\n  push using the `## SECTION: <title>` format.\n- Sections support optional `hidden: boolean` + `channels: string[]` (`web`, `whatsapp`, `messenger`, `instagram`, `email`; empty = every channel)\n  (`web` / `whatsapp` / `messenger` / `instagram`) — validated on push.\n- **Time-boxed sections:** optional `active_from` / `active_until`\n  (`\"YYYY-MM-DD\"` or `\"YYYY-MM-DDTHH:mm\"`) + `active_tz` (IANA, default\n  `Africa/Johannesburg`). Outside the window the section is skipped at\n  prompt assembly server-side — an expired promo needs NO cleanup push.\n  Validated on push (format, from ≤ until, real timezone).\n- For legacy agents without a sections array, pull auto-bootstraps a\n  single \"Main\" section from `settings.system_prompt` and returns\n  `bootstrapped: true`. The CLI prints a heads-up before push.\n\n#### Prompt version history — `flowiq prompts history|restore` (v0.3.8)\n\nA push overwrites `prompt_sections` in place, so the previous prompt used to\nbe gone for good. Since v0.3.8 every push **snapshots the prompt it replaced**\ninto the audit log, making every past version retrievable.\n\n```bash\nflowiq prompts history <organization_id>          # every recorded push: when / who / size\nflowiq prompts restore <organization_id> <audit_id>          # DRY-RUN (writes a working copy)\nflowiq prompts restore <organization_id> <audit_id> --commit # make it live\nflowiq prompts restore <organization_id> <audit_id> --after --commit\n```\n\n- `history` lists each push as `<prior size> → <new size>` with the audit id\n  to feed `restore`. `--agent <id>` scopes to a non-active agent.\n- `restore` **defaults to the version the push REPLACED** (i.e. \"undo this\n  push\"). `--after` restores the version that push made live — use it to jump\n  back to a specific older prompt rather than undoing one step.\n- **Dry-run by default.** It always writes\n  `.flowiq/prompts/<org>-restore-<audit8>.json` so you can read or edit the\n  recovered version first; `--commit` pushes it.\n- A restore goes through the normal push path, so it gets the same validation\n  **and its own audit row** — a rollback is never an untracked edit.\n- History starts at the first push after v0.3.8 shipped. Versions overwritten\n  before that were never snapshotted and cannot be recovered.\n\n### Questionnaires — `flowiq questionnaires pull|push <slug>` (alias `q`)\n\nRound-trips `agents.questionnaire` JSONB.\n\n```bash\nflowiq q pull <organization_id>\n# edit ./.flowiq/questionnaires/<slug>.json — fill in answers\nflowiq q push <slug>\n```\n\nIf the DB column is null, pull seeds the local file from a default\ntemplate (9 sections / 23 questions). Optional per-question `note` field\nis preserved round-trip.\n\n### Fine-tuning — `flowiq fine-tuning pull|push <slug>` (alias `ft`)\n\nRound-trips `agents.fine_tuning` (text instructions) + `agents.fine_tuning_entries`\n(structured Q&A entries).\n\n```bash\nflowiq ft pull <organization_id>\n# edit ./.flowiq/fine-tuning/<slug>.json\nflowiq ft push <slug>\n```\n\nEach entry has: `id`, `customer_question`, `correct_answer`, `agent_answer`,\n`notes`, `date` (YYYY-MM-DD), `category` (Product Info / Pricing / Warranty /\nShipping / Returns / Promotions / Technical Support / Tone Adjustment / Other),\n`suggested_tone` (Friendly / Professional / Encouraging / Brief / Detailed),\n`status` (Pending / Resolved), `messages: []`, `media: []`.\n\n### Knowledge / text sources — `flowiq knowledge pull|push|list` (alias `kn`)\n\nRound-trips an agent's **text knowledge sources** — the `{ code, text }` entries\nin `agents.additional_config` that the agent's `get_more_answers` tool retrieves\non demand (brand references + tethered playbooks; the \"Knowledge Sources → Text\"\ntab in the UI).\n\n```bash\nflowiq knowledge pull <org_id>                 # → ./.flowiq/knowledge/<slug>.json (sources[] = {code,text})\nflowiq knowledge pull <org_id> --agent <id>    # a specific (non-active) agent\nflowiq knowledge push <slug>                    # FULL-REPLACE sources[] back onto the agent\nflowiq knowledge list\n```\n\n- Codes are `UPPER_SNAKE` (`^[A-Z0-9][A-Z0-9_]{2,63}$`), validated server-side. Edit / add / remove entries in `sources[]`, then push (full-replace of the array).\n- **Object-shape guard:** some agents use `additional_config` for Flowapt-managed config (`external_woo_build`, …) rather than text sources — a pull flags that, and a push is **refused** (never clobbers managed config).\n- `--agent` + filenames behave like `prompts` (a non-active agent saves to `<org-slug>-<agent-slug>.json`). The file carries `agent_id`, so `push` targets the agent it was pulled from.\n\n### Custom tools — `flowiq custom-tools pull|push|enable|disable|list` (alias `ct`)\n\nRound-trips an agent's **custom tools** — the `agents.additional_tools` array\nof \"any API call → tool\" definitions (the \"Custom Tools\" panel in the UI:\n`get_more_answers`, CRM wrappers, loyalty tools, …). These define real HTTP\ncalls the agent can execute, so treat pushes with care.\n\n```bash\nflowiq custom-tools pull <org_id>               # → ./.flowiq/custom-tools/<slug>.json (tools[])\nflowiq ct pull <org_id> --agent <id>            # a specific (non-active) agent\nflowiq ct push <slug> --dry-run                 # validate + per-tool diff, writes NOTHING\nflowiq ct push <slug>                            # FULL-REPLACE tools[] onto the agent\nflowiq ct enable <org_id> <tool_name>            # flip one tool on (no round-trip)\nflowiq ct disable <org_id> <tool_name>           # flip one tool off\nflowiq ct list\n```\n\n- **Always `--dry-run` first** on a production agent — it prints added/removed/changed tool names before you commit.\n- **Destructive pushes are blocked by default**: a push that removes a tool, disables one, or sends an empty `tools[]` (wiping everything) writes nothing and shows you exactly what it would strip — re-run with `--confirm` if intentional. Additive/no-op pushes are unaffected.\n- Server-side validation is strict: tool `name` (`^[a-zA-Z0-9_-]{1,64}$`, no duplicates or built-in collisions), non-empty `description`, `http(s)` `endpoint`, method `GET/POST/PUT/PATCH/DELETE`, scalar headers, object-typed `parameters`/`injected_parameters`, valid auth/channels, timeout and response caps. Recursive schemas support strict nested objects, typed arrays, enums and numeric/string/item limits. Unknown tool/schema keys are rejected before anything writes.\n- **`display_name` (optional, 10 Sep 2026):** the label the TEAM sees on the inbox tool-activity card (e.g. `Checked loyalty points`) — plain string, ≤80 chars, never sent to the AI. Leave it out and the card derives a label from the tool name.\n- **Warnings (non-blocking):** an object with properties but no required fields. Unknown `{{placeholder}}` values are hard errors; injected parameters may additionally reference a declared top-level model parameter. Known runtime values include `organization_id`, `contact_id`, `agent_id`, `contact_whatsapp_id`, `contact_full_name`, `whatsapp_message_id`, `text`, `unique_message_id`, `unix_timestamp`, `operation_idempotency_key`, `supabase_anon_key`, `flowmod_relay_secret`, `flowiq_queue_key`, and `openai_api_key`.\n- **Queue credential:** `{{flowiq_queue_key}}` is super-admin-only and resolves to the service key only as the bearer token of a call to FlowIQ's own `add-to-api-queue` (`https://zvhwjpeeapujvuudfdps.supabase.co/functions/v1/add-to-api-queue`). The queue refuses the public anon key since 22 Sep 2026, so a tool that schedules a send (FlowMod Org's `schedule_reminder` / `schedule_a_task`) uses this. Validation and runtime both reject it anywhere else: another endpoint, another auth type, a body, a header.\n- **Retailer gateway credential:** `{{retailer_tools_internal_key}}` is super-admin-only and resolves only as the `x-api-key` value for `https://express.chatcart.io/retailer-tools/*` (or loopback in local tests). Validation and runtime both reject putting it in a body or sending it to any other host.\n- `--agent` + filenames behave like `prompts`/`knowledge`; the file carries `agent_id`, so `push` targets the agent it was pulled from.\n\n### Broadcast — `flowiq broadcast map|preview|send|resume|list-remote|status|route|retry|list` (alias `bc`)\n\nSend an **APPROVED** WhatsApp template to every row of a CSV, filling the\ntemplate's variables **per row** from the CSV's own columns. The\nhighest-stakes command in the CLI — built as a map → preview → commit\npipeline with several layers of deliberate friction.\n\n**v0.6.0 — the CSV send is a server-side fan-out.** A commit imports every\nsendable row as a contact carrying the campaign tag `bc-<campaign>` plus that\nrow's values as campaign-scoped attributes (`bc_<campaign>_param1…` /\n`_button`), then fires **ONE** python `/meta-broadcast` call whose params are\n`{{attributes.bc_<campaign>_paramN}}` tokens — python resolves them **per\ncontact** (body AND URL-button) and paces the send server-side. The CLI\nreturns in seconds; closing the laptop no longer matters. A 1,846-row CSV\nthat took ~77 min on the old per-row loop is now python-paced like any big\ntag send.\n\n```bash\n# 1) Build the column→param mapping interactively (saved per campaign, no send)\nflowiq bc map <org_id> --template rewards_referral_v1 --csv ./people.csv --campaign july-referrals\n\n# 2) Dry-run: validation + exact rendered messages for sample rows (default)\nflowiq bc send <org_id> --template rewards_referral_v1 --csv ./people.csv --campaign july-referrals\n\n# 3) Commit: import+tag the rows, fire ONE python broadcast (returns a broadcastId)\nflowiq bc send <org_id> --template … --csv … --campaign july-referrals --commit\n#   → prompts: type the campaign name to confirm\n#   → then audit with: flowiq bc status <org_id> <broadcastId> [--failures]\n\n# 4) Re-fire ONLY the failed recipients (python campaigns have no per-row resume):\nflowiq bc retry <org_id> <broadcastId> --commit\n\n# (pre-v0.6.0 campaigns with a per-row status log still finish on the old loop:)\nflowiq bc resume <org_id> --campaign july-referrals --commit [--retry-failed]\n\n# SCHEDULE a tag send for later instead of sending now (--at is SAST):\nflowiq bc send <org_id> --tag <batch-tag> --template <name> --body param1=\"…\" \\\n  --at \"2026-08-05 09:00\" --commit\nflowiq bc send … --at \"2026-08-05 09:00\" --needs-approval --commit  # park it for approval\n\nflowiq bc scheduled list <org_id>                   # open rows (pending + awaiting-approval)\nflowiq bc scheduled list <org_id> --all             # incl. fired / cancelled — an empty OPEN list now names what --all would show\nflowiq bc scheduled list <org_id> --status completed\n\n# SAVED SEND DRAFTS (v0.9.1) — the send dialog's stored configurations. A draft\n# is NOT scheduled and never fires on its own; before this it was invisible\n# outside the dashboard.\nflowiq bc drafts <org_id>                           # newest first\nflowiq bc drafts show <org_id> <draft_id>           # the whole stored config\nflowiq bc scheduled approve <org_id> <queue_id>     # 'request' → 'pending' (--at re-times it)\nflowiq bc scheduled cancel  <org_id> <queue_id> --confirm\n\n# REPLY ROUTING (v0.7.4): assign EVERY reply to this broadcast to a team / person.\nflowiq bc send <org_id> --tag <batch-tag> --template <name> --body param1=\"…\" \\\n  --route-team \"Spa\" --commit                       # typed replies AND button taps → the Spa team\nflowiq bc send … --route-team \"Spa\" --route-member kim@client.com --route-window 48h --no-route-notify\nflowiq bc send … --csv people.csv --campaign 17Sep_Spa --route-team \"Spa\" --at \"2026-09-18 09:00\" --commit\n\nflowiq bc route <org_id> <broadcastId>                                   # show what a broadcast routes to + how many chats it has routed\nflowiq bc route <org_id> <broadcastId> --team \"Spa\" --commit             # set it on a broadcast that already went out\nflowiq bc route <org_id> <broadcastId> --clear --commit                  # switch it off\n```\n\n**Coexistence numbers are sent at a steady pace (2 Oct 2026).** On an org whose number\nis shared with the WhatsApp Business app (`feature_flags.coexistence.enabled`), every\nsend engine (python, `/api/broadcast`, `/api/send-template`) sends one message every\n200 ms (5 a second) instead of in bursts, and the `bc send` dry run says so with the\ntime it will take: `🐢 Coexistence number: sent one at a time at 5 a second, about 5 min\nfor 1500 contact(s)`. On every org, a send Meta refuses with **130429** (its send-speed\nlimit) is retried after 2 / 5 / 10 s before it is recorded as failed; Meta never sent it,\nso a retry cannot double-message anyone. `flowiq org whatsapp` notes a coexistence\nnumber (Meta's own `throughput` still reads STANDARD on them). Server-side, no new flags.\n\n- **Scheduling (v0.4.4 tag / v0.6.1 CSV)** — `--at \"YYYY-MM-DD HH:MM\"` queues the\n  send instead of firing it. It writes the same `api_request_queue` row the\n  dashboard writes, replayed by the `process-api-queue` cron (every 3 min, so it\n  fires 0–3 min after the stated minute). Runs **every** pre-send check first\n  (APPROVED, positional, param arithmetic, header-media type) — a scheduled\n  send can't skip a guard an immediate one enforces.\n  - **CSV mode (v0.6.1):** the rows are imported + tagged **NOW** (same as an\n    immediate send); only the python call is queued. Scheduled CSV campaigns\n    therefore show on the dashboard's Scheduled sends page and can be\n    approved/cancelled from there or via `bc scheduled` — nothing depends on\n    anyone's laptop being awake at send time. Python re-resolves the tag when\n    it fires, so anyone tagged `bc-<campaign>` in the meantime is included.\n    A scheduled campaign counts as fired for the re-run guard — cancel the\n    queued row first, then re-run with `--resend`.\n  - `--at` is always read as **SAST**, never the machine's local timezone, so\n    the same command schedules the same instant from anywhere.\n  - The **audience resolves when it FIRES**, not when you schedule — someone\n    tagged tomorrow morning still receives a send scheduled today.\n  - Defaults to fire-by-itself. `--needs-approval` parks it until\n    `bc scheduled approve`. ⚠ **A parked row NEVER fires until approved** and\n    never errors — `scheduled list` flags those `AWAITING APPROVAL — will NOT\n    fire` (two dashboard-scheduled broadcasts silently missed their sends this\n    way). Cancel is dry-run unless you pass `--confirm`.\n\n- **Per-row values**: each template slot maps to a CSV **column**, a\n  **literal**, or a **concat transform** (e.g. `Country Code` + `Phone`,\n  leading-zero handled). The mapper auto-suggests from the template's\n  semantic labels + body text and you confirm each slot once; the mapping is\n  saved to `.flowiq/campaigns/<campaign>.json` and reused.\n- **Media-header templates (image/video/document) ARE supported** (v0.3.3) —\n  exactly like the dashboard. The header media defaults to the template's own\n  stored URL (`template_data.header.default_url`); override with\n  `--header-media <public-url>` on `map`/`preview`/`send`. Passed to\n  `/api/send-template` as `headerMedia`, the same field the dashboard uses. A\n  media-header template with no resolvable media is refused (pass\n  `--header-media`).\n  - **Header media is VERIFIED, not assumed (v0.4.1).** The CLI probes the\n    resolved URL's `content-type` and compares it to the template's header\n    format: a match prints e.g. `header video (video ✓ video/mp4)`; a\n    **mismatch ABORTS** (e.g. a VIDEO template whose resolved media serves\n    `image/png` — every recipient would get a broken header). Templates\n    created before the 3 Aug 2026 `create-meta-template` mime fix can carry a\n    broken Meta-side default (a truncated png stored for a video template);\n    the abort message says so — fix by passing `--header-media <real video>`.\n    `map` refuses to save a mismatched default into the campaign file. An\n    unreachable URL only warns (`media unverified`), never blocks.\n- **One campaign = one template (v0.4.6).** A campaign's saved mapping, header\n  media and write-ahead status log (dedup) all belong to the template it was\n  built for. Running `bc send` / `map` with a **different `--template` on an\n  existing `--campaign`** now **ABORTS** (`Campaign \"X\" was built for template\n  A …`) — reusing the slug would silently send A's header media and skip the\n  recipients A already reached (the header-media check only catches a media-TYPE\n  change, not a same-type creative swap). Use a fresh `--campaign` for a new\n  template. In **tag mode the campaign slug defaults to the tag**, so to send\n  template A then template B to the SAME tag, pass a distinct `--campaign` for\n  each. `resume` passes no `--template`, so it is never affected.\n- **Reply routing — `--route-team` / `--route-member` on `send`, and `bc route` (v0.7.4)**:\n  \"every reply to this broadcast goes to team X / person Y\". The first message a\n  recipient sends inside the window (default **72 h** after the send, `--route-window\n  48h|3d`, max 14 d) assigns the chat — **once per recipient per broadcast** — and\n  notifies the target through the normal assignment notification (the Teams-page\n  notify settings + the org's two notification flags still decide whether anything is\n  actually sent; `--no-route-notify` assigns silently). It is the fix for the gap a\n  quick-reply button + exact keyword + `assign_chat` cannot close: that route only\n  catches button TAPS, and a broad keyword mutes the AI agent. Routing is a side\n  effect — **keywords and the AI agent answer exactly as they would have**, and it\n  also applies to a chat whose agent is switched off. Skipped: business auto-replies\n  (\"thank you for contacting…\", out of office) and opt-outs (`stop`). An internal\n  note in the chat says why it was assigned. **An existing assignment is\n  overwritten**, same as the keyword action.\n  - `--route-team` takes a team name (case-insensitive; a unique partial match is\n    fine) or id; `--route-member` takes an email, a name or an id and must be an\n    ACTIVE member of that org. A typo stops the run in the **dry run** with the org's\n    teams listed — nothing is tagged, queued or sent.\n  - The routing is stored on the broadcast (`broadcasts.reply_routing`), so it\n    **forces the python engine at any size** (the per-row Node engine writes one\n    broadcast per recipient). Works in tag mode, CSV mode and with `--at` (the queued\n    send carries it and it is applied the moment the send fires).\n  - After a commit the CLI prints `Replies → … ✓ saved`. If it prints **REPLY ROUTING\n    NOT SAVED / NOT CONFIRMED**, the messages still went out — fix it straight away\n    with `bc route <org> <broadcastId> --team … --commit`.\n  - `bc route` with no flags shows the current routing and how many chats it has\n    routed; with `--team/--member` sets it; `--clear` removes it. Dry-run unless\n    `--commit`, audited. Only replies arriving AFTER the change are routed — nothing\n    is applied retroactively. `bc status` prints the routing too.\n  - Using routing AND a button keyword with `assign_chat` on the same campaign is\n    harmless but notifies twice on a tap — drop the keyword's assign when routing is on.\n- **`list-remote <org>` (v0.3.9)**: list the org's broadcasts **newest-first** with\n  the **full broadcastId** per row + template, status, recipient count and SAST\n  created time — the discovery step `status` / `retry` need (previously the id\n  existed only in the send output or the DB). `--limit <n>` (default 25, max 200),\n  `--template <substr>` (case-insensitive contains), `--since <date>`,\n  `--min-recipients <n>` (0.9.8: `2` hides one-recipient traffic like popup welcomes\n  and cart reminders, which otherwise fill the cap and hide campaign sends), `--json`.\n  When more rows match than are shown it prints `N of M shown` and says so. Read-only. NOTE: plain `bc list` (no org) still lists your **local campaign\n  files** — the remote verb is named after `pinboard list-remote`.\n- **`status <org> <broadcastId>` (v0.3.5)**: live delivery **funnel** for a\n  broadcast by its id — `accepted` → `delivered` → `read`, plus `pending` and\n  `failed`, with percentages, from `helpdesk_messages`. Since 0.9.8 it also prints\n  what the send said (`sent with:` header / body / button slot values) and, for a\n  button short code, the link's destination with its UTM tags and click count\n  (`payload` in `--json`). Built for the `--python`\n  fire-and-forget engine (which returns a `broadcastId` but has no CLI status\n  log), but works for any broadcast id (dashboard sends included).\n  **`--failures` (v0.3.7)** additionally lists each failed recipient + the Meta\n  error reason (`error_code` / `error_title`) with a by-reason rollup — makes a\n  fire-and-forget send fully auditable.\n  - **Delivery counting fixed 3 Aug 2026.** It previously counted\n    `message_status='delivered'`, a value present on **6 rows in the whole\n    table**, so *delivered always displayed 0* (the reached TOTAL was right; the\n    breakdown was not). Delivery now comes from the boolean receipt columns\n    (`delivered_receipt_received` / `read_receipt_received`) that the webhooks\n    flip — the same signal as the inbox ticks. **Booleans, not the\n    `delivered_at`/`read_at` timestamps**: those were added recently and are only\n    partially backfilled (2025: 323,325 delivered by boolean, **0** by\n    timestamp), and no row ever carries a timestamp without the boolean.\n  - The stages are **cumulative, not disjoint** (`accepted ⊇ delivered ⊇ read`) —\n    don't add them up. `delivered` counts read-without-a-delivered-receipt too\n    (~65k such rows exist: WhatsApp can skip straight to the read receipt).\n  - **`read` is a FLOOR, never exact** — recipients can disable read receipts in\n    WhatsApp. The JSON carries a `read_caveat` string saying so.\n- **`retry <org> <broadcastId>` (v0.3.7)**: re-send a broadcast to **only its\n  failed recipients** — reconstructs the send from the `broadcasts` row (template +\n  params + header) and re-fires via the python engine, creating a NEW broadcast.\n  DRY-RUN by default (shows the failed count + reason breakdown); `--commit` fires.\n  Note: permanent failures (e.g. `131026` undeliverable, opt-outs) just fail again —\n  retry earns its keep on transient (throttle/throughput) failures. Capped at 500.\n- **CSV fan-out semantics (v0.6.0)** — the things the engine change makes true:\n  - **Per-row values persist on the contact** as `bc_<campaign>_paramN` /\n    `_button` attributes (and the `bc-<campaign>` tag) — deliberate: they're the\n    audit trail of exactly what each person was sent. Re-running a campaign\n    overwrites them with the current CSV's values. Names are safe: a blank/missing\n    CSV name can never null a real contact's name (the upsert RPC preserves it).\n  - **One campaign = one audience.** A campaign that already fanned out refuses\n    a re-run (`--resend` overrides, and resends to EVERY tagged contact — for\n    failures use `bc retry`, which re-fires only the failed ones). Smoke-test\n    with `--limit` under a THROWAWAY `--campaign`: a limited fan-off still\n    records the campaign as fired, and the full run would need `--resend`.\n  - **The audience is the TAG, not the file.** If an earlier run of the same\n    campaign tagged rows since removed from the CSV, python still resolves them —\n    the CLI cross-checks python's count against the CSV after tagging and makes\n    you type `YES` when the tag carries MORE people than the file.\n  - No per-row write-ahead log or `resume` on fresh sends — the campaign log\n    records ONE `handoff` line (broadcastId); delivery/failure detail lives in\n    `bc status <org> <broadcastId> [--failures]` and `bc retry`.\n  - `--rate` / `--skip-upsert` only apply to pre-v0.6.0 `resume`; fresh sends\n    ignore them (python paces itself; the upsert IS the mechanism).\n- **Engine auto-routing (v0.3.6):** any `send --tag` of **more than 10** eligible\n  recipients **always uses the python engine** (a `>2000` tag routes there too).\n  Only a ≤10 tag send stays on the per-row Node engine. `--python` forces\n  python at any size. **CSV sends are ALWAYS python from v0.6.0** (per-row values\n  ride as contact attributes — see above).\n- **`--python` engine (v0.3.4, `send --tag` only)**: hand the whole send to the\n  **python `/meta-broadcast` endpoint** — the *same* sender the dashboard's \"Python\n  endpoint\" toggle uses — via a staff-gated proxy (the master key stays server-side\n  in `VITE_PYTHON_RENDER_API_KEY`; the CLI never holds it). Python resolves the tag\n  + eligibility (`allow_broadcast=true`, not blocked; **no 2000-cap, paginated**) and\n  sends **fire-and-forget**, returning a `broadcastId`. Dry-run (no `--commit`) asks\n  python for the eligible count + a sample. Trade-off vs the default per-row engine:\n  no CLI write-ahead-log / `resume` (python owns the broadcast record), and archived\n  contacts aren't separately filtered. Media headers work on both engines.\n- **Scope**: Meta orgs, POSITIONAL templates, text / no header / media header,\n  and **carousel templates (tag mode only, v0.4.9)**. NAMED templates and WATI\n  orgs are refused with a clear message; carousels in CSV mode are refused with\n  a pointer to tag mode.\n- **Carousel templates (v0.4.9, `send --tag` only, always the python engine):**\n  the CLI introspects every card (header format, body variables, buttons) and\n  builds the per-card send payload python's `/meta-broadcast` expects. Card\n  media defaults to each card's **stored template image** (written by\n  `create-meta-template` at creation), overridable with repeatable\n  `--card-media <url>` (one per card, in card order); every resolved URL is\n  content-type probed against that card's own IMAGE/VIDEO format (mismatch\n  aborts, per card). Cards whose body carries `{{n}}` variables, or whose URL\n  buttons carry a variable, **require `--cards-file <path>`** — a JSON array\n  with one entry per card:\n  `[{\"header_media\":\"<url>\",\"body_params\":{\"param1\":\"…\"},\"button_payloads\":{\"btn0\":\"…\"},\"url_vars\":{\"btn1\":\"<value>\"}}, …]`\n  (all keys optional per card; quick-reply payloads default to the button text;\n  `{{first_name}}`-style tokens inside card values are resolved per contact).\n  Carousel sends route to the **python engine at any size** — the per-row Node\n  engine cannot send carousels — so there is no CLI write-ahead log / `resume`\n  for them; audit via `bc status <broadcastId>`. `--at` scheduling works: the\n  card payload is frozen into the queued request. `bc retry` on a carousel\n  broadcast re-resolves card media from the template's stored defaults and does\n  NOT replay per-card body/url values — retry only carousels that need none.\n- **Validation before anything sends**: APPROVED-only, every slot mapped,\n  contiguous params (the Meta `#132000` guard — a stray key is structurally\n  impossible), phone validity, illegal characters (Meta `#100`; `reject` by\n  default), duplicates, and **live broadcast-safety** — opted-out / archived /\n  blocked contacts are skipped, always.\n- **Dry-run is the default**; `--commit` + typing the campaign name is the\n  only way to send (`--yes` for CI skips the typing, never the dry-run).\n- **Campaign status log** (`.flowiq/campaigns/<campaign>.status.jsonl`): a\n  fresh (v0.6.0) send records a `meta` header + ONE `handoff` line carrying the\n  `broadcastId` — the re-run guard and your local pointer to `bc status`.\n  Pre-v0.6.0 campaigns keep their per-row `sending`/`sent`/`failed` lines and\n  finish on `resume` (ambiguous mid-crash rows are still never auto-resent;\n  `--retry-failed` adds confirmed failures).\n- **Error handling**: all pre-send validation is unchanged and client-side;\n  per-recipient send errors are python-side — audit them with\n  `bc status <org> <broadcastId> --failures`, re-fire with `bc retry`.\n- Contacts are **imported/updated** via `/cli/contacts-upsert` (≤4000/batch,\n  retries then aborts) carrying the campaign tag + attributes; the python\n  params are pure `{{attributes.*}}` tokens, so the payload never needs a\n  `name` key — the classic `#132000` footgun stays structurally impossible.\n\n**Tag mode** — send to everyone carrying a tag (e.g. a `segments` batch tag)\ninstead of a CSV. Same guards, same status log, same resume:\n\n```bash\nflowiq bc send <org_id> --tag july-promo-batch-01 --template fresh_drop_v1 \\\n  --body param1=\"Hi {{first_name}}\" [--button param1=<short-code>] --commit\n\n# A template with TWO link buttons (v0.7.5), e.g. one per product: one --button per button,\n# in the order the buttons appear on the template.\nflowiq bc send <org_id> --tag new-arrivals-batch-01 --template new_arrivals_v3 \\\n  --button param1=<cycle-harmony-code> --button param2=<neuroshyft-code> --commit\n```\n\n**Pasted links (v0.8.0, first on npm as 0.8.1):** you can paste the REAL link instead of a code:\n\n```bash\nflowiq bc send <org_id> --tag spring-batch-01 --template updates_v8 \\\n  --body param1=\"Hi {{first_name}}\" \\\n  --button param1=\"https://shop.co.za/collections/spring?ref=ig&utm_source=klaviyo\"\n```\n\nThe dry run shows what will go out: `→ linklnk.io/<code-on-commit>`, the tags\n(`utm_campaign=18Sep_UpdatesV8 · utm_content=ClickHere · utm_source=whatsapp`),\nanything it replaced (`⚠ replaced utm_source=klaviyo with whatsapp`) and where\nthe link really lands (a store redirect that drops the tags is pointed past;\na `/discount/` link is kept). Your other params (`ref`, a discount code, a\nvariant) are kept. `--commit` mints the code, then sends. `--link-campaign\n\"Spring Promotion\"` names the campaign tag (default: the template name; `--at`\nsupplies the date); `--keep-link` sends the link exactly as pasted with no\nFlowIQ tags (clicks are counted, the sale will not show as WhatsApp). Only a\nbutton whose base is one of our short domains (`linklnk.io/{{1}}`) takes a\nlink; a button that already points at the store takes the part after the\nslash. A whole short link pasted as the value is reduced to its code.\n\n**Link buttons (v0.7.5):** every button whose URL carries a `{{1}}` needs its own\n`--button paramN=` value (`param1` = the first such button, `param2` = the\nsecond). The dry run prints each button's final URL and stops if one is\nmissing (WhatsApp rejects the whole message when a link button is empty); a\nvalue with no button to go to is ignored with a warning. Swapping the codes per\nbatch is how one campaign gets per-batch click counts: mint each batch's links\nwith the same `--campaign` and a different `--content`. CSV mode fills one link\nbutton only, so a two-button template is refused there.\n\nValues are shared across the tag (use `{{first_name}}` etc. for per-contact\npersonalization — resolved server-side). Supported per-contact tokens:\n`{{first_name}}` `{{full_name}}` `{{email}}` `{{phone_number}}`\n`{{whatsapp_id}}` `{{contact_id}}`, plus `{{attributes.<key>}}` for any\ntop-level key of the contact's `attributes` JSON (missing / object-valued\nkeys render as empty — both engines, since 21 Jul 2026). Opted-out /\narchived / blocked contacts under the tag are excluded automatically. Tags with >2000 contacts\nare refused — slice them with `flowiq segments` first.\n\n### Segments — `flowiq segments plan|apply|list|untag` (alias `seg`)\n\nSlice a big contact cohort into fixed-size **batch tags** (default 75) so\nsends respect Meta tier limits and stay controllable — the batch tag is your\nthrottle *and* your brake. Tags only; the send is `broadcast send --tag` (one\nbatch at a time) or the dashboard broadcaster.\n\n```bash\n# Broadcast list → N even TAGGED COHORTS in ONE command (v0.3.1 — no id file, no DB access):\nflowiq seg plan <org_id> --tag-prefix bcast --from-attribute allow_broadcast_true --split 3 --seed 42\n# every broadcast-opted-in contact (minus archived/blocked), shuffled into 3\n# BALANCED cohorts → bcast-batch-01/02/03. --from-attribute also takes\n# all_contacts | allow_broadcast_false | no_broadcast_permission (same selector\n# as `tag attributes --filter`). --split N (2..100) replaces --batch-size;\n# --seed makes the shuffle reproducible, --ordered keeps server order (no shuffle).\n\n# Cohort from EXISTING TAGS → batched (v0.3.2 — combine tags, then split, no id file):\nflowiq seg plan <org_id> --tag-prefix 18-july-clearance-bc \\\n  --from-tag \"9-jul-loyalty-list\" --exclude \"recent-campaign,opt-out\" --batch-size 1000\n# contacts carrying ANY of the --from-tag tags, MINUS anyone carrying any --exclude\n# tag, minus archived/blocked/opted-out → sliced into 1000-sized batch tags\n# (18-july-clearance-bc-batch-01, -02, …). --from-tag pairs with --split too.\n# This is the \"existing tags → batched send list\" flow, entirely in the CLI.\n\n# Cohort by ORDER-COUNT CRITERIA (v0.2.6 — server-resolved, no id file needed):\nflowiq seg plan <org_id> --tag-prefix repeat-60d --min-orders 2 --window 60d\n# \"everyone with 2+ orders in the last 60 days\" — counted from the captured\n# order stores (shopify_orders/woo_orders), NOT the lifetime orders_count column.\n# --window takes 60d / 8w / 3m; omit it for all captured history. --platform auto|shopify|woo.\n\n# Cohort by PRODUCT PURCHASE (v0.2.7 — from real order line-items):\nflowiq seg plan <org_id> --tag-prefix whey --bought \"Protein Water,Whey\" --window 90d\n# contacts who bought any of these products (name substrings) in the window;\n# --match all (bought every listed product), --min-purchases 2 (bought 2+ times).\n# More accurate than the app's Field Search on order_history text (which drifts).\n\n# Cohort by explicit id list (the original mode):\nflowiq seg plan <org_id> --tag-prefix july-promo --ids-file ./cohort.txt   # or --from-segment snapshot.json\n\n# → exclusions (opt-out/archived/blocked) applied BEFORE slicing → .flowiq/segments/<slug>.json\nflowiq seg apply <org_id> repeat-60d            # DRY-RUN (default — nothing writes)\nflowiq seg apply <org_id> repeat-60d --commit   # append the tags (idempotent — re-runs report already_had)\nflowiq seg list  <org_id> --prefix repeat-60d   # VERIFY: tag → count\nflowiq seg untag <org_id> repeat-60d --commit --confirm   # ROLLBACK (its own tags only)\n```\n\n- **Cohort sources:** `--from-attribute <filter>` (a broadcast-permission\n  audience — `all_contacts` / `allow_broadcast_true` / `allow_broadcast_false`\n  / `no_broadcast_permission`, resolved server-side in one RPC call);\n  **`--from-tag \"a,b\" [--exclude \"c,d\"]`** (contacts carrying ANY of the include\n  tags minus anyone carrying an exclude tag — the \"existing tags → batched send\n  list\" source, v0.3.2); `--min-orders [--window]` (the windowed order count the\n  app's Advanced Tagging UI cannot express — its Min Orders filter is\n  lifetime-only); `--bought` (product line-items); or explicit **contact UUIDs**\n  (a snapshot JSON's `contact_ids[]` or a plain file). Exactly one per plan.\n- **`--split N` = exactly N even cohorts** (2..100), an alternative to\n  `--batch-size` fixed chunks. It **shuffles by default** so the cohorts are\n  balanced (not skewed by contact age / signup order); `--seed S` makes the\n  shuffle reproducible, `--ordered` keeps server order. `--from-attribute\n  allow_broadcast_true --split 3` is the \"whole broadcast list → 3 balanced\n  tagged cohorts\" one-liner — no id file, no database access.\n- **`--start-index N` continues an existing batch series** (v0.6.4, 3 Sep 2026).\n  Batch tags are always numbered from `01`, so a campaign already holding\n  `f500-batch-01…12` could not get its 13th batch from the CLI — the plan would\n  have produced `f500-batch-01` again and, because apply is append-only, quietly\n  MERGED a new cohort into the oldest one. `--start-index 13` names the batch\n  `f500-batch-13`. `plan` now also **refuses outright** when any batch tag it\n  would create already holds contacts, printing the correct `--start-index` to\n  use; `--allow-existing-tag` overrides when the merge is deliberate.\n- Apply is **append-only** — it never touches a contact's other tags, names,\n  or anything else, and never double-adds.\n- **Large cohorts are chunked server-side** (fixed 3 Aug 2026): the tagging RPC\n  writes every batch inside one statement, so a ~90k apply used to hit the\n  database timeout and roll back with nothing written. Apply now splits into\n  calls of ≤8000 contacts. Safe to re-run at any size — if a chunk ever does\n  fail, the error names how many landed and a re-run finishes the job\n  (append-only ⇒ idempotent).\n- Point-in-time warning: the plan snapshots the cohort at plan time; re-run\n  `plan` to refresh it (someone who ordered since won't auto-drop, criteria\n  mode included).\n\n### Advanced Tagging — `flowiq tag field|cohort|segment|attributes|messages|list|remove`\n\nThe **Contacts → Advanced Tagging** dialog in the terminal — applies **one\nnamed tag** to a matched set of contacts (not batch tags; that's `segments`).\nEvery match mode is **dry-run by default** (prints the count + a sample); add\n`--tag <name> --commit` to write. Appends only — it never touches a contact's\nother tags. Runs through the staff-gated **service role**, so it's immune to\nthe anon exposure the in-app RPCs carry.\n\n```bash\n# Field search — keyword(s) in a field (order_history/contact_summary/shopify_tags/full_name/email/…)\nflowiq tag field <org_id> --field order_history --any \"Protein Water,Whey\"          # dry-run\nflowiq tag field <org_id> --field shopify_tags --any \"VIP\" --tag vip --commit\n\n# Cohort — top-N ranking (top_spenders / frequent_buyers / recent_buyers / high_value_low_frequency)\nflowiq tag cohort <org_id> --type top_spenders --limit 500 --tag top-500 --commit\n\n# Custom segment — order-count / spend / last-order-date / region / keyword filters\nflowiq tag segment <org_id> --min-orders 2 --min-spent 1000 --region ZA-GP --tag gp-repeat --commit\n\n# Attributes — broadcast permission (all_contacts / allow_broadcast_true|false / no_broadcast_permission)\nflowiq tag attributes <org_id> --filter allow_broadcast_true --tag broadcastable --commit\n# Big org (cohort > ~20k)? Chunk it: repeat this until it reports \"matched 0\" —\n# each run tags the next 10k untagged contacts (see the bullet below on the 50k cap / DB timeout)\nflowiq tag attributes <org_id> --filter allow_broadcast_true --limit 10000 --exclude broadcastable --tag broadcastable --commit --yes\n\n# Message activity — ≥ N messages of a sender type, optional date range\nflowiq tag messages <org_id> --min-count 3 --sender user-whatsapp --tag engaged --commit\n\nflowiq tag list   <org_id>                          # tags + counts (read-only)\nflowiq tag remove <org_id> vip,old-promo --confirm  # remove tag(s) from ALL contacts (destructive)\n```\n\n- **Dry-run first, always.** Without `--commit` you get the match count + a\n  10-row sample and nothing writes. A commit over 2000 contacts asks you to\n  type the tag name (skip with `--yes`).\n- **`field` reads the `order_history` TEXT** (which can drift from the real\n  orders). For accurate \"who bought product X\", prefer\n  `flowiq seg plan --bought \"X\"` (real order line-items, windowable).\n- **`cohort` is top-N, not a threshold** — `top_spenders --limit 500` tags the\n  top 500 by spend, not \"everyone above £X\". Use `tag segment --min-spent` for\n  a threshold.\n- **Big orgs: chunk `attributes` commits with `--limit` + `--exclude <your-tag>`**\n  (flags added 3 Aug 2026, in-repo pending publish). The tagging RPC hard-caps at 50,000\n  per call AND a single large commit updates row-by-row, so a ~50k commit dies\n  on the DB statement timeout (full rollback, nothing written). `--limit 10000\n  --exclude <the-tag-you're-adding>` makes each run pick the next 10k untagged\n  matches — re-run until `matched 0`. Idempotent and safe to re-run.\n- **Undo** any tag with `flowiq tag remove <org> <tag> --confirm`.\n\n### Staying current — `flowiq doctor` (v0.6.9)\n\n```bash\nflowiq doctor          # version vs npm, auth, and whether the server still supports this install\nflowiq doctor --json   # same, machine-readable; exits 1 when something needs fixing\n```\n\n```\n  ✓ version    0.6.9 (latest)\n  ✓ api        https://api.flowiq.live\n  ✓ auth       you@flowapt.com · super admin\n  ✓ server     contract 0.6.8 or newer · build 1f0fd48c\n```\n\n**A Vercel security checkpoint is named as one (0.9.8).** When Vercel's bot\nprotection challenges this network, every command (and `doctor`) now says so:\n\"Vercel is challenging this network… not your key\". Wait a few minutes or switch\nnetwork; do not re-login and do not narrow the request. Only a JSON 401/403 from\nthe API means the key itself was refused. A timeout on a WRITE now says the server\nmay have finished it (check before retrying); `templates create` names the exact\n`templates status --live` command to check with.\n\n**Three ways this install tells you it is stale**, so nobody — person or AI\nassistant — has to remember to check:\n\n1. **npm nudge.** Any command prints, on stderr, when a newer version is\n   published:\n   `⬆ FLOWIQ CLI OUT OF DATE — installed X, latest Y / Run this before continuing: npm i -g @flowapt/flowiq-cli@latest`.\n   The registry is polled at most once a day by a detached child, so the hint\n   costs nothing on the hot path and appears on the next run after a release.\n2. **Server contract.** Every `api/cli/*` response carries\n   `X-Flowiq-Min-Version` — the oldest client the deployed server still\n   supports — and the CLI warns once per process when this install is below it.\n   This is the half npm cannot tell you: the registry knows what is *published*,\n   not whether the **server** still speaks your dialect. It is instant and\n   offline-safe, riding on a request you were making anyway.\n3. **`flowiq doctor`**, when you want to ask deliberately.\n\n⚠️ Until 9 Sep 2026 the npm nudge was also gated on `process.stderr.isTTY`, so\nit was invisible to exactly the audience that most needs it — an assistant\nrunning `flowiq` through a tool call gets a pipe, not a TTY. Teammates' AI\nsessions could run a months-old CLI forever without ever being told. Writing to\nstderr was already the whole safety property; the TTY gate bought nothing.\n\n**Bumping `MIN_CLI_VERSION`** (`api/cli/_auth.js`): only when a server change\nwould MISBEHAVE on an older client — a removed or renamed response field, a\nchanged request shape, a validation rule an old client cannot satisfy. Never for\nadditive work; a new endpoint or an opt-in query param leaves old clients\ncorrect, and crying wolf trains people to ignore the warning.\n\n### Publishing (maintainers) — publish from a CLEAN checkout\n\n`npm publish` packs the **working tree**, not your branch. This repo's local\ntree is routinely dozens of commits behind `origin/main` with other sessions'\nwork in it, so `cd cli && npm publish` from it ships a stale CLI under a version\nnumber you can never reuse. That has happened twice — **0.6.5** (8 Sep 2026) and\n**0.6.7** (9 Sep 2026) both shipped a local tree while the real work sat on\n`origin/main`.\n\nA `prepublishOnly` hook now refuses when `cli/` differs from `origin/main`:\n\n```bash\n# the safe recipe\ngit clone https://github.com/MattFlowapt/flow-v1.git /tmp/pub\ncd /tmp/pub/cli && npm publish\n\n# or bring the local tree level first\ngit checkout origin/main -- cli/ && cd cli && npm publish\n```\n\n`FLOWIQ_ALLOW_DIRTY_PUBLISH=1` overrides it, for a genuine emergency only.\n\n### Links — `flowiq links shorten|list` (v0.4.8)\n\nShort links with campaign UTM tags — the terminal half of the in-app **URL\nShortener**. Same engine server-side (`api/_url-shorten-engine.js`), so a link\nminted here is identical to one minted in the dialog.\n\n```bash\n# Dry run FIRST — shows the exact destination each short link will carry\nflowiq links shorten <org> --url \"https://shop.co.za/product/x\" \\\n  --campaign \"Spring Promotion\"          # → utm_campaign=9Sep_SpringPromotion\n\nflowiq links shorten <org> --url \"https://shop.co.za/product/x\" \\\n  --url \"https://shop.co.za/product/y\" \\\n  --campaign \"Spring Promotion\" --content ViewMore --domain linklnk.io --commit\n\n# a send going out later — give the send date, not today's\nflowiq links shorten <org> --file ./slide2.txt \\\n  --campaign \"Heritage Day\" --date 2026-09-24 --commit\n\nflowiq links list <org> --campaign 9Sep_SpringPromotion\n```\n\n#### Campaign naming — `Date_Campaign` (you do not have to type it) (v0.6.7)\n\nThe house convention is **`Date_Campaign`**: the date the broadcast **goes out**\n(`9Sep` — no leading zero, three letters, `Sep` never `Sept`), an underscore,\nthen the campaign title in PascalCase. A broadcast going out today for the\nSpring Promotion is **`9Sep_SpringPromotion`**.\n\n`--campaign` is normalised to it, so pass the campaign in plain words:\n\n| you type | you get |\n|---|---|\n| `--campaign \"Spring Promotion\"` | `9Sep_SpringPromotion` (today's date prefixed) |\n| `--campaign spring-promotion` | `9Sep_SpringPromotion` |\n| `--campaign 10JunFathersDay` | `10Jun_FathersDay` (underscore inserted) |\n| `--campaign 5Sept_BraaiDayOffer` | `5Sep_BraaiDayOffer` (`Sept` → `Sep`) |\n| `--campaign \"Heritage Day\" --date 24/9/2026` | `24Sep_HeritageDay` |\n\n- The resolved tag is **printed before anything is minted**, and `shorten` is\n  dry-run by default, so you always see it first.\n- **A running campaign never forks (0.9.8).** Before minting, the org's tags from\n  the last 120 days are checked: when one normalises to the same tag but is\n  spelled differently (`5Sept_BraaiDayOffer` running, you asked for\n  `5Sep_BraaiDayOffer`), the dry run prints `⚠ CAMPAIGN FORK` and `--commit` is\n  refused. Reuse the running tag with `--campaign 5Sept_BraaiDayOffer --raw-campaign`,\n  or pass `--new-campaign` when it really is a separate campaign.\n- `--date` takes `9Sep`, `2026-09-24` or `24/9/2026` — use it whenever the send\n  is not today.\n- `--content` is the **per-link** tag (which button, which product), so it gets\n  no date: `--content ViewMore`. Omit it and it defaults to the campaign.\n- `--raw-campaign` uses your string exactly as typed, for the rare tag that is\n  deliberately outside the convention.\n- **Not applied** to the agent's own auto-shortened links (minted server-side as\n  `ai_<org>` — a different namespace) or to `flowiq bc --campaign`, which names\n  the local `.flowiq/campaigns/<x>.json` file and the `bc-<x>` contact tag\n  rather than a UTM.\n\nWhy it exists: of 1,042 distinct date-prefixed campaign tags minted in the 12\nmonths to 9 Sep 2026, only **27 (2.6%)** matched the convention — 924 fused the\ndate onto the title (`10JunFathersDay`) and 5 wrote `Sept`.\n\n- **`utm_source=whatsapp` and `utm_medium=whatsapp_paid` are FIXED** (the dialog\n  sets them too) — a link built any other way stops matching the attribution\n  queries. You supply `--campaign` and `--content`, and they must be **supplied\n  together**: a campaign with no content silently under-tags every link.\n- **Dry-run by default.** `--commit` mints. The dry run prints the full\n  destination URL per link and whether an identical row already exists.\n- **A new UTM tag = a NEW row with its own code and its own click count.** Reuse\n  is keyed on the exact `(org, full_url)` pair, which is what makes per-campaign\n  attribution work. Re-running the same command is idempotent (`↻ reused`).\n- **Pasting an existing short link is REFUSED** (`chatcart.io` / `linklnk.io` /\n  `yapi.store`) with \"pass the destination URL\". Shortening a short link would\n  add a second hop and split the click count — and would silently keep the OLD\n  campaign tag, which is the trap this guard exists for.\n- **`--file`** shortens every URL found in a text file — the fast path for a\n  multi-link message body. It does NOT rewrite the file; it prints the mapping.\n- `--domain` picks the short host: `chatcart.io` (default), `linklnk.io`,\n  `yapi.store`. All three resolve identically — match whatever that campaign's\n  other links already use.\n- `--campaign` on **`list`** is an EXACT match, not a prefix: asking for\n  `13Aug_Seeds` does not return the `13Aug_Seeds_VM` rows.\n- Scope group `broadcast`. Audited (`links` / `shorten`); dry runs are not.\n\n### Keywords — `flowiq keywords pull|push|list` (alias `kw`)\n\nRound-trips an org's **keyword auto-reply engine** — the `keywords` +\n`keyword_actions` rows that fire instant replies / contact updates when a\ncustomer message matches a trigger word. This is the **safe editor** for the\nattribute-write actions (competition entries) that the dashboard editor\ncorrupts on save.\n\n```bash\nflowiq kw pull <org_id>                 # → ./.flowiq/keywords/<slug>.json (all keywords + actions)\nflowiq kw push <slug> --dry-run          # plan: created/updated/deleted at both levels, no write\nflowiq kw push <slug>                    # id-keyed upsert (never touches keywords absent from the file)\nflowiq kw push <slug> --prune            # ALSO deletes DB keywords missing from the file (dry-run first!)\n```\n\n- **Runtime order and collisions (0.9.8).** `kw pull` lists ACTIVE rows in the\n  order the runtime tries them (by `type`, first match answers), then the inactive\n  ones, and prints `⚠ TRIGGER COLLISION` when two active rows match the same\n  message: which row wins, and whether `allowed_tags` lets the other one answer\n  some contacts. `kw push` warns the same way (a dry run predicts the order).\n- **Schedule labels.** The keyword-scheduler cron switches `active` on at\n  `start_date` and off at `end_date` (every 30 min); the runtime reads `active`\n  only. So `kw pull` shows `starts … SAST` on a scheduled inactive row, and a loud\n  `⚠ LIVE BEFORE ITS START` on an active row whose start is still ahead (it is\n  answering now), or `⚠ PAST ITS END` on one not yet switched off.\n\n- **Identity = the `id`s.** Keep an id to update that row; drop the id to\n  create a new one; remove an *action* from a kept keyword to delete it.\n  A file id that doesn't exist for the org aborts (stale file → re-pull).\n- **Pull immediately before editing** — clients edit auto-reply copy live.\n- `text` is stored **verbatim** (byte-identical — required when the reply\n  must match a prompt quote exactly). `position` must be ≥ 1 (0 silently\n  collapses to 1 at runtime — rejected).\n- `field:\"attributes\"` actions are warned (full jsonb replace; constant\n  values only) but applied — this CLI is their only safe editing surface.\n- **Action types accepted** (all ten the runtime implements):\n  `send_message` · `update_contact_field` · `add_contact_tag` ·\n  `remove_contact_tag` · `set_agent` · `delay` · `combined` ·\n  `update_ticket_status` · `renotify_ticket` · `assign_chat`.\n  Per-type rules: tag actions need a non-empty `tags[]` (or a single `tag`\n  string) or the runtime writes no tag at all; `set_agent.agent_id` must be\n  an agent UUID, or `null`/`\"\"` to CLEAR the contact's binding (warned, since\n  clearing is easy to do by accident); `delay.ms` is a number ≥ 0 and is\n  **clamped to 5000ms** at runtime (Meta's webhook ack window) — a larger\n  value is accepted with a warning that the extra wait never happens;\n  `combined.actions[]` sub-types are checked and warned, not blocked.\n  *(Before v0.3.9 only the first two + `combined` were accepted, so a\n  zero-edit pull→push failed for any org using tag / set_agent / delay\n  actions.)*\n- **Ticket actions** (added 30 Jul 2026, for escalation follow-up buttons):\n  `update_ticket_status` changes the CONTACT's open/in_progress tickets —\n  `{ \"type\": \"update_ticket_status\", \"status\": \"resolved\", \"scope\": \"all_open\" }`.\n  `status` ∈ `open`/`in_progress`/`resolved`/`closed` (default `resolved`);\n  `scope` ∈ `all_open` (default) / `latest_open`. Appends the same\n  `data.status_history[]` audit entries as the agent's `manage_tickets` tool\n  (`by:\"keyword\"`). Canonical use: the follow-up template's **\"Query solved\"**\n  button resolving the escalation ticket. `renotify_ticket` re-fires the\n  human-needed team notifications for the contact's latest ticket via\n  ticket-tool `mode:\"renotify\"` (60s server-side rate limit; a resolved/closed\n  ticket is reopened first) — canonical use: the **\"I still need help\"**\n  button. Both send the action's `text` (if any) after the ticket work.\n- **Assign-chat action** (added 13 Aug 2026, for keyword-driven handovers —\n  e.g. a broadcast quick-reply button handing the conversation to a person):\n  `{ \"type\": \"assign_chat\", \"team_id\": \"<team-uuid>\", \"assignee_user_id\":\n  \"<user-uuid>\", \"notify_team\": true, \"notify_member\": true }` — writes the\n  contact's `team_id` and/or `assignee` (at least ONE of the two is required,\n  both UUID-shaped; `assignee_user_id` is the profiles/auth user id, not an\n  `organization_members` id), then invokes `team-assignment-notify` for each\n  target unless its `notify_*` flag is explicitly `false`. The notify fn\n  re-checks the org's team/member notification feature flags AND the target's\n  own notify config (Teams page) server-side, so a target with notifications\n  off is assigned silently. Also editable in the dashboard (Keyword Actions →\n  action type \"Assign Chat\").\n- `action_config.link_preview: false` disables WhatsApp's link-preview card\n  on that action's text send (absent/`true` = preview on, the default).\n  Passed through verbatim; also toggleable per action in the dashboard.\n- **`action_config.when` — conditional actions.** An action only runs if its\n  condition passes, checked against the **live contact row** when the keyword\n  fires (no tag to maintain, nothing goes stale):\n  ```json\n  { \"type\": \"send_message\", \"when\": { \"field\": \"email\", \"op\": \"is_not_empty\" } }\n  ```\n  `field` ∈ `email` / `phone_number` / `full_name` (allowlist; `city` was removed 03 Aug 2026 — contacts has no such column, so a city condition could never evaluate).\n  `op` ∈ `is_empty` / `is_not_empty` / `equals` / `contains` — the last two\n  need a `value` and are case-insensitive. Rejected on push otherwise\n  (V-21/V-22), because the runtime SKIPS an action it can't evaluate.\n  Typical pattern — one keyword, two possible replies, tag either way:\n  ```\n  action 1  send_message   when email is_not_empty\n            \"I've got your email as {{contact.email}} — reply YES to use it.\"\n  action 2  send_message   when email is_empty\n            \"Pop in your email address to finish.\"\n  action 3  add_contact_tag   (no when → always runs)\n  ```\n  There is **no dashboard field** for conditions yet — the UI preserves them\n  on save but can't edit them, so treat `flowiq kw` as their owner.\n- Scheduled keywords: the keyword-scheduler cron reconciles `active` from\n  `start_date`/`end_date` within ~30 min of your push.\n\n### Messages — `flowiq messages pull <contact_id>` (alias `m`)\n\nRead-only pull of a contact's `helpdesk_messages` history. Anchors on the\nNth-most-recent `user-*` message, then grabs every row from that anchor\nonward (all sender types — bot-*, tool-call, member, human-*, broadcast,\ncall-*, system, etc).\n\n```bash\nflowiq m pull <contact_id> --count 25\n# writes ./.flowiq/messages/<contact-slug>-<org-slug>.json\n```\n\n`--count` defaults to 25, max 200.\n\n**When you ask for more than exists, you get the WHOLE history (16 Aug 2026).**\nIf the contact has fewer `user-*` messages than `--count`, there is nothing\nolder to withhold, so the pull returns every row from the first message onward\nand reports `reached_start: true` (`user msgs: 1/25 requested — that is ALL of\nthem; this pull is the entire history`). Before this, the anchor sat on the\noldest inbound message and silently dropped everything before it — so on a\ncontact whose conversation OPENS with an outbound (a delivery notification, a\nbroadcast), the message that STARTED the conversation was missing while the\npull still printed success.\n\n### Audit log — `flowiq audit [org] | audit show <id>` (v0.3.8)\n\n**Who changed what, when — with the full before/after content.** Every\nmutating CLI action writes a `staff_cli_audit` row server-side: the staff user\n+ key, the endpoint + action, the org / agent / target, the CLI version and\nIP, and the complete prior + new state of whatever it changed. It's what makes\n`prompts history` / `restore` possible, and it's the answer to \"who pushed\nthat?\" and \"what did this look like last week?\".\n\n```bash\nflowiq audit <organization_id>                      # recent activity on an org\nflowiq audit                                        # across all orgs\nflowiq audit <org> --endpoint prompts --action push # one surface\nflowiq audit <org> --user matt --since 2026-07-01   # one person, one window\nflowiq audit <org> --status blocked                 # attempts that were REFUSED\nflowiq audit show <audit_id>                        # one entry in full\nflowiq audit show <audit_id> --content              # + the before/after payloads\nflowiq audit show <audit_id> --out entry.json       # dump the whole entry\n```\n\nFilters: `--endpoint --action --status --agent --target --user --since --until\n--before --limit` (default 50, max 200) `--json`. `--since` / `--until` take a date\n(SAST day start), an ISO time, or a window like `2d` / `12h` / `2w` (0.9.8). A\n`--limit` above 200 is clamped (it used to fall back to 50 silently); when more\nentries match than are shown, the header reads `200 of 1,044 matching entries`\nand the footer prints the `--before <created_at>` that pages further back.\n\n**What gets logged.** Every command that CHANGES something writes a row —\nincluding two that were missed until 4 Aug 2026 and are now covered:\n`flowiq test` (it creates the test contact, can re-enable a contact's bot, and\nclears the conversation) and `flowiq auth refresh` (it mints a new key and\nrevokes the old one). Reads and dry-runs deliberately write nothing.\n\n**What is never logged:** the content itself. `messages` / `export chats` /\n`shopify` / `woo` record *who read what*, never a copy of the conversation or\nthe store data. `flowiq test` records the prompt you sent, the tools the agent\ncalled and how long its reply was — not the reply. `auth refresh` records key\nids and prefixes — never a key.\n\n**What's captured, and how much:**\n\n| Surface | Action | Content stored |\n|---|---|---|\n| `prompts` / `questionnaires` / `fine-tuning` / `knowledge` / `custom-tools` / `keywords` / `flowmod` | push | **full before + after** |\n| `custom-tools` | enable / disable, **blocked** destructive push | full before + after |\n| `agent-config` | config | before + after snapshot + the changed keys |\n| `agents` / `org` / `meta-templates` | create | the created record / submitted request |\n| `messaging-webhooks` / `webhooks` | push, reconnect | full before + after |\n| `popups` | create / push / duplicate / delete / upload | **full before + after document** (popup + webhooks) |\n| `pinboard` | push | full prior row + the new one |\n| `agent-updates` | resolve | prior status + the client-facing note |\n| `broadcast` | **send (committed)**, retry | the exact payload sent + the resulting broadcastId |\n| `segments` | apply / untag | the batch tags + their contact ids |\n| `tag` | field/cohort/segment/attributes/messages/remove | the tag + the exact selector + counts (not per-contact) |\n| `contacts-upsert` | upsert | the upserted rows |\n| `agent-stress` | cleanup | the deleted test contacts |\n| `messages` / `export-chats` | read / export | **metadata only** — who read whose chat, never a second copy of it |\n\nNotes:\n- **Dry-runs are not audited** (they change nothing) — but a **blocked**\n  destructive push IS, with `status=blocked`.\n- Listings never include content, so they stay small over 95k-char prompts;\n  `audit show` fetches it.\n- Payloads over 2MB are stored truncated with a marker rather than dropped —\n  an oversized push is never failed by the audit layer.\n- An audit write can never break your action: it's best-effort and swallows\n  its own errors.\n- **Read-only, and there is no `audit delete`.** An audit log you can edit\n  isn't an audit log.\n\n### Webhooks (Shopify/WooCommerce) — `flowiq webhooks pull|push|reconnect` (alias `wh`)\n\nRound-trips the **inbound** Shopify or WooCommerce platform webhooks (the\n\"Active Webhooks\" panel on the Configuration page).\n\n```bash\nflowiq wh pull <organization_id>\n# auto-detects platform from the org row\nflowiq wh push <slug>            # create any topic in the JSON not currently live\nflowiq wh push <slug> --prune    # also delete any live webhook not in the JSON\nflowiq wh reconnect <slug> <webhook_id>   # WooCommerce-only: flip back to status=active\n```\n\n- For orgs with `feature_flags.ip_whitelist === true` (e.g. customers on\n  Wordfence), all calls are routed via python-render's static-IP proxy.\n- `--prune` is **direct-mode only** (python-render proxy has no delete\n  route) — on ip_whitelist orgs prune prints a clear \"delete via store\n  admin UI\" message instead.\n- Reconnect is WC-only. Shopify webhooks are always active when present.\n\n### Messaging webhooks — `flowiq messaging-webhooks pull|push` (alias `mw`)\n\nRound-trips the **outbound** messaging webhooks in the `meta_webhooks`\ntable (the right-hand panel on the Configuration page — these tell\nFlowIQ where to POST when a customer messaging event fires).\n\n```bash\nflowiq mw pull <organization_id>\nflowiq mw push <slug> --dry-run   # diff preview, no writes\nflowiq mw push <slug>             # FULL-REPLACE: deletes every row, then inserts the JSON\n```\n\nPush is full-replace — if someone added a row via the UI between your\npull and your push, it gets wiped. Pull-edit-push within one session.\n\nValidation: `platform` ∈ `{whatsapp, web}`, `type` from the per-platform\nallowed enum, valid http(s) URL, no duplicate (platform, type, url)\ntuples.\n\n**Auth fields (19 Aug 2026).** Each row also carries `auth_type`\n(`none` | `bearer` | `basic` | `api_key` | `oauth2_client_credentials`),\n`auth_config`, `headers` and `secret` — how FlowIQ authenticates when it POSTs\nthe event, plus an optional HMAC signing key. Pull returns all four; push\nwrites all four.\n\n**Because push is FULL-REPLACE, a body that omits these fields STRIPS the\ncredentials off every webhook.** Always pull-edit-push the same file; never\nhand-write a push body. The dry-run diff includes an auth fingerprint, so\nchanging only a credential correctly shows as `to insert 1 / to delete 1`\nrather than \"unchanged\".\n\n```jsonc\n{\n  \"url\": \"https://middleware.example.com/notification/log\",\n  \"type\": \"sent_message\",\n  \"platform\": \"whatsapp\",\n  \"auth_type\": \"oauth2_client_credentials\",\n  \"auth_config\": {\n    \"token_url\": \"https://middleware.example.com/oauth2/token\",\n    \"client_id\": \"acme_flowapt\",\n    \"client_secret\": \"…\",\n    \"scope\": \"notify:write\",        // optional\n    \"client_auth\": \"basic\"          // optional: \"basic\" (default) | \"body\"\n  },\n  \"headers\": { \"X-Tenant\": \"acme\" },  // optional static headers\n  \"secret\": \"…\"                       // optional → X-Flowiq-Signature: sha256=<hmac>\n}\n```\n\nPush refuses an `auth_type` whose credentials are incomplete (e.g. `bearer`\nwith no `auth_config.token`), because that would make every delivery fail\nclosed — FlowIQ never falls back to an unauthenticated send.\n\n### Popups — `flowiq popups schema|list|pull|push|create|duplicate|activate|deactivate|live|delete|upload` (alias `pp`) (v0.9.0)\n\nEvery popup in FlowIQ — the ones built in the dashboard designer and the\nones built here — is written through ONE endpoint, the popup service's\n`/api/popup-settings`. That endpoint owns the validator, the write rules\nand the schema; this CLI holds **no popup logic**. So a popup feature th","readmeFilename":"README.md"}