{"_id":"@tenonhq/dovetail-servicenow","_rev":"50-45d924924453175bf530786bcc461da5","name":"@tenonhq/dovetail-servicenow","dist-tags":{"latest":"0.0.47"},"versions":{"0.0.2":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.2","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.2","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/tenonhq/dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"f4848f96b23259c8fbafa9466d46081d02882b4a","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.2.tgz","fileCount":16,"integrity":"sha512-nB1hQ6MVYAvbKCBIAPuwYGlV8/Xeior7ISdtXb5SHeZSHCtRmARAsgWeXN06lEn45lf6Z8BVsGko0DAxIOckGQ==","signatures":[{"sig":"MEUCIQC4TIcuHvI9dVY0FWJF67J9yVycJ/U+R3WraBDpLDJ6uQIgdv6OKwM8fK93cpNcsryJPZT77b+OjchOIlml0+wvOhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38363},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"dman89","email":"daniel@danielcudney.com"},"repository":{"url":"git+https://github.com/tenonhq/dovetail.git","type":"git"},"_npmVersion":"10.8.2","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.2_1778533004165_0.8317796214677287","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.3","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.3","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/tenonhq/dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"3b62e77e89b5bcfe04a6b596b45bcfdefc91348a","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.3.tgz","fileCount":54,"integrity":"sha512-9hxx67STvfdVs89BPmEAh7up3AoCi9dKLR/iSp3GcpopuJ5ATqLiFvsv3ReMJiExc17OrJXAEWb3aTkP4R+4YA==","signatures":[{"sig":"MEYCIQDuva9Q9IUMwogYWRJm4ekarxFgISDglwn4KLHL0fvLXQIhAOIJgOYkdHNdx7wfQBYqsS9UT6lZ4FGgi5H6H/WLAC15","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199970},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"7dd0d517bf0cd1a94085cc22590c64cd9d195e85","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"dman89","email":"daniel@danielcudney.com"},"repository":{"url":"git+https://github.com/tenonhq/dovetail.git","type":"git"},"_npmVersion":"11.12.1","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.3_1779156225857_0.5267552484413107","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.5","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.5","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"6a45a6b46c7228973f229306e925cc3eac98fa6c","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.5.tgz","fileCount":54,"integrity":"sha512-a7VQUKrz0dWrhN7kMBm3WlQSgVXGtZE1TTq9TAKrhtRbzWQ08jurRUo8loFqju9PVn9EA7P2pM3Ef3l1J0d7zA==","signatures":[{"sig":"MEYCIQCV2O4mwbdzbKNTR1KKzycGslC+ZHMVtB+nSxwi3W27lAIhAKqnazaiDp/rpaOGHAPzU9CqRy8CFLvAKTerCRUQu5pw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200049},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ee8ad2dcf039039de674a7dd0d83c08e856c5ad7","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.15.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.5_1779777898278_0.1886479469835043","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.6","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.6","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"2e09c604db2807c816d40629003691e94c035cc1","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.6.tgz","fileCount":54,"integrity":"sha512-0CtdNckz55Th/HdYhz6JjJXV5C411eKdJGZoa6lC+uGl/jmkSeVaIJDS31/l4C2HJ6eTVaa8mkuatC0kFTrn/g==","signatures":[{"sig":"MEYCIQCtU8KC1gYaFoBj0F2HT8TmivS6DF7mZ3TGI9g2GWliNAIhAL/yhRCiWXAhlTwPnetTgVGir61g4RSM2nFFFytplpwR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200049},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ee8ad2dcf039039de674a7dd0d83c08e856c5ad7","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.15.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.6_1779778486259_0.20239343364641238","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.7","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.7","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"c81f4898f5ad84f0e875a3826b0abe560dfdc89c","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.7.tgz","fileCount":56,"integrity":"sha512-KvdAYbfXem16qFnzOi6fJIfm2MGNOZdlMZFi20AVHWm5CxmVKHlXEHJ7JfMmL6lT7KJzrkI1qxKPYAvwidKCQw==","signatures":[{"sig":"MEQCIH4bwvQop9S2R/gMsEF2XSsPr/VHNGjX83fwS8VsAQyVAiBf1BKtGtJQb+GQkKodqeZQV79Xk2FQHobI1Bw6D02/Hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212518},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e8ca39a8b45280ed09b93c3d37c54bd0b538cbc4","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.7_1779941044258_0.5229708121156131","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.8","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.8","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"6c2d8626d7936c14d3d54139bfbcdf83c0fcb1cb","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.8.tgz","fileCount":66,"integrity":"sha512-tBpavlN12XG2nSl95Sf07WH6uv4gkT3sP+84Ncrlm2wfaQ2+uB/P8ankzzZJ/A3syIAfRrKYqRzAFaapmNDshw==","signatures":[{"sig":"MEUCIQDDyIZsVniXTFAAuBr0A1rxCfXMeB/BbpWKtTCwTusKggIgKBUiDNCMjfuUiYQgwzZpUsXDQCYlrRYoKwUCGfVxJCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":277173},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"41b87ff39f4dcb7f6fd5bbbd3d3d26446d450bc6","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.8_1780196876657_0.1309389628184101","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.9","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.9","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"4f3767ebe3fdb3eec381563e1026b9949e61e416","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.9.tgz","fileCount":68,"integrity":"sha512-Q4Fh0fbN0xoi2L/YXEOWJ1+Pyx1ONOr5TPhBCF33SLvZeiesbpkJgrl5yaTj0CgewbEmMlf38lWG7zwYsI6rYQ==","signatures":[{"sig":"MEQCIB3VB8/v70HRYoyjqYkkdAGu/+BEFQ/YAISiEYosD6wmAiAhPFBW1xXDt+HfuKNtBMhjtw60K11RBJNQZZE0wtUdjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":292991},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"6e62bec706d10158b1f1496e3e2246a927c1c0b5","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.9_1780246359841_0.3105258989304909","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.10","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.10","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"660044d4dbb44c4f6571de23c948bbf7d1adba1a","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.10.tgz","fileCount":68,"integrity":"sha512-4JTr2xagjMT47bTBlUtHmMRmrRo9MNkCpk5bf9k+EzQyjUH1aViENTRkcgDY2R/rJXz0u80MSSojHzuwJeQjog==","signatures":[{"sig":"MEUCIEW260J81cqu+V0wlTLk1L1IPyrrQ+9QWEl6Y6MAeZOaAiEA3swemEEVxY/UaX7oFE2UpptQbLTtQlUK5MvYqCb5fGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":293130},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"a3ea5ead48b0bd4c324e0847e7e768a43520c7ec","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.10_1780349278043_0.04276629772871221","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.11","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.11","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"9cc9b0a09e8bc096895fe945eb2aa70d5b46f11b","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.11.tgz","fileCount":70,"integrity":"sha512-kH69+mRcw+4ort+NYlnzlh1usswUklJXA+ftDh1nz1+gwmN9Q30+Oxc39vyA48AX31cdmie12iuQmF+/3VwSNg==","signatures":[{"sig":"MEQCIEV8JsyFrsCHvDbF8jTkT/BN4YjqJwn7neocjpIiQ3MPAiAK2kNsFpbO4REwiIjimgRuAAS9G3CPHbHTlrhp0aRMVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":296465},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"53e6c2961c450156b64f19cdbaa16928b16fd4f1","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.11_1780416135574_0.05478743562263921","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.12","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.12","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"3dfca35934cdc0c55a54a8316df79f15a3d7ab2a","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.12.tgz","fileCount":70,"integrity":"sha512-IupurBMerqcDX+q2tdgL+fVipUzZI1VGhoNyNGJPgPl8xMNrgoPcd2ypRitf6VvSJs3Qh6DIe80jpIFjK6BAaw==","signatures":[{"sig":"MEUCIQCV2MmchmZIWw3djj1rrVVoDLVw057At259XlJpTyOgMAIgHaLn9aRA71BQvT2qdQUMExMOzlhgpEJiB5Ut1QgBPY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":296465},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"73ad931dbda5cdf85d4bc91307a17eb4d08de3d2","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.12_1780416402345_0.6221358991423627","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.13","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.13","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"2cd9152da56665c91a7792b949a809155b7be3fd","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.13.tgz","fileCount":72,"integrity":"sha512-kvoW+Cg0AaA/hT6rfVJze1IJKY87l6X0FjJERk3oDSAZIem5lcQvn4XCVjDtSAwwdpsAnzVKG4AxskJd0kcxzQ==","signatures":[{"sig":"MEQCIEvZ9bH7rOvzaq2pGcpn/XjGUeaE9sDmJea7UGa1/rWZAiBRjzl2MQ992VPUyHYcP48z+PGs9a11iBLKg9IQmEzLWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":323792},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"db8fddb963948f013aacfc6f67b26773234ef39d","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.13_1780419662618_0.49504276840192474","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.14","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.14","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"a280dd7de5da0275486103ceeff239eb884ad1d7","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.14.tgz","fileCount":72,"integrity":"sha512-QYyEEPesrpHV++WeM9zmMW4fOcvH0yaumFONq+ZIY5rJsbbv3C18Np03NrQ8QfzSlB69mbvI3PVWIaFwY/wWVg==","signatures":[{"sig":"MEUCIEPfozPALEfMBiTUJHw8DE0EPEkVr+VArdCKYLKfmkZuAiEA1okao+Vie14Vo6U3eWzSfF7TlIRhj0ZhM2d9lRPsUdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":323820},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"44e5c84b85007cf6e9223b279ff79afd5319c5ab","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.14_1780563400191_0.7474438050875365","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.15","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.15","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"a6e11f7aa9a4472850a6aeab386228b680cadcd7","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.15.tgz","fileCount":74,"integrity":"sha512-rEi1WkaK4phAFzZRcBFDZDfvu7NNc/w9kJ9GzeS7a78QmNN/QBCrcs1EY1ardaf0etNZNcGOUP/wlwObC7Z5fA==","signatures":[{"sig":"MEQCIGJLcBaiVibOy4uCf5RiwhqpQ77PgngBJK0o0g6AKLluAiBEjBleijUQel/yKaE3GZU8bN2lJjMUHILsaucQahUDkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":340754},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"d46b5bd2dce0fb3b13f0d1d5933f88d1d421b550","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.15_1780611409916_0.7656396823460985","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.16","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.16","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"976806fb0a2b73905102bdd9702c0fc87032f35e","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.16.tgz","fileCount":74,"integrity":"sha512-+dhaOt97B640Q6CfYHldSu67L0XezulwxgsgtaTdbjMN/rNbq/P9Ilg2oTdh3++tx3CTNk9e6CijyWqmcPuoeg==","signatures":[{"sig":"MEUCIFZIBsoxLPM8HWYtuySz30dZl8JVernyQCtwKBnFpWSCAiEAjhKUSIFU8XUKo3CqditTv4A5xRN1Wfim6N5dfRY7Nzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342608},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"fd0a1e07f570dfbb06854771563cd688a368efda","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.16_1780705078279_0.6022203928095693","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.17","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.17","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"177d55320954528da1fb5e04ea0464b743cd62d1","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.17.tgz","fileCount":74,"integrity":"sha512-1ZLCxJkUPA6Tunk7rY8DohXB5pqhwPIagqkuczFGYYPZhFulzuKdymOHf4lVWeGMXUd9fD9AE0RP+w7GlmROZg==","signatures":[{"sig":"MEUCIDWiErKaBlQmbg9e0wyeZTeJvZ3jS+0ZlkKnt7tELI/uAiEAiv5IfvGRMkrRvxgAsyPhX3y6Q188Fdxl//0SNVIki8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341401},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"8cdb950828752d028b05790bdf855e931b7d6bf8","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.16.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.17_1780712221630_0.25161495867000716","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.18","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.18","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"d239bef0dd17e1521bd1a2ae0d5bf97e6af96345","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.18.tgz","fileCount":74,"integrity":"sha512-3OfLivNVJ/MLzOF2dHHOlcb1eP8KcmjC2pjKe7o0VxlQ0an4KC0gHmVsHdCFOJh3rYZtuNgYaErNk8dEaoqwIQ==","signatures":[{"sig":"MEUCIAVwVIRH8cjLS0f/frI2WARD+gt9OVP5wcTGLNICW9Z2AiEAhJG2Y/eksBdQC+TQ89cUscgdTspFtBOe2wxI8uJnjf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342244},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"cc05fcfd13ee1a8b3d13a2969a7de33d39345d52","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.17.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.18_1781380936211_0.2192044109761353","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.19","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.19","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"251b60b44c58d9b77e5ac1d646fc9bfc3ef9901e","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.19.tgz","fileCount":84,"integrity":"sha512-ub73bxb3OFKmPIt3TEFRkGGVkYXGvM+Ci6heJOiam6Hsqaxxk0H/Cx3zPmkq2M+gSTiiT+DRGnQmyu1xfZAMnw==","signatures":[{"sig":"MEQCIAu1dPB7v7nnawineumxUEtyWFk/9ZuX0+KhmD42c5rcAiAB3x6H7nMl1Q82qL80JBMxKXNUqsgq0f1Qu4pVgaLMeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":401200},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ee455a7c95161ac21f6013be5d98ae04901b2df1","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.17.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.19_1781387230661_0.4215165469493116","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.20","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.20","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"fe444d6709573cfccd31b2d14406994aff414757","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.20.tgz","fileCount":84,"integrity":"sha512-wQWusIap/CB9+uVNDm5bu17r+jDIW8empi8OF5iVLeT/swxkOaO7xoBbRuiRqe6SLkmBJP+0G3XWfM37Vofxaw==","signatures":[{"sig":"MEYCIQDZyi3fOSWu9Bq3zdIaZ/XAYexxiMS9B15iTAYQCeBxUAIhAMvUKi6SYYSOamgGrY7AGY6wyyJs7DtLKCImLTlNlKbH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":411905},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"41295667a526f32eb7a5763ec1b416c19ef49bee","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.17.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.20_1781395684722_0.8084106584752135","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.21","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.21","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"18fd1ee8581bc4c8c0d28a60f4c3d5e0ab0ce717","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.21.tgz","fileCount":86,"integrity":"sha512-h1fTRMNDavXAi1ITMK3rOC4b6wR61fs2XCU8Vm1Fya3ISIGSgPpyrA4aI35YUs6mzURhqXFcz+ROcOlbCYu/sA==","signatures":[{"sig":"MEUCIAh9PLIPvx+KHYgyBj+HHG0SqMSG8Klapg1Mbn679PGZAiEA+xUUXx0nHS3UHoCJk02g/0X35qVnGf1F9QKtIRygLDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":417184},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"51e4e4592d491cd337f5bc1aa93d04f582f555a1","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.17.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.21_1781546351179_0.643128805627436","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.22","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.22","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"f5a9ee65f5e94905876ba413fb8fde4d500159a7","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.22.tgz","fileCount":88,"integrity":"sha512-HDPJ+RAAcsaoDx9pBiSwi/lOoG+8Lcgedaa0XZ+WkMr6q3rkpOQBatmdV3B72iZjUPlmCZp4jOW1IOxNr/cgxg==","signatures":[{"sig":"MEUCIQC37MRDL/LNfuoiB+u5qYU3S/3ZP3mmjlBOsG9s+QdvsAIgdZLijqhDQfudY4UeQZTok+p30oQwVpgMwpvKFF/dZ7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":449608},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"073dad48a5d534f489a0906db083e97462ec76fe","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.17.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.22_1781859570645_0.34860106840238925","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.23","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.23","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"d38de9fc1a4a2d03e9eea56030a996b98cd17a78","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.23.tgz","fileCount":90,"integrity":"sha512-1af0hC44vw5wUp9NS/flSRyE0BJyvuqUqhfzzxKMzsCTqBnO5m8j//HgRj1A0A9WWrSSSXxLQUGZ4rprmdFchw==","signatures":[{"sig":"MEYCIQDwJNfqVOgmTdkLKQkfNExGGq2hU8t+2whZSWPwYl9u7AIhALgnwk5fzKQPCFPfptvleFuXMfutbs14Ija03gCVdhlU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":485544},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"c961103c74e16cc290ceb6a01738e2feda884e5e","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.23_1783117011724_0.011408330409280687","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.24","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.24","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"86281f9120ec7a53260744783d88634b88fcf7ed","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.24.tgz","fileCount":94,"integrity":"sha512-2JPX3Av4MiM+GB4tekFJvfJotwGOxChAayaODprBFA83lIgJoOnPU36LpOfj6UP28Xv+qSboQQXh68QLvo76gQ==","signatures":[{"sig":"MEUCIQDy7ahCkY3ZEKNzQx5T6o3fgfUr7t9Sry6aKk8ZBCHRNwIgQpeSQ8QjeiPdwaM5Vn+8jERUrPhxRFoKLs+CmcBvqjs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505077},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"bc5dd5ff79aaa7d9f34192aaaac43b4fefcdb76f","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.24_1783506174677_0.6311417294713175","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.25","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.25","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"11c782eff6092f2225d18a996681288dcfe1dfe9","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.25.tgz","fileCount":94,"integrity":"sha512-WNJhqIfIwyBuRDp8tsMQGUVxggAWFgdNRrl/YocSEf8/gQC3LbpQpM6tTrtHlkqrXB8iYGdxIWw/EX7RMQ4Jpg==","signatures":[{"sig":"MEUCICU0/5KZCojIoAIiljYipMVhCOq3wDL0QoMmbqKK/IePAiEAnFZBF/eopu/5wsVyExV6c1uy+V42hnHctV8Tacaa1Gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":514506},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"d25e967114440f17ebac4f182b082f7c62bca78c","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.25_1783506837024_0.4488397732507732","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.26","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.26","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"2020d948a0e6d0dabaf926fefae6597f9e712cbd","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.26.tgz","fileCount":96,"integrity":"sha512-ZIqXwowdjXq7igasdPSj0s0dS4jxQGVpOYX3U0GN61hH0z4Qdv7tLINzU3TSc1LhB4Sf1tG+DfolQw6pbA8+Cg==","signatures":[{"sig":"MEUCIQCQ5s9lj32BMrpK9ZJp5h4biZsQ5O9NNgccX0O+37AIoQIgROKx+3dmaSc9uCg3qV0C0Pex4FkxqMmANlbVfXDchMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":533804},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9b3b58b8fb9aa53b32473c8c7711446f5a52a576","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.26_1783700862808_0.8042034779709084","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.27","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.27","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"ce2f5bb6d6b7acdf12a0e5036dcebe73dc773962","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.27.tgz","fileCount":96,"integrity":"sha512-ExO3WbmRclcePLpZpUqB+AgJERSLDcFigWK7l3/Mp8lKS3ya3Cv1jgfd2IzRLzxDEsmK1t5Qo0FXVdc6XPcZsQ==","signatures":[{"sig":"MEYCIQC63pUJXWBW27Po+UatApoQdsUDutG7Vq4E/gDcL7/7uwIhAPKWQMCrX1R29vmIETGyFUZjaXqyClsbhtn6JGNsR8Uz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":541426},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"43d6c5124bec7e79537d8ad6364749f36c601d9c","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.27_1784060127137_0.8952874600709351","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.28","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.28","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"6354c9bfeafc5f9cdac4c3c410f2f1f448ee5aeb","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.28.tgz","fileCount":98,"integrity":"sha512-yhatKu+NqG0pO7+rumUU122llgpkjB4sRTPOeTmuLpx9ZUZBwJMCoaAQ0d81KSDFsVIu0HyA0JT70NG/mSnPHw==","signatures":[{"sig":"MEUCIGtU9YPckPko4kRPjFF+/41qHS1/PB/PRZ+9QlNb08PnAiEAhOG3+WWBfRWNi/LcEmpEeosU8I00oV56px90lxPz6/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":591791},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"a5aeaa3c3f56c0bb24de80f12808689c5987e457","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.28_1784060688027_0.4171673794360202","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.29","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.29","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"792ae99e7376769b5b422269197adbab16e94137","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.29.tgz","fileCount":100,"integrity":"sha512-ObQy7d33Mc6Htq0Pu0tEwrCtigxuIjp+KLSu1CcOyQ8sXw/pKNgQSLTbT/Qg/D0qFyjUgYjaFUMb0CatT3xGIQ==","signatures":[{"sig":"MEUCIBXzzXyKEQQYSNmalRcM/jMgZHeeaod8O6wgaPN0fyR8AiEAhtbuukO+GL9MuINk5FLyzFDYu2dZthcId5wFYQpkJug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":645511},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"6d7309949cc82ece927f9a4f61614ef4a23cc5ee","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.29_1784078154709_0.5154489962042481","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.30","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.30","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"2803d947f057cafe3dde7c0572a80ce8334667b9","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.30.tgz","fileCount":102,"integrity":"sha512-5qLdcHB3WGGgqgzeAeYYZJuWP3y7abIYAJRTLF/pYXzVa6HsNbbIWxwXG2SveLdrPxvrr1UXhWzPj21fJe/rjA==","signatures":[{"sig":"MEUCICoo6kKsWexdo6qvNiqye6w3dJJdEnJdalPDrMwgb7msAiEAuIAUPfaEgvZaWSSXXUtVcKTXb+4eLsSS+z0XWRnTLhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":653241},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"2977ae7b00bf62482f12d7a6ccf7b87babdbae21","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.30_1784083115656_0.7544270207058612","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.31","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.31","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"2003681a893c3319fefff9a5453e14dc8c86bcc0","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.31.tgz","fileCount":104,"integrity":"sha512-fCFKdUGD9nkdKOq7qeBbeta3Nc3Zw1YAwTlVWBEUZ2VFiFWO7jRzgY6QwMATb09BqUgFnc+0+a8ftg/xqtuErA==","signatures":[{"sig":"MEYCIQCkhqykv0FlE78twNZ/ZFa82wtg7XwvdbGHX9CcIkCf9gIhAL8dcXlwYx2uic9BmpFKQomy+IErZmr26jJG7jIfHm9N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":700364},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"b5ed021f27e7787fcec2898fa310cb1854ae4711","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.31_1784196215944_0.01973988348230815","host":"s3://npm-registry-packages-npm-production"}},"0.0.32":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.32","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.32","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"f5995bdf775c2aaea46e99519ad5fc25cfb76c0e","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.32.tgz","fileCount":106,"integrity":"sha512-qL+ZLupT/eF2dpk8mEkshL3mTnAhIIZVs5BsNeLdIFn+gFz1OBnN4Hl8hF+qWAVqYKzJafWfXKR089w1qm8xZg==","signatures":[{"sig":"MEUCIFnRplT0L7Ql6WBAHFrNHEdu3SwfdnFqle4a5r2SIWHgAiEAyPmY9D/SnfC1D8F5ub7r5oL/EKzLvctAt46wPcVjAro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":725519},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"3801815f1a20e0ecb5d9d737bd0e373b3b42c06e","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.32_1784684234376_0.9789341443729722","host":"s3://npm-registry-packages-npm-production"}},"0.0.33":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.33","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.33","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"083bd63c1179e94956f6059df9043895c8487909","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.33.tgz","fileCount":106,"integrity":"sha512-ansV0pShmTBRfh1KqcJHun30wKUpf6ZB9HjKkinp1UI+FjkvR6ZIgIB91KLQ1vljuTCh/5ySHwH5qSPefbsyzQ==","signatures":[{"sig":"MEUCIQCjCclQX9OFWBzfVoviiX1TwObRG1LH/BnToLbt9kVwmAIgcrmAxw7PVWhpHkWrwpFArht61dBD6/uzEpeKNY8gRs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":731613},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"0f9f2474767068386ada16a839ed7072688354be","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.33_1784753687506_0.10522134609728928","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.34","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.34","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"1a7ed6f49a5cf1d1a7592086daa0580bd4ee91d2","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.34.tgz","fileCount":108,"integrity":"sha512-8EiHoGpTtZgr7MqLIBKA5V+cN9ImgLOo8uhCElm3PGsFQRKsN43s6TqmHhz6948S5XUQNmiVwAnarU5Z3J55sQ==","signatures":[{"sig":"MEYCIQD3z5dwsy3JdZi9RrICTTeEzd0P1FRtBs9r9PYsCksRUgIhAJI1AAGEOb0qRcBwmoDzFWRSu8MNLfYvqK9WKhIdslaj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":776639},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"864b065152544e200e09e3d5a726eed13d810d43","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.34_1784818988374_0.10883525648783077","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.35","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.35","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"daxog","email":"dawxiog@gmail.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"a2b3ca8a201f61b872d22b63377b5e9f2d453f50","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.35.tgz","fileCount":110,"integrity":"sha512-/3MQGJOcHo++bHd3l2lqAv1QIWh8wuzuf2dfNR+rWq3F5sLaHknmTzhgQCtuLZt2ql3/ahnVTFPKMh3+GqGTcw==","signatures":[{"sig":"MEYCIQCDd4W0zH7P/zDbmcAftSAtwMXuClsZG5dccn5gLwDK2gIhAP4Lwhm7C+eQF0y2PMpjLjzNEgTnrDsrzWmthwSyJ3kJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":817565},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"44c5d85d6b3232119e47397da43344b4185f94ff","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.18.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.35_1785276410745_0.04398458334662658","host":"s3://npm-registry-packages-npm-production"}},"0.0.36":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.36","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.36","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"eaa214c740651862e1e6484d1645bc5b8293de78","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.36.tgz","fileCount":110,"integrity":"sha512-ItMi/bfVvaGtGcKGwRhRq3h19eTUg2xHhUTe8/ZeNeqnFYW3OfR2RGhtE+pjnpgtjuXE7rC6nzc5ENZ/f2vT5g==","signatures":[{"sig":"MEUCIHm0APaVvg0tj37FgHSxztAdT1hHRbDUlwLTj1q82Nu4AiEAmlIRn5jo3/KXnAlbJCCb5po3J+kJCgBvl9+iJ3mQ+fQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":819875},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"81ab50a4e0fc105445ffc6d6983bc93a1483859d","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.19.1","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.36_1788211983811_0.6204072222096793","host":"s3://npm-registry-packages-npm-production"}},"0.0.37":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.37","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.37","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"39a3260b4de2f9c9d81f40124b04db4f1da41608","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.37.tgz","fileCount":112,"integrity":"sha512-9Vhm6/+uMOqZ4tL78wMM+pyf8PMQOMr5xkzApACgyhS9zVEnT0rLtPJdaX+1nG0gy1ab096P70JKkG/G3s6ZtQ==","signatures":[{"sig":"MEYCIQCgEwD2In/pFfvfN0tGWha+kKd8/OMgypm4CE5S9Q3psAIhAIgvTUSM3/h0XmZo4QWXwMzenu6AhT6OgRSxtkVe2wuR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVKIMLfcSXpy2SkF743kd03mnipD/IhHyoFzfBc6JC4gIgZRqBvEpI8b9FfwRmTZIIuxIvXUlK7bLwsm69XlS1/tQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":868630},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"420fbbb20842c3369ed85e9b3325fd1ead989540","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.19.1","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.37_1789512297786_0.1914509993680349","host":"s3://npm-registry-packages-npm-production"}},"0.0.38":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.38","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.38","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"c23a131652c8a89252a500de33654d311b55c2d6","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.38.tgz","fileCount":120,"integrity":"sha512-WRtenM5p0G2LFWLKmS3AJrsE1/cnetOYT6PQnYHEC5/05uLXQIXNNb+zbVqmn3Npxg8KrUh/A3Jy/CacRoj9RQ==","signatures":[{"sig":"MEUCIHfIyrDRWXquVZrYyUTfK6/hy7/uWPbMlsBbxGu/BGaAAiEA9er+cjhO7Z3//N6G53kIoHrmJUlK3e1ldXovGYx5sHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICecCwIgyUt/JmVl45Kxsj363/MlGiWfQCXeReMSUb5zAiAOtwDWS3L1GNBBbocCHqa7Z3Kkw75ItfRrburX+5FNZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":985201},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"925c0ca40cc6407fa78f28b25b82f8dc0fbd460f","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.19.1","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.38_1789515258688_0.1395582722965194","host":"s3://npm-registry-packages-npm-production"}},"0.0.39":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.39","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.39","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"fdf495af8ba818f2bbc9772c96d7d74e5fae2fd5","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.39.tgz","fileCount":120,"integrity":"sha512-GkbU7N6JqWCFuJSmtZMUuHb68H56usDjGzfZ3B9Kj1xt+aEOHoLQKI8QRr159eqsb/wsbnDNRvBiqol+7KEIiQ==","signatures":[{"sig":"MEYCIQDYkcOC4KvbjASXzYOaqbg5pG7J7++y4HdIJUwRrC1msAIhAOAbDbJnwjDDnq9tcbLvLDwcGtvo/gasMyilfItVHcWL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH5X//jp2GM/z4wWfbZs6NMEpZoYoWMapbyauy0PCXf8AiEA3glq3eI0GPwLArJOCz1bPN8mzlcPjwdSG3Tmu1mZilQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":990396},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"879558b83d9df06771841d9d217bfed74d4ee4c4","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.20.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.39_1790788572333_0.05294156349213197","host":"s3://npm-registry-packages-npm-production"}},"0.0.40":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.40","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.40","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"27a312b9d8c1fc00f0e3e24c68747c16e9cfa5ac","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.40.tgz","fileCount":120,"integrity":"sha512-v073OlXbk5KkzrQb0EHRr3ewnhiy9udn5EbmcszeLV2lfXhoqfuF47np/Ae/J/lM1Ldtp/9itFLork5OEuGl6Q==","signatures":[{"sig":"MEQCIChIusnRh87TZLrTPtAdK5O83a45irXL9iqquTcNua9qAiBZMpVY3yu1QiWFmcvi1KwpT84luSD1U4plfJtgYM3X4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGiUwSQsjpsU6EqhzG4zHb4lCQvCfZ2MiarAj19SMLk8AiAaz/qx9DRYn2l1bssR0nJT+bGuBUHzrt4KzZxigeo2qw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1016632},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e36a85dc73cbec978794c19cb71f5b9a3811ca4f","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.20.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.40_1790791696600_0.1763449687104155","host":"s3://npm-registry-packages-npm-production"}},"0.0.41":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.41","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.41","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"71c35868dfd7e0fbb1a1cbfbab67bdc78c9fa31b","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.41.tgz","fileCount":122,"integrity":"sha512-FnWn7UixeGbUmcNEu6ekl1pxGWz8LDKdzMeRi8zlf17wRO5A7WOESCsGgHX9vgVbQ4PlwzWwbiE+Cyt6X6Jv7Q==","signatures":[{"sig":"MEYCIQCHsvcx6jF0nKTDIZ46MPn5LtLjwqx/fWhZWy40eBdL3gIhALqvwlkZrTmbicwxjw3xOBU+Fws7VJ8Ho4LMcPLUSG6X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDq+SXcP/urrPppy5TiLWuUFc4/uc5e1NyTWo0AOoOZyQIgOTIUXEe+7wb2BPHjB/EqxPexxwYJP6i65N+dfapU5ho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1078663},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9b9ab2c74484de1a8192957732b9a86df8e19054","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.20.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.41_1790791965110_0.9844168094210617","host":"s3://npm-registry-packages-npm-production"}},"0.0.42":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.42","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.42","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"0283d90d58f9a8e791eed032c128f78680aceeda","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.42.tgz","fileCount":122,"integrity":"sha512-mEwMg2tG6SowSywEDtizfNXIzkvOj5t7VbWw/rDV0XlfFsbWdVub4pw9nh/qmqvBIlKd5Nv+FLlDQt0gr8VTEA==","signatures":[{"sig":"MEQCIH4HLxtuQW4qwnuU6BUpzvbFug/f0CeDXsE7Xu3KkKU9AiBd6mWTnZlxFs/pXpqunCvdK9bx1f0GW1J+shSVz0Vbmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH9cDW4PDKsr5Gtg48Yb6q4KEOsjMnskuESmubJi53LcAiAISqc6r0zu0BUU7OWDLEFYLMqvAggSMz5lYnPoqqYsWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1078913},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9006005a00c4ba9b4017fa5e5eb864f015985725","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.21.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.42_1790796542604_0.9810135791745433","host":"s3://npm-registry-packages-npm-production"}},"0.0.43":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.43","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.43","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"9504c50e68a2795caa0f66fe017bfc6984f7d68e","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.43.tgz","fileCount":126,"integrity":"sha512-mVd6qYk8yvl6yhUCgzNUYpiwpDK8c8iaoSdgn2Sv8fOZ7khVMbztyhqaRensOEPd82zakZv/i+/F2J1C9LT1Ew==","signatures":[{"sig":"MEQCIFWtu57RGp/xx3voAVpp6sfga0rkPFEHqh6RhMuE1Ov8AiBMPSR0uu1zYSN1IcAxznXF0LgmLcgv7WjXtX71OJmPeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCZyD8OPSsoVNyYr+Kd2yOKsUQSEmYeiNoaRP4Dt2G29AIhAJdggbpP4Vv3J6OpWdKyJUtYFK7kno8m2Syvw929Yy3Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1342302},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"f74ad656a75e8fecc5ba1d1ee8df75a9aefee91a","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.21.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.43_1790797824108_0.3127484452606104","host":"s3://npm-registry-packages-npm-production"}},"0.0.44":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.44","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.44","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"9401959d3260123f0a4a33e40c24642c93fbd227","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.44.tgz","fileCount":126,"integrity":"sha512-6SO5Otkzm1VN8huJQvtrvjvjAhreuz0p7D2GhF+csH0rPwTtg8jh9ARkzxc9a0jMt6EmHFRXYEq80xWOadOvuA==","signatures":[{"sig":"MEYCIQChJX8brkjbHotqMt4LAaT3PRIzskscmVgyPaZrvKvk5QIhAIZUBhVdGBmH1j7pDUhrqK+BdIs4T8vX3n2Mkn27IL/0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQChjH61kZqP0KyiKuJ62dhbpo77TzMtT0GADI/witXDnAIgFQEBLdvFqlkx/BfIosOc0mDssbhzLIiX+IjRtMwYajM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1343453},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"bbbafb8580e6ef3a37bf0db41c0257b46eb2c7fd","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.21.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.44_1790798338902_0.37318162652142495","host":"s3://npm-registry-packages-npm-production"}},"0.0.45":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.45","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.45","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"f22c8b99522ebae9d04ab51dcf89be7f2af11e36","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.45.tgz","fileCount":126,"integrity":"sha512-SBZ3cKtnf1tL/4yFdZbVA2ptPO4ogwq2UcqjVIwQJioesvfr4luvf2Lht4gqiakMRW7yudDTI6S8YJ2gccqhow==","signatures":[{"sig":"MEQCIG15B/CUGdvdr3xn8fxDb286OWOZwLaJcuPuXNfHVqrOAiA4kRq//OPeR23en0qHDr6db1mAnoYObo9/M8Kcfd+37g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD3/WD/k1nJxqjKeWtAxkf/LDGr7OpsUvioe97MtV/RZQIgFlBa28B/O43mkE7mJfrwOIuQEMnHN8sBjvG/5DNn8uc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1356222},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5ed116898825fdbe390d5f9e806ae797d34150ae","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.21.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.45_1790803020570_0.14940966926656207","host":"s3://npm-registry-packages-npm-production"}},"0.0.46":{"name":"@tenonhq/dovetail-servicenow","version":"0.0.46","author":{"name":"Tenon"},"license":"GPL-3.0","_id":"@tenonhq/dovetail-servicenow@0.0.46","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"homepage":"https://github.com/TenonHQ/Dovetail#readme","bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"bin":{"dove-sn":"dist/cli.js"},"dist":{"shasum":"241f9b357fe29299d49d8d75faf774a5ce1d8bdf","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.46.tgz","fileCount":130,"integrity":"sha512-Ant0lzWMeW+zscEI05QMcXL+cgNefcuKp2FW/1gtQVv8Ga0SR887LFBT4HZS0unAlgX1jIPB4LPIVnI5PEnHZw==","signatures":[{"sig":"MEUCIDYC9Vyt9OTDoMDBh3R4hKbkdU3mNmpkPeB0tnvA1yoKAiEAh1ZN5lUvEdwuHFpkUewiDRovi8WXQJl2a3I+BPsOxkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDXzkQDfvOmck8+OHuafmgwcNAryHV9LNvAz+Hy4vyGxQIgA5UQZ2SZglqyFMOJW+d4ad1pRM0IOvGu91no64SwWlo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1417194},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9f5dabae6bba328421ef0c5cf50ed4893869a4bb","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.21.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"_nodeVersion":"22.23.3","dependencies":{"zod":"^3.23.0","axios":"^1.5.1","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.29.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"tmp":"tmp/dovetail-servicenow_0.0.46_1790834937548_0.4961035622857266","host":"s3://npm-registry-packages-npm-production"}},"0.0.47":{"_id":"@tenonhq/dovetail-servicenow@0.0.47","bin":{"dove-sn":"dist/cli.js"},"bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"dist":{"shasum":"6aba3560d2333a49350d2da6e1e70d1e45229e77","tarball":"https://registry.npmjs.org/@tenonhq/dovetail-servicenow/-/dovetail-servicenow-0.0.47.tgz","fileCount":130,"integrity":"sha512-dkB+GVY3LCrS9Dcylk4OJfCZW8YRMVnkikOzg2rlev95LChSiMVN/v+8UJPASDKUJeag6uDo5Oqp74RiBa8DtA==","signatures":[{"sig":"MEYCIQDJ8DDA8omBZaVqFbqvpRBiItnpKsFGzv3xSR7HSNViygIhAPNyGwaihcsQmOOztJBKt982Bz63pvnt84+YiM/u59pw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHqq9EFNGFfJMf9QeMg5j+ugQFXHcfB/xBUZtHRWgxW1AiByivSZt+gqhAtg38J70CjQSiQkM6Ah6fCQgXw8sEp6BA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tenonhq%2fdovetail-servicenow@0.0.47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1417195},"main":"./dist/index.js","name":"@tenonhq/dovetail-servicenow","types":"./dist/index.d.ts","author":{"name":"Tenon"},"engines":{"node":">=22"},"gitHead":"fb43357046e2207913dfb265730008d64b89b366","license":"GPL-3.0","scripts":{"test":"jest","prepack":"tsc","postpublish":"npm run version:bump","version:bump":"node ./../../Scripts/bump-version.js ./package.json"},"version":"0.0.47","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f6dcfaa4-31f3-4360-8d9d-f211994ea609"}},"homepage":"https://github.com/TenonHQ/Dovetail#readme","repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"_npmVersion":"11.21.0","description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","directories":{},"maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"_nodeVersion":"22.23.3","dependencies":{"zod":"^3.23.0","axios":"^1.20.0","dotenv":"^16.3.1","@modelcontextprotocol/sdk":"^1.30.0","@tenonhq/dovetail-mcp-kit":"~0.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":">=20.8.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dovetail-servicenow_0.0.47_1790874687444_0.8128717727583425"}}},"time":{"created":"2026-05-11T20:56:44.044Z","modified":"2026-10-01T17:11:28.046Z","0.0.2":"2026-05-11T20:56:44.294Z","0.0.3":"2026-05-19T02:03:46.022Z","0.0.5":"2026-05-26T06:44:58.452Z","0.0.6":"2026-05-26T06:54:46.436Z","0.0.7":"2026-05-28T04:04:04.407Z","0.0.8":"2026-05-31T03:07:56.797Z","0.0.9":"2026-05-31T16:52:40.018Z","0.0.10":"2026-06-01T21:27:58.185Z","0.0.11":"2026-06-02T16:02:15.781Z","0.0.12":"2026-06-02T16:06:42.490Z","0.0.13":"2026-06-02T17:01:02.776Z","0.0.14":"2026-06-04T08:56:40.324Z","0.0.15":"2026-06-04T22:16:50.059Z","0.0.16":"2026-06-06T00:17:58.419Z","0.0.17":"2026-06-06T02:17:01.853Z","0.0.18":"2026-06-13T20:02:16.334Z","0.0.19":"2026-06-13T21:47:10.805Z","0.0.20":"2026-06-14T00:08:04.890Z","0.0.21":"2026-06-15T17:59:11.319Z","0.0.22":"2026-06-19T08:59:30.774Z","0.0.23":"2026-07-03T22:16:51.859Z","0.0.24":"2026-07-08T10:22:54.832Z","0.0.25":"2026-07-08T10:33:57.169Z","0.0.26":"2026-07-10T16:27:43.023Z","0.0.27":"2026-07-14T20:15:27.313Z","0.0.28":"2026-07-14T20:24:48.235Z","0.0.29":"2026-07-15T01:15:54.888Z","0.0.30":"2026-07-15T02:38:35.842Z","0.0.31":"2026-07-16T10:03:36.096Z","0.0.32":"2026-07-22T01:37:14.530Z","0.0.33":"2026-07-22T20:54:47.668Z","0.0.34":"2026-07-23T15:03:08.531Z","0.0.35":"2026-07-28T22:06:50.944Z","0.0.36":"2026-08-31T21:33:03.970Z","0.0.37":"2026-09-15T22:44:57.921Z","0.0.38":"2026-09-15T23:34:18.786Z","0.0.39":"2026-09-30T17:16:12.480Z","0.0.40":"2026-09-30T18:08:16.710Z","0.0.41":"2026-09-30T18:12:45.202Z","0.0.42":"2026-09-30T19:29:02.693Z","0.0.43":"2026-09-30T19:50:24.246Z","0.0.44":"2026-09-30T19:58:58.993Z","0.0.45":"2026-09-30T21:17:00.679Z","0.0.46":"2026-10-01T06:08:57.657Z","0.0.47":"2026-10-01T17:11:27.606Z"},"bugs":{"url":"https://github.com/tenonhq/dovetail/issues"},"author":{"name":"Tenon"},"license":"GPL-3.0","homepage":"https://github.com/TenonHQ/Dovetail#readme","repository":{"url":"git+https://github.com/TenonHQ/Dovetail.git","type":"git","directory":"packages/servicenow"},"description":"ServiceNow platform helpers for Dovetail — dictionary, choices, update-set-aware writes via the Dovetail Scripted REST API","maintainers":[{"name":"ben.ivers","email":"ben.ivers@tenonhq.com"},{"name":"ddchon","email":"desiree.morehouse@tenonhq.com"},{"name":"trevor.offen","email":"trevor.offen@tenonhq.com"},{"name":"dman89","email":"daniel@danielcudney.com"},{"name":"jaedonfarr","email":"jaedon.farr@tenonhq.com"},{"name":"painsworth","email":"patrick.ainsworth@tenonhq.com"},{"name":"willmcgill","email":"will.mcgill@tenonhq.com"},{"name":"kevinmoore-tenon","email":"kevin.moore@tenonhq.com"},{"name":"denjhuh","email":"dennis.huh@tenonhq.com"}],"readme":"# @tenonhq/dovetail-servicenow\n\nServiceNow platform helpers for Dovetail. The first shipped feature is\n**`addChoicesToField`** — upserts `sys_choice` rows for a given `table.column`\nand flips `sys_dictionary.choice` in one idempotent call, with every write\ncaptured in the update set you pass in.\n\n## Why\n\nAdding choice values to a scoped ServiceNow field is a 3-part ritual:\n\n1. Find the `sys_dictionary` row for `(table, column)` and set its `choice`\n   field (0 = none, 1 = suggestion, **3 = dropdown w/ `-- None --`**).\n2. Create one `sys_choice` row per value/label pair, with `sys_scope` matching\n   the dictionary record.\n3. Make sure your user's current update set points at the *right* update set\n   (not Default), or the whole change set gets trapped.\n\nThis package collapses it into:\n\n```ts\nawait addChoicesToField(client, {\n  table: \"x_cadso_core_event\",\n  column: \"state\",\n  updateSetSysId: \"0083c3bb33d003507b18bc534d5c7b6d\",\n  choices: [\n    { value: \"delivered\", label: \"Delivered\" },\n    { value: \"failed\",    label: \"Failed\" }\n  ]\n});\n```\n\nWrites go through the **Dovetail Scripted REST API** (`/api/cadso/dovetail/*`,\nhistorically named \"Claude\" at `/api/cadso/claude/*`; the client falls back to\nthe legacy path on instances where the rename hasn't been imported yet). The\nAPI pins every write to the supplied update set regardless of the REST user's\ncurrent preference, so re-running with the same inputs is safe — every row\ncomes back as `unchanged`.\n\n## Install\n\n```bash\nnpm install @tenonhq/dovetail-servicenow\n```\n\nRequires Node 20 LTS.\n\n## Configure\n\nReads ServiceNow credentials from env vars in this order of precedence:\n\n| Field    | Preferred       | Dev fallback        | Prod fallback        |\n|----------|-----------------|---------------------|----------------------|\n| Host     | `SN_INSTANCE`   | `SN_DEV_INSTANCE`   | `SN_PROD_INSTANCE`   |\n| User     | `SN_USER`       | `SN_DEV_USERNAME`   | `SN_PROD_USERNAME`   |\n| Password | `SN_PASSWORD`   | `SN_DEV_PASSWORD`   | `SN_PROD_PASSWORD`   |\n\n### Flow Designer identity (`SN_FLOW_*`)\n\n`/api/now/processflow/*` — every Flow Designer authoring call (view/edit/clone/\npublish an action, create/copy/publish a flow) — **cannot carry a REST API access\npolicy** on ServiceNow, so under API-key auth (`SN_API_KEY`) those calls 401. They\nauthenticate instead with a dedicated basic-auth identity used **only** for\nprocessflow paths; every other path keeps the main identity:\n\n| Field    | Preferred          | Dev fallback           | Prod fallback           |\n|----------|--------------------|------------------------|-------------------------|\n| User     | `SN_FLOW_USER`     | `SN_DEV_FLOW_USER`     | `SN_PROD_FLOW_USER`     |\n| Password | `SN_FLOW_PASSWORD` | `SN_DEV_FLOW_PASSWORD` | `SN_PROD_FLOW_PASSWORD` |\n\n- **Key mode + flow identity** → processflow requests go out as basic auth with the\n  flow identity and **no** `x-sn-apikey` header; table/Dovetail requests keep the key.\n- **Basic mode, no flow identity** → unchanged: processflow uses the main `SN_USER`.\n- **Key mode, no flow identity** → a processflow call **throws before sending**, naming\n  `SN_FLOW_USER` / `SN_FLOW_PASSWORD` (it would only 401). A half-set pair also throws.\n- Programmatic: `createClient({ apiKey, flowUser, flowPassword })` — explicit config beats\n  env. A config that pins the main identity (apiKey or user/password — e.g. one resolved\n  from an `--env` file) takes the flow identity from the config only, never from\n  `process.env`, so a per-call retarget can't borrow another instance's flow creds.\n- `--env <file>` fully determines both identities: the `SN_FLOW_*` / `SN_DEV_FLOW_*` /\n  `SN_PROD_FLOW_*` keys are connection keys, replaced (or cleared) from the file.\n\nThe flow password is never logged; errors name the variables, never their values.\n\nThe dev/prod fallbacks match the names documented in the committed\n`Craftsman/.env.example`, so existing developer setups work out of the box.\nBare instance names (e.g. `TenonWorkStudio`) get `.service-now.com` appended\nautomatically.\n\n```\nSN_INSTANCE=tenonworkstudio.service-now.com\nSN_USER=...\nSN_PASSWORD=...\n```\n\n### Selecting a .env file per command\n\nEvery `dove-sn` command (and `dove-sn mcp`) loads `.env` from the current\ndirectory by default. Point it at a different file to target another instance:\n\n```bash\nnpx dove-sn view-flow --sys-id <id> --env .env.prod\nnpx dove-sn add-choices --env ../envs/workshop.env --table ... --column ...\n```\n\n`--env` (alias `--env-file`) wins over the `DOVETAIL_ENV_FILE` env var, which in\nturn beats the default `.env`. Variables already present in the environment are\nnever overridden, so an exported `SN_INSTANCE` still takes precedence over the\nfile — handy for CI.\n\n## CLI\n\n```bash\n# Inline form\nnpx dove-sn add-choices \\\n  --table x_cadso_core_event \\\n  --column state \\\n  --update-set 0083c3bb33d003507b18bc534d5c7b6d \\\n  --choices \"delivered=Delivered,failed=Failed,expired=Expired\"\n\n# JSON payload form (recommended for >5 choices)\nnpx dove-sn add-choices --from-json ./choices.json\n\n# Retire values — a SOFT delete (sets inactive=true), never a row drop\nnpx dove-sn remove-choices \\\n  --table x_cadso_core_event \\\n  --column state \\\n  --update-set 0083c3bb33d003507b18bc534d5c7b6d \\\n  --values \"expired,failed\"\n```\n\nJSON payload shape:\n\n```json\n{\n  \"table\": \"x_cadso_core_event\",\n  \"column\": \"state\",\n  \"updateSetSysId\": \"0083c3bb33d003507b18bc534d5c7b6d\",\n  \"choiceType\": 3,\n  \"choices\": [\n    { \"value\": \"delivered\", \"label\": \"Delivered\" },\n    { \"value\": \"failed\",    \"label\": \"Failed\" }\n  ]\n}\n```\n\n`remove-choices` takes the same `--from-json` form, with a `values` array in\nplace of `choices`.\n\n### Removal semantics\n\n- **Soft delete.** Sets `sys_choice.inactive = true`; the row is retained and\n  the operation is reversible by re-adding the value. `sys_dictionary.choice` is\n  left alone — retiring values does not un-make the column a choice field.\n- **Idempotent.** `deactivated` (a live row was flipped) / `unchanged` (already\n  inactive) / `missing` (no such value on the field). Re-running writes nothing.\n- **Duplicates.** `sys_choice` has no uniqueness constraint on\n  `(name, element, value, language)`, so a field can hold several live rows for\n  one value. Every live row is deactivated, and `sysIds` lists all of them — a\n  length above 1 is your signal the field needs cleaning up.\n- **Inherited choices are not covered.** Matching is scoped to\n  `sys_choice.name = <table>`, so a value defined on a *parent* table reports\n  `missing` rather than being deactivated. Hiding one on a child table needs an\n  override row this verb does not write.\n- **Promotion.** ServiceNow captures the change as a single `Choice list` record\n  for the whole column, not one per value — so promoting the update set moves\n  the entire choice-list state for that column.\n\n## Programmatic\n\n```ts\nimport {\n  createClient,\n  addChoicesToField,\n  removeChoicesFromField,\n  ChoiceWriteError,\n} from \"@tenonhq/dovetail-servicenow\";\n\nvar client = createClient({});\nvar result = await addChoicesToField(client, { /* ... */ });\n\nconsole.log(result.choices);\n// [\n//   { value: \"delivered\", label: \"Delivered\", sysId: \"...\", action: \"created\" },\n//   { value: \"failed\",    label: \"Failed\",    sysId: \"...\", action: \"created\" }\n// ]\n\nvar removed = await removeChoicesFromField(client, {\n  table: \"x_cadso_core_event\",\n  column: \"state\",\n  updateSetSysId: \"0083c3bb33d003507b18bc534d5c7b6d\",\n  values: [\"expired\"],\n});\n// removed.choices[0] -> { value: \"expired\", sysId: \"...\", sysIds: [\"...\"], action: \"deactivated\" }\n```\n\nBoth verbs write one value at a time. If a write fails partway through they\nthrow a **`ChoiceWriteError`** carrying `completed` (the values that already\nlanded, in result shape), `failedValue` (the one that threw — its state on the\ninstance is unknown), and `cause` (the original error). Catch it rather than\nre-querying the instance to work out how far the run got:\n\n```ts\ntry {\n  await removeChoicesFromField(client, params);\n} catch (e) {\n  if (e instanceof ChoiceWriteError) {\n    console.error(\"already deactivated:\", e.completed.map((r) => r.value));\n    console.error(\"verify by hand:\", e.failedValue);\n  }\n  throw e;\n}\n```\n\n## Form, list & view layouts\n\nThe same query-to-diff, update-set-captured pattern now covers ServiceNow form\nand list layouts. Four declarative, idempotent functions reconcile the `sys_ui_*`\ntables — you describe the layout you want, the function writes only the delta.\n\n| Function | What it sets | ServiceNow tables |\n|----------|--------------|-------------------|\n| `createView` | a named custom view | `sys_ui_view` |\n| `setListLayout` | the columns of a list | `sys_ui_list`, `sys_ui_list_element` |\n| `setFormLayout` | the sections + fields of a form | `sys_ui_form`, `sys_ui_form_section`, `sys_ui_section`, `sys_ui_element` |\n| `setRelatedLists` | which related lists appear on a form | `sys_ui_related_list`, `sys_ui_related_list_entry` |\n\nAll four are **idempotent** (re-running reports every record `unchanged`),\n**update-set-captured** (every create / update / delete lands in the update set\nyou pass — deletes pin the session update set first), and support **`dryRun`**\n(plan the writes without performing them) and **`prune`** (default `true` —\ndelete records absent from your spec; pass `false` to only add / reorder).\n\nAn empty or omitted `view` targets the **Default view**. A named `view` that\ndoes not exist yet is created automatically.\n\n### CLI\n\n```bash\n# Create a custom view\nnpx dove-sn create-view --name sales_support --title \"Sales Support\" \\\n  --update-set 0083c3bb33d003507b18bc534d5c7b6d\n\n# Set a list layout (inline columns, or --from-json)\nnpx dove-sn set-list-layout \\\n  --table x_cadso_automate_audience \\\n  --columns \"number,name,state\" \\\n  --update-set 0083c3bb33d003507b18bc534d5c7b6d \\\n  --dry-run\n\n# Set a form layout (sections are nested — pass a JSON spec)\nnpx dove-sn set-form-layout --from-json ./form.json\n\n# Set the related lists shown on a form\nnpx dove-sn set-related-lists \\\n  --table x_cadso_automate_audience \\\n  --related-lists \"x_cadso_automate_audience_member.audience\" \\\n  --update-set 0083c3bb33d003507b18bc534d5c7b6d\n\n# View a flow / subflow's compiled step graph (read-only, headless)\nnpx dove-sn view-flow --sys-id 327c53bfc33e3250d4ddf1db05013135\nnpx dove-sn view-flow --sys-id <sys_id> --json --raw   # structured + full model\n\n# View a Custom Action Type's model (inputs/outputs)\nnpx dove-sn view-action --sys-id <action_type_sys_id> --scope <scope_sys_id>\n\n# Copy a flow / subflow (creates an INACTIVE DRAFT) via the Designer's Copy endpoint\nnpx dove-sn copy-flow --sys-id <sys_id> --name \"My Copy\"   # scope defaults to source's\n\n# Create a NEW flow (type=flow) from scratch and PUBLISH it (grafts a template's trigger+action)\nnpx dove-sn create-flow --name \"My Flow\" --template <published_flow_sys_id> --scope <scope_sys_id> \\\n  --trigger-table customer_contact --log-message \"hello\"            # add --dry-run to preview\n\n# Publish (compile the snapshot of) a flow / subflow after editing in the Designer\nnpx dove-sn publish-flow --sys-id <sys_id>             # scope defaults to the flow's\n\n# Test a flow: validate (default, read-only) or actually run it\nnpx dove-sn test-flow --sys-id <sys_id> --inputs '{\"phone\":\"+1555...\"}'\nnpx dove-sn test-flow --sys-id <sys_id> --execute --confirm --inputs '{...}'  # runs it\n\n# Edit a flow in place (rename / description / step inputs)\necho '{\"rename\":{\"name\":\"New Name\"},\"patchStepInputs\":[{\"step\":\"Calculate SMS Send At\",\"input\":\"send_rate\",\"value\":\"5\"}]}' > ops.json\nnpx dove-sn edit-flow --sys-id <sys_id> --from-json ops.json                          # dry-run (diff)\nnpx dove-sn edit-flow --sys-id <sys_id> --from-json ops.json --apply --update-set <id> # persist\n\n# Edit a Custom Action Type's script and/or output variables, then republish (headless)\nnpx dove-sn edit-action --sys-id <action_type_sys_id> --scope <scope_sys_id> \\\n  --patch-script \"grabHashData::grabRecipients\"                                   # dry-run (diff)\nnpx dove-sn edit-action --sys-id <id> --scope <scope> --set-script ./script.js \\\n  --merge-outputs ./output-var.json --apply --update-set <id>                     # persist + publish\n\n# Edit it STRUCTURALLY — several steps' scripts, step-level IO, pill wiring — in one publish\nnpx dove-sn edit-action --sys-id <id> --scope <scope> --from-json ops.json             # dry-run\nnpx dove-sn edit-action --sys-id <id> --scope <scope> --from-json ops.json \\\n  --apply --update-set <id>                                                            # publish + verify\n\n# Clone a Custom Action Type (every step + its step IO) into a scope and publish it\nnpx dove-sn clone-action --from <source_sys_id> --name \"Send REST (Spoke)\" \\\n  --scope x_cadso_email_spok --ops ops.json                                            # dry-run (plan)\nnpx dove-sn clone-action --from <source_sys_id> --name \"Send REST (Spoke)\" \\\n  --scope x_cadso_email_spok --ops ops.json --update-set <id> --confirm                # write + publish + verify\n\n# Define an action type's inputs, outputs and steps (script + REST, pill-wired) like the Designer's Save\nnpx dove-sn define-action --sys-id <id> --scope x_cadso_email_spok --spec spec.json      # dry-run (diff)\nnpx dove-sn define-action --sys-id <id> --scope x_cadso_email_spok --spec spec.json \\\n  --update-set <id> --confirm --publish                                                # save + verify + publish\n```\n\n### Cloning an action type (`clone-action` / `action_clone`)\n\n`clone-action` copies a Custom Action Type headlessly — **multi-step capable** — and\npublishes the copy:\n\n1. **Reads** (Table API only — `sn_build_agent` is never used) the parent\n   `sys_hub_action_type_definition`, its `sys_hub_action_input` / `sys_hub_action_output`\n   (`model_id` → parent), every `sys_hub_step_instance` (**`action`** → parent), and each\n   step's `sys_hub_step_ext_input` / `sys_hub_step_ext_output` (`model_id` → step).\n2. **Plans** fresh sys_ids for every record (old→new step map), the target scope,\n   `name` = `--name`, `internal_name` = `--internal-name` or the slug of the name\n   (lowercase, non-alphanumerics → `_`), `state = draft`, and strips system/snapshot\n   fields (`master_snapshot`, `latest_snapshot`, `sys_update_name`, audit fields, …).\n3. **Writes** the graph through Dovetail `createRecord`, pinned to `--update-set`, scope\n   set per record.\n4. **Publishes**: the SOURCE action's steps are fetched from\n   `/processflow/action/action_types/{source}/step_instances`, each step's `action` and\n   `sys_id` remapped onto the clone, `--ops` applied, then grafted onto the clone's model\n   and POSTed to `/snapshot` — no steps fixture needed.\n5. **Verifies** by reading the clone's steps back (script hash + step IO per step, plus\n   the step count). A mismatch exits `1`.\n\n`--scope` takes a scope **name** (resolved via `sys_scope`) or a 32-hex sys_id. The\nclone is **idempotent** on `(name, scope)`: an existing match returns `unchanged` and\nwrites nothing. **Dry-run by default** — without `--confirm` it prints the plan (records\nper table, step summary, the effect of every op) and writes nothing; `--update-set` is\nrequired with `--confirm`. Exit `0` on success (incl. dry-run / unchanged), `1` on error.\n\n`--ops` takes the same step ops as `edit-action --from-json`, plus **`setStepInputs`** —\nset an **existing** step input's value (and its `display_value` when present), e.g. a\nREST step's HTTP method. An unknown input fails with the list of inputs on that step:\n\n```json\n{\n  \"setStepInputs\": [\n    { \"step\": \"REST Step\", \"input\": \"http_method\", \"value\": \"post\" }\n  ],\n  \"patchStepScripts\": [\n    { \"step\": \"Parse Response\", \"patchScript\": { \"find\": \"v1\", \"replace\": \"v2\" } }\n  ],\n  \"addStepOutputs\": [{ \"step\": \"Parse Response\", \"name\": \"isRetryable\", \"type\": \"boolean\" }],\n  \"addStepInputs\": [\n    { \"step\": \"Handle Error\", \"name\": \"isRetryable\", \"type\": \"boolean\",\n      \"pillFrom\": { \"step\": \"Parse Response\", \"output\": \"isRetryable\" } }\n  ]\n}\n```\n\nThe MCP tool **`action_clone`** takes the same inputs — `from`, `name`, `scope`,\n`internalName`, `description`, `updateSetSysId`, `ops` (inline object), `confirm`,\n`dryRun` — with the same dry-run-unless-`confirm:true` gate. `setStepInputs` is also\naccepted by `edit-action` / `action_edit`.\n\n### Defining an action type's body (`define-action` / `action_define`)\n\n`define-action` authors a Custom Action Type's **action inputs, outputs and steps** —\nscript steps and REST steps, wired together with data pills — headlessly, the way\nthe Flow Designer's **Save** button does, and optionally publishes it.\n\n```bash\nnpx dove-sn define-action --sys-id <action_sys_id> --scope x_cadso_email_spok \\\n  --spec spec.json                                                  # dry-run: the planned diff\nnpx dove-sn define-action --sys-id <action_sys_id> --scope x_cadso_email_spok \\\n  --spec spec.json --update-set <id> --confirm                      # save + verify\nnpx dove-sn define-action --sys-id <action_sys_id> --scope x_cadso_email_spok \\\n  --spec spec.json --update-set <id> --confirm --publish            # save + verify + publish\n```\n\nHow it works (established from two captured Designer saves):\n\n1. `GET /api/now/processflow/action/action_types/{id}` — the model (43 keys; `steps` is null).\n2. `GET …/{id}/step_instances` — the real step graph.\n3. Merge the spec. Existing steps keep their `cid`; new steps are built from the\n   Designer's own step shape for that type (script / REST) with a fresh `cid`.\n4. `PUT …/{id}` with the **full** model — the Designer's save is not a delta. Each\n   step is sent in the Designer's 11-key shape (`DB_TYPE`, `cid`, `step_type_id`,\n   `section`, `label`, `action`, `order`, `inputs`, `extended_inputs`,\n   `extended_outputs`, `error_handling_type`).\n5. Read the model + steps back and compare them with the plan (a mismatch exits `1`).\n6. `--publish`: snapshot through the existing `publishActionType` path.\n\n**Dry-run by default** — without `--confirm` it prints the planned diff (inputs,\noutputs and steps added / changed / removed, with each step's input values) and makes\nno write. **Idempotent** — a spec that is already in effect is `unchanged` and makes no\nPUT. `--update-set` is optional; when given, the REST session is pinned to it before the\nsave and the publish. Exit `0` on success (incl. dry-run / unchanged), `1` on error or a\nfailed verify.\n\n**The action shell must already exist.** Creating a brand-new empty action headlessly is\nout of scope: make it with `clone-action` or in the Designer, then define its body here.\n\n#### Spec\n\nEvery part is optional, so a spec can be a small incremental edit.\n\n| Key | Shape | Notes |\n|---|---|---|\n| `action` | `{ name?, description?, access?: \"public\" \\| \"package_private\" }` | `name` sets `name` + `displayName` |\n| `inputs[]` | `{ name, label?, type?, mandatory?, choices?: [{value, label?}], default?, order?, maxLength?, remove? }` | Upsert by `name`. `type`: `string` (default) \\| `choice` \\| `boolean` \\| `integer`. `choice` needs `choices`; `default` must be one of them. Changing an input's type makes ServiceNow mint a new variable record |\n| `outputs[]` | `{ name, label?, type?, value?, remove? }` | Upsert by `name`. `value` is the pill the output is wired to. System outputs (`__action_status__`, `__dont_treat_as_error__`) cannot be named |\n| `steps[]` | `{ ref, type: \"script\" \\| \"rest\", label?, match?, remove?, errorHandling?, script?, inputs?, outputs?, values? }` | See below |\n\nSteps:\n\n- **Matching.** `match` (an existing step's cid or current label — use it to rename),\n  else `label`, else position (the spec's Nth step against the action's Nth step, same\n  type, flagged in the diff as `matched by order`). Unmatched steps are created and\n  placed before the next existing step the spec lists after them (else appended).\n  Existing steps are never reordered; `remove: true` deletes one.\n- **`script`** (script steps) — the script body. On the CLI, `scriptFile` (relative\n  to the spec file) is sugar for it.\n- **`inputs`** (script steps) — the step's own input variables (`extended_inputs`):\n  `{ \"<name>\": \"<value or pill>\" }` or `{ \"<name>\": { value?, type?, label?, mandatory?, remove? } }`.\n- **`outputs`** (script steps) — the step's own output variables (`extended_outputs`):\n  `[{ name, label?, type?, remove? }]`.\n- **`values`** — the step type's own inputs by name (unknown names are an error that\n  lists the valid ones). For a REST step: `connection` (`use_connection_alias`),\n  `connection_alias` (a `sys_alias` sys_id — its display name is looked up — or\n  `{ value, display }`), `override_base_url`, `base_url`, `resource_path`,\n  `http_method` (`get` / `post` / `put` / `delete` …), `headers` and `query_params`\n  (`[{ name, value }]` → the Designer's `ADV_NV` list), `body`, `request_type`,\n  `connection_timeout`, `retry_policy`, … Booleans take `true` / `false`.\n- **`errorHandling`** — `EVAL_ERRORS` (the default) or `NEXT_STEP` (continue on error).\n\nPills (in `values`, script `inputs` and `outputs[].value`):\n\n| Pill | Means |\n|---|---|\n| `{{action.<input>}}` | an action input — must exist after the merge |\n| `{{steps.<ref>.<output>}}` | another spec step's output — resolved to `{{step[<cid>].<output>}}`. Inside a step it must point at an **earlier** step |\n| `{{step[<cid>].<output>}}` | the raw form — the cid must exist |\n\nREST steps expose `status_code`, `response_body`, `response_headers`, `error_message`,\n`error_code`, `response_stream`; a script step exposes its `outputs`. An **action\noutput is wired by putting the pill in the output's own `value`** (the Designer also\nmirrors it into `display_value` and records the pill's label in `label_cache` — both\nhandled for you). Everything is checked before any write: unknown keys, names with `^`\nor path characters (names must match `^[A-Za-z_][A-Za-z0-9_]*$`), an unknown step type,\nan unknown step ref / action input / step output in a pill, and any pill the spec would\nleave dangling (e.g. removing an input a step still reads).\n\nExample — the complete body of *Email Service Request GET*:\n\n```json\n{\n  \"inputs\": [\n    { \"name\": \"host\", \"type\": \"choice\", \"mandatory\": true, \"default\": \"api\",\n      \"choices\": [\n        { \"value\": \"api\", \"label\": \"API\" },\n        { \"value\": \"storage_us_east4\", \"label\": \"US East 4\" },\n        { \"value\": \"storage_us_west1\", \"label\": \"US West 1\" },\n        { \"value\": \"storage_europe_west1\", \"label\": \"Europe West 1\" }\n      ] },\n    { \"name\": \"path\", \"type\": \"string\", \"mandatory\": true },\n    { \"name\": \"content_type\", \"type\": \"string\", \"mandatory\": false },\n    { \"name\": \"body\", \"type\": \"string\", \"mandatory\": false }\n  ],\n  \"steps\": [\n    { \"ref\": \"guard\", \"type\": \"script\", \"label\": \"Guard\", \"match\": \"Gaurd\",\n      \"scriptFile\": \"guard.js\",\n      \"inputs\": {\n        \"host_1\": { \"value\": \"{{action.host}}\", \"mandatory\": true },\n        \"path_1\": { \"value\": \"{{action.path}}\", \"mandatory\": true }\n      },\n      \"outputs\": [\n        { \"name\": \"base_url\", \"label\": \"Base URL\", \"type\": \"string\" },\n        { \"name\": \"error\", \"label\": \"Error\", \"type\": \"string\" }\n      ] },\n    { \"ref\": \"call\", \"type\": \"rest\", \"label\": \"Call email service\", \"match\": \"REST step\",\n      \"errorHandling\": \"NEXT_STEP\",\n      \"values\": {\n        \"connection\": \"use_connection_alias\",\n        \"connection_alias\": \"956cc622c3ee4a1085b196c4e401317e\",\n        \"override_base_url\": true,\n        \"base_url\": \"{{steps.guard.base_url}}\",\n        \"resource_path\": \"{{action.path}}\",\n        \"http_method\": \"get\",\n        \"headers\": [{ \"name\": \"Content-Type\", \"value\": \"{{action.content_type}}\" }],\n        \"connection_timeout\": \"25000\"\n      } }\n  ],\n  \"outputs\": [\n    { \"name\": \"status_code\", \"label\": \"Status Code\", \"type\": \"string\", \"value\": \"{{steps.call.status_code}}\" },\n    { \"name\": \"response_body\", \"label\": \"Response Body\", \"type\": \"string\", \"value\": \"{{steps.call.response_body}}\" },\n    { \"name\": \"error\", \"label\": \"Error\", \"type\": \"string\", \"value\": \"{{steps.call.error_message}}\" }\n  ]\n}\n```\n\nThe MCP tool **`action_define`** takes `sysId`, `scope`, `spec` (inline — `script`, not\n`scriptFile`), `updateSetSysId`, `publish`, `confirm`, `dryRun`, with the same\ndry-run-unless-`confirm:true` gate.\n\nNot yet covered (no Designer capture of the shape yet): step types other than script\nand REST, reference / object / array variable types, and the action's error-status\nconditions (`action_status_metadata`, which is carried through unchanged).\n\n### Editing an action type's steps (`--from-json`)\n\nThe flag form above patches the one auto-detected script. When you need to touch\nmore than one step — or the step's own inputs and outputs — pass an ops file:\n\n```json\n{\n  \"patchStepScripts\": [\n    { \"step\": \"Parse Response\", \"scriptFile\": \"./parse-response.js\" },\n    { \"step\": \"Handle Error\", \"patchScript\": { \"find\": \"gs.error\", \"replace\": \"gs.warn\" } }\n  ],\n  \"addStepOutputs\": [\n    { \"step\": \"Parse Response\", \"name\": \"isRetryable\", \"label\": \"Is Retryable\", \"type\": \"boolean\" }\n  ],\n  \"addStepInputs\": [\n    {\n      \"step\": \"Handle Error\",\n      \"name\": \"isRetryable\",\n      \"type\": \"boolean\",\n      \"pillFrom\": { \"step\": \"Parse Response\", \"output\": \"isRetryable\" }\n    }\n  ]\n}\n```\n\n- **`step`** is a step's `cid` **or** its label — an unknown ref fails with the list of steps that do exist.\n- **`scriptFile`** is sugar for `setScript`, resolved **relative to the ops file**, so scripts can live beside it.\n- **`addStepInputs[].pillFrom`** wires the input to another step's output. You never write the pill\n  yourself — the correct format is `{{step[<source_cid>].<output>}}`, and getting it wrong does not\n  fail the publish, it compiles a dead reference that reads `undefined` at runtime.\n- Ops are **order-independent**: an input may pill from an output added in the same call. Everything\n  lands in a **single** `/snapshot` POST.\n- Adding IO is **idempotent** — a name that is already present is skipped with a warning, not duplicated.\n\nTwo behaviours worth knowing before you rely on this:\n\n**It refuses to guess an entry shape.** A new `extended_inputs` / `extended_outputs` entry is built by\nmirroring an existing sibling entry on the same step, because those entries carry more keys than the\nfour you supply and some are wrapped as `{value: x}` inconsistently. If the step has *no* existing\nentry in that list, there is nothing to mirror and the command **errors out** rather than hand-author\nan object that would corrupt the action. Author one entry in the Designer first, then re-run.\n\n**It verifies the publish.** A `201` from `/snapshot` means the snapshot compiled — not that your edit\nlanded as intended. With `--apply`, the steps are read back from the instance and compared against what\nwas sent: script **content** (hashed, so a same-length-but-different script can't pass) and each IO\nentry's **name, type and value** — so an entry that landed with a mis-wired pill is caught, not just a\nmissing one. A mismatch prints the diff and exits **2**. When every op was a no-op, there is nothing to\nread back and the round-trip is skipped.\n\n`copy-flow` calls the Designer's own `POST /processflow/flow/{id}/copy` — a\ncomplete, faithful clone created as an **inactive draft**. (Don't publish +\nactivate a copy of a triggered production flow unless you intend it to fire.)\n\n`create-flow` mints a **brand-new** flow (`sys_hub_flow`, `type=flow`) from scratch\nand **publishes** it: `POST /processflow/flow` initialises the envelope, the\ntrigger + action graph is grafted from a published template flow (`--template`,\nids remapped + values patched via `--trigger-table` / `--trigger-condition` /\n`--log-message`), a `versioning/create_version` bookmark is written, then the\n`/snapshot` POST compiles it. The result is a **published** flow — a published\ntriggered flow can fire on its trigger, so do NOT graft a production send template\nyou don't intend to fire (the `active` flag on the result reports whether it's\nlive). The\n`POST /processflow/flow` create step is the crux: a Table-API / Dovetail\n`createRecord` insert never initialises the processflow envelope, so its snapshot\nPOST silently no-ops (stays draft). Sequence reverse-engineered from Workflow\nStudio HARs and validated live (2026-06-02, tenonworkstudio). Exit `0` published\nor dry-run; `2` created-but-not-published.\n### Create a table (with columns)\n\n```bash\nnpx dove-sn create-table \\\n  --name x_cadso_core_error --label Error --scope x_cadso_core \\\n  --columns \"Key:string:255, Severity:choice:50, First Seen On:datetime, Occurence Count:integer:5\" \\\n  --number-prefix ERR --user-role x_cadso_core.user --update-set <sys_id> --dry-run --json\nnpx dove-sn create-table --from-json ./table.json   # full spec from a file\n```\n\n`create-table` mints a **brand-new** table (`sys_db_object`) **with its columns**.\nA table create is a privileged platform op — a REST / Dovetail `createRecord`\ninsert into `sys_db_object` **orphans** the table (a metadata row with no physical\ntable, no ACLs, no scope wiring). So this replays the Studio form save: a single\n`POST /sys_db_object.do` (form-login session → `g_ck`) whose body embeds every\ncolumn as a `sys_dictionary` list-edit XML blob (one `<record operation=\"add\">`\nper column) plus the Application-Navigator module — yielding the real platform\ngraph + the physical table + seeded ACLs. Before the save it switches the form\nsession's **current application** to the target scope (the new table's scope is\ngoverned by the session app, not a form field), so the table, columns, ACLs, and\nmodule all land in `--scope`. Friendly column types are mapped to ServiceNow\ninternal types (`string` → `string_full_utf8`, Studio's real String type).\n\n`--dry-run` returns the plan + the column XML + the projected graph with no session\nand no writes. **Validated live 2026-06-13** (tenonworkstudio): a 6-column create\nlanded the correctly-scoped table, all columns, ACLs + role, the module, and the\nfull graph in the pinned update set, and a scoped insert round-tripped. Still: pin\n`--update-set <sys_id>` and verify the `sys_update_xml` rows afterward. `--debug`\nadds diagnostics (app-switch status, resolved column key, assigned sys_id) to the\nresult note. Ground truth (the HAR dissection) lives in the CTO repo's create-table\ndocs.\n\n### Add a unique index\n\nCreate a **single-column UNIQUE index** on an existing table, then read it back.\n\n```bash\n# Dry-run (the DEFAULT) - prints the plan, writes nothing and reads nothing\nnpx dove-sn add-index \\\n  --table x_cadso_journey_instance --columns occurrence_key --unique \\\n  --update-set <sys_id> --json\n\n# Send it\nnpx dove-sn add-index \\\n  --table x_cadso_journey_instance --columns occurrence_key --unique \\\n  --update-set <sys_id> --confirm\n```\n\nThe **only** headless lever for an index is `sys_dictionary.unique`. `sys_index` fails an\nAPI-LEVEL ACL (HTTP 403) for every identity - and an ACL that refuses `GET` refuses `POST` -\nwhile `sys_index_column` does not exist at all (HTTP 400 `Invalid table`). So `add-index`\npatches the column's dictionary row through the update-set-aware write path and lets the\nplatform build the physical index off that flag.\n\nThree consequences, each reported rather than hidden:\n\n- **One column, unique only.** `unique` is a per-COLUMN flag, so a composite index has no\n  dictionary lever. A multi-column request is **refused**, never narrowed to its first\n  column - building a different index than the one asked for is the worst available\n  outcome. `--unique` is required for the same reason. Composite and plain indexes stay\n  platform-UI work.\n- **Duplicates abort the run BEFORE it writes.** A unique index cannot build over repeated\n  values, and ServiceNow fails that ALTER *silently* - leaving a dictionary row claiming\n  `unique=true` with no index behind it (which is exactly what\n  `x_cadso_core_metric_point.idempotency_key` looks like today). **EMPTY counts as a\n  value**: a freshly added column that is empty on every existing row is one collision per\n  row. Backfill first, index second. The scan is paged and capped, and a scan that hits\n  that cap **aborts the same way** - an UNPROVEN scan is treated exactly like a proven\n  collision, because writing on a column that was only read part-way is how this verb\n  would manufacture that trap on a table too big for anyone to have checked.\n- **Success is read back; uniqueness never is.** `status` is `created` only when a matching\n  row was read back from the `v_db_index` view; a flag with no index is `failed`.\n  `verified.indexPresent` is `null` - UNKNOWN, not `false` - when the view could not be\n  read, because a blind instrument is not evidence of absence. And `v_db_index` carries no\n  uniqueness field (every row reads `btree`, unique or not), so **`uniqueness-enforced` is\n  listed in `unverified` on every status, success included**: only a duplicate-insert test\n  proves enforcement.\n\n`--update-set` is required on the live path and is checked before a client is built or a\nsingle request goes out. Exit codes: `0` created / skipped / dry-run, `1` bad args, `2`\nfailed (the lying-row case included).\n\n### List a table's indexes\n\n```bash\nnpx dove-sn index-list --table x_cadso_automate_message_batch_recipient --json\n```\n\nRead-only: no form session, no writes. **`v_db_index` is the index read surface** - and\nthe only one. `sys_index` fails an API-LEVEL ACL (HTTP 403) for every identity including\nadmin, and `sys_index_column` does not exist at all (HTTP 400 `Invalid table`), so there\nis no two-table index model to join and nothing to cross-check against.\n\nEach row comes back as `{ name, columns, type, rawColumns }`. `columns` is the view's\nbracketed `column_names` cell (`\"[phone]\"`, `\"[a,b]\"`) **parsed** into a list - never\nsubstring-matched, because `\"[owner_id]\"` contains `\"owner\"`. `type` is `access_method`.\n\n**Uniqueness is not readable.** `v_db_index` has no uniqueness field, so a unique index\nand an ordinary one are indistinguishable in it: `unique` is left **absent** rather than\nguessed, and `uniqueness-enforced` is reported in `unverified` on every result. Only a\nduplicate-insert test proves enforcement. An empty result more likely means the table name\nis wrong than that the table is unindexed - every physical table has a `PRIMARY`.\n\n### Create an index (composite and non-unique included)\n\n> **A DATABASE INDEX IS A PHYSICAL, PER-INSTANCE CHANGE. IT IS NOT CAPTURED IN AN UPDATE\n> SET AND DOES NOT TRAVEL WITH A PROMOTION.** Re-run `index-create` against every\n> environment that needs the index (dev, test, uat, staging, prod). There is deliberately\n> no `--update-set` - passing one is an error, not a silent no-op.\n\n```bash\n# Dry-run (the DEFAULT) - sends nothing and reads nothing\nnpx dove-sn index-create --table x_cadso_journey_instance --columns state,created_on\n\n# Send it\nnpx dove-sn index-create \\\n  --table x_cadso_journey_instance --columns state,created_on --confirm --json\n```\n\nThis is what `add-index` cannot do. `sys_dictionary.unique` - the only record-shaped lever\n- is **per-column and unique-only**, so composite and plain indexes have no record path at\nall. `index-create` instead replays the platform's own index-creator form\n(`sys_action=create_index`, `sysparm_index_table`, `sysparm_fields`,\n`sysparm_unique_index_SKIP`) over a form-login session. That contract is lifted from the\ninstance's shipped `index_creator_information` UI macro, not from a guess, and the POST\ntarget is taken from the rendered page's own `<form action>`.\n\n- **Dry-run by default.** Without `--confirm` nothing is sent *and nothing is read*;\n  `--dry-run` forces a plan even with `--confirm`.\n- **Idempotent.** On the live path `v_db_index` is read first, and an index over *exactly*\n  these columns short-circuits to `already-exists` with no form session and no write.\n  Column **order** is part of an index's identity - `[a,b]` is not `[b,a]`.\n- **`--name` is refused.** The platform's form has no name input; ServiceNow names the\n  index itself. Reporting a name the instance does not carry would be a lie, so the\n  created index's *real* name is returned in `name` instead.\n- **The read-back is the proof.** After the POST the index is polled for in `v_db_index`\n  (default 10 checks, 3 s apart - a build on a populated table is asynchronous). If it\n  never appears the status is `failed`: a form processor returning a page is not evidence\n  an ALTER ran, and a unique index cannot build over duplicate values (EMPTY counts).\n- **Uniqueness is still never claimed.** `uniqueness-enforced` stays in `unverified` on\n  every status.\n\n**Requires a username+password identity that can form-log-in.** An instance on\nAPI-key-only auth, SSO or MFA rejects the form login however valid the API key is; the\nverb fails at the session with that diagnosis rather than a mystery 302, and no `.do`\nreplay (including `create-table`'s) can work in that state.\n\nExit codes: `0` created / already-exists / dry-run, `1` bad args, `2` failed.\n\n### Set a field on a record\n\nSet scalar field value(s) on an **existing** data record, capture the change into\nan update set, then read it back and verify.\n\n```bash\n# Target by sys_id\nnpx dove-sn set-field \\\n  --table x_cadso_core_metric_point_type --sys-id <sys_id> \\\n  --fields \"order=20\" --update-set <sys_id> --dry-run --json\n\n# Or target by a query that resolves to EXACTLY one row\nnpx dove-sn set-field \\\n  --table x_cadso_core_metric_point_type --query \"name=send_size\" \\\n  --fields \"order=20,label=Send Size\" --update-set <sys_id>\n```\n\n`set-field` wraps the update-set-aware `pushWithUpdateSet` core op (update-set +\nscope switching handled server-side, so no `sys_user_preference` is touched), then\nre-queries the record and verifies each value landed. It **refuses** schema tables\n(`sys_db_object` / `sys_dictionary`) — use `add-column` / `create-table` for those.\n`--fields` is a comma-separated `key=value` map (values are sent as strings;\nServiceNow coerces); `--update-set` is required so the change is captured;\n`--dry-run` reads the current values and prints the plan without writing. Exit\ncodes: `0` applied / dry-run, `1` bad args, `2` write landed but read-back did not\nverify.\n\n### Create a record\n\nInsert **one** new data record, owned by an explicit scope and captured into an\nupdate set, then read it back and verify.\n\n```bash\nnpx dove-sn create-record \\\n  --table x_cadso_core_metric_point_type \\\n  --fields \"name=avg_message_parts,label=Avg. Message Parts,order=35\" \\\n  --scope x_cadso_core --update-set <sys_id> \\\n  --if-absent \"name=avg_message_parts\" --dry-run --json\n```\n\n`create-record` wraps the scope- and update-set-aware `createRecord` core op, which\nswitches the executing user's app scope + update set server-side, inserts, and\nrestores both — so the record is owned by the right app and the insert is captured\nin the right update set. Like `set-field` it **refuses** schema tables and verifies\nvia read-back. `--scope` and `--update-set` are required; `--if-absent\n\"<encoded-query>\"` makes re-runs idempotent (the insert is skipped when the query\nalready matches a row). Exit codes: `0` created / skipped-in-sync / dry-run, `1` bad\nargs, `2` write landed unverified (or skipped with drift). To **update** an existing\nrecord instead, use `set-field`.\n\nBoth verbs are exported for programmatic use:\n\n```ts\nimport { createClient, setField, createRecord } from \"@tenonhq/dovetail-servicenow\";\n\nvar client = createClient({});\nvar r = await setField({\n  client: client,\n  table: \"x_cadso_core_metric_point_type\",\n  sysId: \"<sys_id>\",\n  fields: { order: \"20\" },\n  updateSetSysId: \"<sys_id>\"\n});\nconsole.log(r.status, r.verified); // \"applied\" true\n```\n\n### Invoke an arbitrary REST operation\n\nInvoke any authenticated ServiceNow REST operation — an application's own\nScripted REST endpoints (`sys_ws_operation` at `/api/<scope>/<service>/<resource>`)\nincluded — with GET, POST, PUT or DELETE. This is the transport primitive for\noperations the fixed verbs can't express, and the only surface with PUT/DELETE\ncoverage (a verification harness that cleans up after itself needs the DELETE).\n\n```bash\n# Dry-run — the DEFAULT: echoes method + path + body, sends NOTHING\nnpx dove-sn invoke-rest --method DELETE \\\n  --path /api/x_cadso_core/testkit/resource/<sys_id>\n\n# Send for real\nnpx dove-sn invoke-rest --method PUT \\\n  --path /api/x_cadso_core/testkit/resource/<sys_id> \\\n  --body '{\"name\":\"updated\"}' --confirm --json\n```\n\n`invoke-rest` is **dry-run by default** — nothing is sent without `--confirm`\n(`--dry-run` forces a dry-run even with it). On send the response passes through\n**verbatim** as `{ httpStatus, ok, body }`: non-2xx responses are returned, not\nthrown, so the operation's own error contract survives (the transport still\nretries 429/5xx first). The path must be instance-relative and start with\n`/api/`. **Bodies are never printed in human output** — request or response,\ndry-run or sent: method, path and status only. The structured `--json` result\nis the one channel that carries them (a dry-run's `requestBody` echo lives\nthere). Exit codes: `0` dry-run or 2xx, `1` bad args, `2` sent but non-2xx.\n\nProgrammatic: `invokeRest({ method, path, body, confirm })` is exported, and the\nclient gained `now.put` / `now.delete` / `now.invoke` (the latter returns\n`{ status, body }` verbatim) alongside the existing `now.get` / `now.post`.\n\n### Publish an app to the Store / application repository / an update set\n\nPublish a scoped application to the **ServiceNow Store**, the **company\napplication repository**, and/or **into a new update set** — headlessly, with\neach publish's progress tracker polled to completion.\n\n```bash\n# Dry-run — the DEFAULT: resolves the app, prints the plan, publishes NOTHING\nnpx dove-sn publish-app --app x_cadso_filter --version 6.0.20260716 --target both\n\n# Publish for real (store, then repo, same version)\nnpx dove-sn publish-app --app x_cadso_filter --version 6.0.20260716 \\\n  --target both --dev-notes \"July release\" --confirm --json\n\n# Release flow on an instance WITHOUT the sn_cicd plugin: publish to the company\n# repository over the UI uploader, then capture the app into a dated update set.\nnpx dove-sn publish-app --app x_cadso_filter --version 6.0.20260729 \\\n  --target repo-ui,update-set --update-set-description 20260729 --confirm --json\n```\n\n**Store publish is EXTERNALLY VISIBLE on the ServiceNow Store — treat\n`--target store --confirm` as a release.** `publish-app` is dry-run by default:\nwithout `--confirm` it prints the resolved plan and exits `1` (a deliberate\nrefusal). `--target` takes one target, a comma-separated list, or `both` (an\nalias for `store,repo`); targets run **in the order given** and short-circuit on\nthe first failure.\n\nThe targets ride different transports:\n\n- **store** replays the `sys_app` form's upload flow (`xmlhttp.do` +\n  `sn_appauthor.ScopedAppUploaderAJAX`) over a form-login session — basic auth\n  alone no-ops there. It needs the Store account credentials in the loaded env\n  file as `SN_STORE_USERNAME` / `SN_STORE_PASSWORD`. The password is **never\n  accepted as a flag** and never appears in output, dry-run previews included.\n- **repo** uses the supported CI/CD REST API (`POST /api/sn_cicd/app_repo/publish`\n  + `GET /api/sn_cicd/progress/{id}`) over basic auth. The API user needs the\n  `sn_cicd` role (or admin).\n- **repo-ui** reaches the *same* company repository as `repo`, but over the UI\n  uploader (`sysparm_publish_to_store=false`) instead of REST. Use it when the\n  instance has no CI/CD plugin — `tenonworkshop`, for instance, has no `sn_cicd`\n  scope and no `app_repo` service, so `repo` 404s there while `repo-ui` works.\n  It needs no Store credentials.\n- **update-set** publishes the app *into a newly created update set* via the\n  two-call `com.snc.apps.AppsAjaxProcessor` flow (`createUpdateSet` →\n  `publishToUpdateSet`). There is no REST equivalent. `--update-set-name`\n  defaults to the app's name (the dialog's field is readonly, so that is what\n  the UI submits); `--update-set-description` is conventionally the release date\n  stamp `YYYYMMDD`, which makes a whole release one query\n  (`sys_update_set` where `description=20260729`). `--include-data` maps to the\n  dialog's \"Include demo data\" box and defaults **off**, matching the value the\n  UI actually puts on the wire.\n\nOrdering matters when you combine them: the repo publish is what bumps\n`sys_app.version`, so put it **before** `update-set` if you want the set\ncaptured at the new version.\n\n`--app` accepts a scope name, `sys_app` sys_id, or app name; `--version` must be\nabove the currently published version. The result carries the progress-tracker\nid, per-step states (\"Packaging application\", \"Uploading application\"), the\nStore `appLink`, and the update-set sys_id — for the `update-set` target that is\nrecorded as soon as the set is created, so it survives a later failure and you\ncan always find (or delete) the set. Exit codes: `0` published or dry-run, `1`\nbad args/unconfirmed, `2` failed/timeout. Programmatic:\n`publishApp({ app, version, target, confirm })`.\n\n### Export an update set (or a whole app) to importable XML\n\nProduce the `<unload>` document the implementation team imports on a customer\ninstance — with every secret value replaced by `__SET_DURING_INSTALL__`.\n\n```bash\n# An update set. assemble mode is READ-ONLY: nothing on the instance changes.\nnpx dove-sn export-update-set --update-set 0123456789abcdef0123456789abcdef \\\n  --out ./tenon-core.xml\n\n# A whole app: publish into a new set, then export it. Dry-run first (default).\nnpx dove-sn export-app --app x_cadso_automate --out ./automate.xml\nnpx dove-sn export-app --app x_cadso_automate --out ./automate.xml --confirm\n\n# A document exported some other way\nnpx dove-sn strip-secrets --in ./exported.xml --out ./safe.xml\nnpx dove-sn strip-secrets --in ./exported.xml --report      # what would be stripped\n```\n\n**Secret stripping is not optional.** There is no `--no-strip` flag on any of\nthese verbs, and no field in the MCP schemas that disables it. This matters\nbecause an unload carries field *values*: on tenonworkstudio, completed update\nsets hold filled-in values for `password2` system properties and\n`oauth_entity.client_secret`, several of them in sets that shipped to a\ncustomer. A field is exempted only by a reviewed entry in the rules file.\n\nThe rule is enumerable, in four layers:\n\n| Layer | Covers |\n|---|---|\n| L1 type | `password` / `password2` fields, restricted to tables an update set can capture (`update_synch=true`), resolved through `super_class`. Refreshed from the live dictionary per run, with a committed baseline as the fallback. |\n| L2 conditional / explicit | `sys_properties.value` when the property's `type` is a password type; named exceptions such as `x_cadso_core.google_translate_api_key`, which holds an API key in a *string* column. |\n| L3 JSON | secrets nested inside a JSON blob field, stripped in place. |\n| L4 heuristic | a field that merely *looks* secret. **Never stripped silently and never assumed safe** — the run fails and names it, until a human records it in the rules file as a strip rule or as `notSecret` with a reason. |\n\nOverride the rules with `--rules <file>`; the JSON is merged over the built-ins,\nand the only subtractive key is `notSecret`, which requires a reason:\n\n```json\n{\n  \"notSecret\": [\n    { \"table\": \"x_cadso_core_thing\", \"field\": \"webhook_token\", \"reason\": \"public identifier, not a credential\" }\n  ],\n  \"fieldRules\": [\n    { \"id\": \"thing-signing-key\", \"table\": \"x_cadso_core_thing\", \"field\": \"signing_key\", \"reason\": \"inbound webhook HMAC key\" }\n  ]\n}\n```\n\nTwo more things refuse to produce a file rather than produce a wrong one: a\nrecord count that does not match the set, and the documented **in-progress\nempty 200** from `export_update_set.do` (the servlet streams a document only for\na *complete* set, and app-publish leaves the set in progress). After stripping,\nthe output is re-read and verified; a secret that somehow survived fails the run.\n\n`export-update-set --mode complete` marks the set complete on the instance\nfirst — a real write, so it needs `--confirm`. `export-app` publishes ~1000+\nrecords into a new update set and is dry-run by default. Neither is the Store\npublish; that is `publish-app`, which is externally visible.\n\nExit codes: `0` exported or dry-run, `1` bad args/unconfirmed, `2`\nfailed/timeout. Programmatic: `exportUpdateSet({ updateSet, mode })`,\n`exportApp({ app, confirm })`, `stripSecrets(xml, rules)`. MCP:\n`update_set_export` (read-only in assemble mode) and `app_export`.\n\n`test-flow` defaults to **validate** — a safe pre-flight (published? inputs match\ndeclared variables?) that never runs the flow; `--execute --confirm` runs it via\nthe server-side FlowAPI runner (deploy `resources/runFlow.md` first).\n\n`edit-flow` defaults to a **dry-run** diff. With `--apply`: rename/description are\nwritten to `sys_hub_flow` through the update-set-aware API (so `--update-set` is\n**required** for those), while `patchStepInputs` ride a snapshot recompile (the\n`/snapshot` POST persists step input values but NOT top-level flow fields).\nStep-input persistence via the snapshot POST is verified for action types but is\n**best-effort for flows** — after the recompile, `edit-flow` reads the model back\nand **warns** if a value didn't actually persist, so a no-op never reports as a\nsilent success.\n\n`edit-action` edits a **published Custom Action Type** headlessly: it GETs the\nmodel, fetches the steps from `.../{id}/step_instances` (the model GET returns\n`steps:null`), patches the script step input (`--patch-script \"<find>::<replace>\"`\nor `--set-script <file>`) and/or merges output-variable definitions\n(`--merge-outputs <json>`, matched by `name`), grafts the steps back, and POSTs\n`/snapshot` to recompile — the same snapshot POST `publishActionType` uses, which\npersists step input values back to `sys_variable_value`. It deliberately avoids\nthe Designer's model PUT, whose client-side step transform is unsafe to\nhand-reconstruct. Dry-run (diff) by default; `--apply` republishes, and\n`--update-set <id>` pins the capture into a chosen update set.\n\n`view-flow` reads `GET /api/now/processflow/flow/{id}` — the Designer's own model\nendpoint — and prints the ordered, nesting-aware action + flow-logic step graph\nplus the flow variables. This works for the integration user with plain basic\nauth; the raw `sys_hub_flow_snapshot` Table API 404 is a row-level restriction on\nthe working snapshot, not a barrier. `publish-flow` POSTs the model back to\n`.../flow/{id}/snapshot`, recompiling the current design (a write).\n\n`set-form-layout` JSON payload shape:\n\n```json\n{\n  \"table\": \"x_cadso_automate_audience\",\n  \"view\": \"\",\n  \"updateSetSysId\": \"0083c3bb33d003507b18bc534d5c7b6d\",\n  \"prune\": true,\n  \"sections\": [\n    { \"fields\": [\"name\", \"active\", \"description\"] },\n    { \"caption\": \"Meta Data\", \"fields\": [\"created_by\", \"updated_on\"] }\n  ]\n}\n```\n\nThe first section is the **primary section** — omit its `caption`.\n\n### Programmatic\n\n```ts\nimport { createClient, setFormLayout, formatLayoutResult } from \"@tenonhq/dovetail-servicenow\";\n\nvar client = createClient({});\nvar result = await setFormLayout(client, {\n  table: \"x_cadso_automate_audience\",\n  view: \"\",\n  updateSetSysId: \"0083c3bb33d003507b18bc534d5c7b6d\",\n  sections: [\n    { fields: [\"name\", \"active\"] },\n    { caption: \"Meta Data\", fields: [\"created_by\"] }\n  ]\n});\nconsole.log(formatLayoutResult(\"form layout\", result));\n```\n\n## MCP server\n\n`dove-sn mcp` runs a self-contained MCP stdio server exposing the tools to\nClaude Code and agents: `create_view`, `set_list_layout`, `set_form_layout`,\n`set_related_lists`, `add_choices_to_field`, the schema verbs `create_table` /\n`add_column` / `add_index` (a single-column unique index via `sys_dictionary.unique`,\nread back from the `v_db_index` view - uniqueness enforcement is always reported\nunverified) / `index_list` (read-only: a table's database indexes from `v_db_index`,\nthe only index read surface - `sys_index` is API-level-ACL 403 and `sys_index_column`\ndoes not exist) / `index_create` (create an index, composite and non-unique included, by\nreplaying the platform index-creator form; dry-run by default, idempotent, read back from\n`v_db_index` - and **not** captured in an update set, because a database index is a\nphysical per-instance change), the record-write verbs `set_field` (update scalar fields on an\nexisting record) and `create_record` (insert one record) — both update-set-captured\nand read-back-verified — `host_assets` (deploy a built dist/), plus the Flow Designer\ntools `flow_view` (read a flow/subflow's step graph), `action_view` (read an action\ntype's model), `action_edit` (structurally edit a published action type — per-step\nscripts, step-level inputs/outputs, data-pill wiring — dry-run by default, and the\npublish is read back and verified), `action_clone` (clone an action type — every step\nand its step IO — into a scope and publish + verify it; dry-run by default),\n`action_define` (define an existing action type's inputs, outputs and script/REST\nsteps with data-pill wiring, the way the Designer's Save does; dry-run by default,\nidempotent, read back and verified, optional publish),\n`flow_publish` (compile a flow/subflow snapshot), `flow_copy`\n(copy a flow as an inactive draft), `flow_create` (create a NEW flow from scratch +\npublish, grafting a template), `flow_test` (validate or run a flow), and\n`flow_edit` (patch a flow), plus `invoke_rest` (invoke an arbitrary authenticated\nREST operation — Scripted REST included — with GET/POST/PUT/DELETE; dry-run by\ndefault, response passed through verbatim, bodies never logged) and `app_publish`\n(publish a scoped app to the ServiceNow Store and/or the application repository;\ndry-run by default, Store credentials env-only — they never transit tool\narguments). It reads ServiceNow credentials from the same env vars as the CLI.\n\n```bash\nnpx dove-sn mcp --smoke   # list the registered tools and exit\nnpx dove-sn mcp           # run the stdio server (wire into .mcp.json)\n```\n\n`.mcp.json` entry:\n\n```json\n{ \"mcpServers\": { \"dovetail-servicenow\": { \"command\": \"npx\", \"args\": [\"dove-sn\", \"mcp\"] } } }\n```\n\nThis server is separate from `@tenonhq/dovetail-mcp` (the read-only cross-system\naggregator) — `dovetail-servicenow`'s server is the ServiceNow **write** surface.\n\n## Publishing a Custom Action Type\n\n`publishActionType` compiles the `sys_hub_flow_snapshot` for a Custom Action Type\n— the step that makes it draggable in the Flow Designer palette. This replays the\nDesigner's **Publish** button, which is a plain REST call that **works with basic\nauth** (no session cookie, CSRF token, or `sn_build_agent` role):\n\n```\nGET  /api/now/processflow/action/action_types/{sysId}?sysparm_transaction_scope={scope}\n       -> 200, the full action-type model EXCEPT `steps` (always returns null)\nPOST /api/now/processflow/action/action_types/{sysId}/snapshot?sysparm_transaction_scope={scope}\n       body = the model with a `steps` array grafted in\n       -> 201 Created (compiles the snapshot; also persists step input values\n          back to sys_variable_value)\n```\n\nThis is the **real** snapshot compiler and supersedes `triggerPublication` for\naction types — that function ships in degraded mode (it only sets\n`status=\"published\"` and polls, because the snapshot trigger was unknown when it\nwas written). `triggerPublication` is retained for back-compat and the subflow path.\n\n```ts\nimport { createClient, publishActionType } from \"@tenonhq/dovetail-servicenow\";\n\nvar client = createClient({});\nvar result = await publishActionType({\n  client: client,\n  sysId: \"60e6743e33814bd07b18bc534d5c7b9e\",      // sys_hub_action_type_definition\n  scopeSysId: \"cd61acbbc3c85a1085b196c4e40131bd\",  // sysparm_transaction_scope\n  steps: require(\"./fixtures/my-action.steps.json\") // see caveat below\n});\n// { status: \"published\", httpStatus: 201, snapshotSysId?: \"...\" }\n```\n\n### Steps-fixture caveat (required)\n\nThe GET returns **`steps: null`** even for an already-published action — the\nDesigner assembles `steps` client-side from the step records. So to publish you\n**must supply a `steps` fixture** via `params.steps`. Each step's `action` field\nis remapped to the target `sysId` automatically. If you omit `steps` and the\nfetched model has no usable `steps` array, `publishActionType` throws with a clear\nmessage. For a faithful clone, capture the source action's `steps` from a HAR of\nthe Publish call and store it as a fixture beside your driver.\n\nFull recipe and the 6-record action-type graph:\n`docs/servicenow-flow-designer-headless-authoring.md` in the Craftsman repo.\n\n## Roadmap\n\nThe same query-to-diff pattern will continue across the rest of the\n`sinch-dlr-manual-steps` work: indexes (`sys_db_object_ix`), table properties\n(`accessible_from`), `sys_trigger` and `sys_property` creation.\n","readmeFilename":"README.md"}