mirror of
https://github.com/zernie/vigiles.git
synced 2026-09-14 20:53:57 +08:00
5d4d877608
`flattenContent` read `b.text` and returned "" for anything else. Eight of the sixteen `ContentBlockParam` variants carry their payload in `content`, so half the union was invisible to every instrument built on `extractRequest` — `requestContains`, refs-nudge, injectable-events-delivery. What that cost. Claude Code <= 2.1.227 delivered a PostToolUse hook's additionalContext as its own `text` block; from 2.1.228 (a PATCH) it arrives appended to the `tool_result` block's `content` inside a <system-reminder>. Both deliver. Our probe went blind, three tests reported a false negative, and that reading was written up as #231 and nearly filed upstream as a regression in somebody else's product. Proven by changing only the parser on one machine at claude 2.1.267: blind = "landed=false", typed = "landed=true". Both harnesses now green on 2.1.267 with no change to `injectableEvents`. The guard is a typed exhaustive switch over the union from @anthropic-ai/sdk (MIT, types only, devDependency — erased at compile time, never in a consumer's tree). Mutation-proven: deleting the `tool_result` case fails tsc with "Type 'ToolResultBlockParam' is not assignable to type 'never'". An unknown block serialises rather than vanishing — this is a measurement instrument and its proven failure mode is the false negative. mock-model.test.ts asserted the blind spot as INTENDED ("no `text` -> ''"), which is why no run could find it; that assertion is now inverted and a newer-API block type is asserted as over-included. Refs #231. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
154 lines
4.5 KiB
JSON
154 lines
4.5 KiB
JSON
{
|
|
"name": "vigiles",
|
|
"version": "0.0.0-semantically-released",
|
|
"description": "Audit, test and measure the harness your AI agent runs on — grade your CLAUDE.md / AGENTS.md, skills, subagents and hooks, run them against a scripted model, and measure whether they actually fire.",
|
|
"keywords": [
|
|
"claude-code",
|
|
"codex",
|
|
"agents",
|
|
"agentic",
|
|
"ai",
|
|
"llm",
|
|
"harness",
|
|
"hooks",
|
|
"skills",
|
|
"claude",
|
|
"agents-md",
|
|
"eval",
|
|
"testing",
|
|
"linter"
|
|
],
|
|
"homepage": "https://github.com/zernie/vigiles#readme",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/zernie/vigiles.git"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/zernie/vigiles/issues"
|
|
},
|
|
"license": "MIT",
|
|
"workspaces": [
|
|
"packages/*",
|
|
"report",
|
|
"site"
|
|
],
|
|
"bin": {
|
|
"vigiles": "dist/cli.js"
|
|
},
|
|
"main": "./dist/test.js",
|
|
"types": "./dist/test.d.ts",
|
|
"exports": {
|
|
".": "./dist/test.js",
|
|
"./spec": "./dist/core/spec.js",
|
|
"./eval": "./dist/eval-surface.js",
|
|
"./linting": "./dist/linting.js",
|
|
"./hook": "./dist/hook.js",
|
|
"./claude-code": "./dist/claude-code.js",
|
|
"./codex": "./dist/codex.js",
|
|
"./adapter": "./dist/adapter.js",
|
|
"./vitest": {
|
|
"types": "./dist/vitest.d.mts",
|
|
"default": "./dist/vitest.mjs"
|
|
},
|
|
"./jest": "./dist/jest.js"
|
|
},
|
|
"files": [
|
|
"dist/**/*.js",
|
|
"dist/**/*.mjs",
|
|
"dist/**/*.d.ts",
|
|
"dist/**/*.d.mts",
|
|
"dist/audit-report.template.html",
|
|
"!dist/**/*.test.js",
|
|
"!dist/**/*.test.d.ts",
|
|
"action.yml",
|
|
"plugin.json",
|
|
".claude-plugin",
|
|
"hooks",
|
|
"skills",
|
|
"!skills/**/*.spec.ts",
|
|
"README.md",
|
|
"LICENSE"
|
|
],
|
|
"scripts": {
|
|
"build": "tsc && node scripts/build-report.mjs",
|
|
"build:core": "tsc",
|
|
"test": "npm run build && vitest run",
|
|
"coverage": "npm run build && vitest run --coverage",
|
|
"lint": "eslint src/",
|
|
"fmt": "prettier --write .",
|
|
"fmt:check": "prettier --check .",
|
|
"test:unit": "npm run build && vitest run --project unit",
|
|
"test:integration": "npm run build && vitest run --project integration",
|
|
"test:e2e": "npm run build && vitest run --project e2e",
|
|
"test:cli-e2e": "bash test/e2e/run.sh",
|
|
"test:harness": "npm run build && node dist/cli.js test",
|
|
"test:eval": "npm run build && node dist/cli.js eval --all",
|
|
"test:vitest": "npm run build && vitest run --project runners",
|
|
"test:jest": "npm run build && jest",
|
|
"test:types": "npm run build && tsc --noEmit -p test/types/tsconfig.json",
|
|
"api:report": "npm run build && node scripts/api-extractor.mjs --local",
|
|
"api:check": "npm run build && node scripts/api-extractor.mjs",
|
|
"check": "node scripts/check.mjs",
|
|
"docs:check": "npm run build && node scripts/check-doc-imports.mjs . docs README.md",
|
|
"exports:check": "npm run build && node scripts/check-export-prefixes.mjs .",
|
|
"internal:check": "npm run api:check && node scripts/check-internal-tag.mjs",
|
|
"docs:api": "typedoc"
|
|
},
|
|
"devDependencies": {
|
|
"@anthropic-ai/sdk": "^0.124.0",
|
|
"@eslint/js": "^10.0.1",
|
|
"@jackchuka/mdschema": "^0.12.8",
|
|
"@microsoft/api-extractor": "^7.58.9",
|
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"@types/markdown-it": "^14.1.2",
|
|
"@types/minimatch": "^5.1.2",
|
|
"@types/node": "^20.19.39",
|
|
"@types/picomatch": "^4.0.2",
|
|
"@typescript-eslint/eslint-plugin": "^8.58.0",
|
|
"@typescript-eslint/parser": "^8.58.0",
|
|
"@vitest/coverage-v8": "^4.1.8",
|
|
"conventional-changelog-conventionalcommits": "^10.3.0",
|
|
"eslint": "^10.1.0",
|
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
"eslint-plugin-boundaries": "^6.0.2",
|
|
"eslint-plugin-sonarjs": "^4.0.2",
|
|
"globals": "^17.4.0",
|
|
"jest": "^30.4.2",
|
|
"picomatch": "^4.0.4",
|
|
"prettier": "^3.8.1",
|
|
"tsx": "^4.21.0",
|
|
"typedoc": "^0.28.19",
|
|
"typescript": "^5.9.3",
|
|
"vitest": "^4.1.8"
|
|
},
|
|
"peerDependencies": {
|
|
"jest": ">=28",
|
|
"vitest": ">=1"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"jest": {
|
|
"optional": true
|
|
},
|
|
"vitest": {
|
|
"optional": true
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"@ast-grep/lang-python": "^0.0.6",
|
|
"@ast-grep/lang-ruby": "^0.0.7",
|
|
"@ast-grep/lang-rust": "^0.0.7",
|
|
"@ast-grep/napi": "^0.43.0",
|
|
"@iarna/toml": "^2.2.5",
|
|
"ci-info": "^4.4.0",
|
|
"cosmiconfig": "^9.0.1",
|
|
"glob": "^13.0.6",
|
|
"js-yaml": "^4.1.0",
|
|
"markdown-it": "^14.3.0",
|
|
"minimatch": "^10.0.1",
|
|
"mvdan-sh": "^0.10.1",
|
|
"ts-essentials": "^10.2.1",
|
|
"typescript": "^5.9.3"
|
|
}
|
|
}
|