@waratahlabs/canopy 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +323 -0
- package/SKILL.md +97 -0
- package/demo/data/openclaw-demo.tc.json +397 -0
- package/demo/data/openclaw-nemoclaw-demo.tc.json +475 -0
- package/demo/index.html +556 -0
- package/dist/adapters/a2a.d.ts +82 -0
- package/dist/adapters/a2a.d.ts.map +1 -0
- package/dist/adapters/a2a.js +215 -0
- package/dist/adapters/a2a.js.map +1 -0
- package/dist/adapters/a2a.test.d.ts +2 -0
- package/dist/adapters/a2a.test.d.ts.map +1 -0
- package/dist/adapters/a2a.test.js +196 -0
- package/dist/adapters/a2a.test.js.map +1 -0
- package/dist/adapters/langfuse.d.ts +28 -0
- package/dist/adapters/langfuse.d.ts.map +1 -0
- package/dist/adapters/langfuse.js +192 -0
- package/dist/adapters/langfuse.js.map +1 -0
- package/dist/adapters/n8n.d.ts +4 -0
- package/dist/adapters/n8n.d.ts.map +1 -0
- package/dist/adapters/n8n.js +89 -0
- package/dist/adapters/n8n.js.map +1 -0
- package/dist/adapters/openclaw.d.ts +58 -0
- package/dist/adapters/openclaw.d.ts.map +1 -0
- package/dist/adapters/openclaw.js +275 -0
- package/dist/adapters/openclaw.js.map +1 -0
- package/dist/adapters/types.d.ts +33 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/aivss/atlas/coverage-matrix.d.ts +12 -0
- package/dist/aivss/atlas/coverage-matrix.d.ts.map +1 -0
- package/dist/aivss/atlas/coverage-matrix.js +272 -0
- package/dist/aivss/atlas/coverage-matrix.js.map +1 -0
- package/dist/aivss/atlas/loader.d.ts +28 -0
- package/dist/aivss/atlas/loader.d.ts.map +1 -0
- package/dist/aivss/atlas/loader.js +126 -0
- package/dist/aivss/atlas/loader.js.map +1 -0
- package/dist/aivss/atlas/loader.test.d.ts +11 -0
- package/dist/aivss/atlas/loader.test.d.ts.map +1 -0
- package/dist/aivss/atlas/loader.test.js +111 -0
- package/dist/aivss/atlas/loader.test.js.map +1 -0
- package/dist/aivss/atlas/resolve-path.d.ts +34 -0
- package/dist/aivss/atlas/resolve-path.d.ts.map +1 -0
- package/dist/aivss/atlas/resolve-path.js +58 -0
- package/dist/aivss/atlas/resolve-path.js.map +1 -0
- package/dist/aivss/batch/batch-builder.d.ts +11 -0
- package/dist/aivss/batch/batch-builder.d.ts.map +1 -0
- package/dist/aivss/batch/batch-builder.js +75 -0
- package/dist/aivss/batch/batch-builder.js.map +1 -0
- package/dist/aivss/index.d.ts +21 -0
- package/dist/aivss/index.d.ts.map +1 -0
- package/dist/aivss/index.js +19 -0
- package/dist/aivss/index.js.map +1 -0
- package/dist/aivss/knowledge-base/kb-client.d.ts +9 -0
- package/dist/aivss/knowledge-base/kb-client.d.ts.map +1 -0
- package/dist/aivss/knowledge-base/kb-client.js +139 -0
- package/dist/aivss/knowledge-base/kb-client.js.map +1 -0
- package/dist/aivss/knowledge-base/kb-types.d.ts +21 -0
- package/dist/aivss/knowledge-base/kb-types.d.ts.map +1 -0
- package/dist/aivss/knowledge-base/kb-types.js +2 -0
- package/dist/aivss/knowledge-base/kb-types.js.map +1 -0
- package/dist/aivss/knowledge-base/search-builder.d.ts +7 -0
- package/dist/aivss/knowledge-base/search-builder.d.ts.map +1 -0
- package/dist/aivss/knowledge-base/search-builder.js +119 -0
- package/dist/aivss/knowledge-base/search-builder.js.map +1 -0
- package/dist/aivss/metrics/aa.d.ts +3 -0
- package/dist/aivss/metrics/aa.d.ts.map +1 -0
- package/dist/aivss/metrics/aa.js +26 -0
- package/dist/aivss/metrics/aa.js.map +1 -0
- package/dist/aivss/metrics/ad.d.ts +3 -0
- package/dist/aivss/metrics/ad.d.ts.map +1 -0
- package/dist/aivss/metrics/ad.js +30 -0
- package/dist/aivss/metrics/ad.js.map +1 -0
- package/dist/aivss/metrics/cs.d.ts +3 -0
- package/dist/aivss/metrics/cs.d.ts.map +1 -0
- package/dist/aivss/metrics/cs.js +50 -0
- package/dist/aivss/metrics/cs.js.map +1 -0
- package/dist/aivss/metrics/dc.d.ts +3 -0
- package/dist/aivss/metrics/dc.d.ts.map +1 -0
- package/dist/aivss/metrics/dc.js +30 -0
- package/dist/aivss/metrics/dc.js.map +1 -0
- package/dist/aivss/metrics/ds.d.ts +3 -0
- package/dist/aivss/metrics/ds.d.ts.map +1 -0
- package/dist/aivss/metrics/ds.js +26 -0
- package/dist/aivss/metrics/ds.js.map +1 -0
- package/dist/aivss/metrics/ei.d.ts +3 -0
- package/dist/aivss/metrics/ei.d.ts.map +1 -0
- package/dist/aivss/metrics/ei.js +30 -0
- package/dist/aivss/metrics/ei.js.map +1 -0
- package/dist/aivss/metrics/gv.d.ts +3 -0
- package/dist/aivss/metrics/gv.d.ts.map +1 -0
- package/dist/aivss/metrics/gv.js +34 -0
- package/dist/aivss/metrics/gv.js.map +1 -0
- package/dist/aivss/metrics/ll.d.ts +3 -0
- package/dist/aivss/metrics/ll.d.ts.map +1 -0
- package/dist/aivss/metrics/ll.js +30 -0
- package/dist/aivss/metrics/ll.js.map +1 -0
- package/dist/aivss/metrics/mr.d.ts +3 -0
- package/dist/aivss/metrics/mr.d.ts.map +1 -0
- package/dist/aivss/metrics/mr.js +26 -0
- package/dist/aivss/metrics/mr.js.map +1 -0
- package/dist/aivss/metrics/shared.d.ts +22 -0
- package/dist/aivss/metrics/shared.d.ts.map +1 -0
- package/dist/aivss/metrics/shared.js +70 -0
- package/dist/aivss/metrics/shared.js.map +1 -0
- package/dist/aivss/prompts/base-system-prompt.d.ts +2 -0
- package/dist/aivss/prompts/base-system-prompt.d.ts.map +1 -0
- package/dist/aivss/prompts/base-system-prompt.js +31 -0
- package/dist/aivss/prompts/base-system-prompt.js.map +1 -0
- package/dist/aivss/prompts/prompt-composer.d.ts +13 -0
- package/dist/aivss/prompts/prompt-composer.d.ts.map +1 -0
- package/dist/aivss/prompts/prompt-composer.js +21 -0
- package/dist/aivss/prompts/prompt-composer.js.map +1 -0
- package/dist/aivss/scoring/a2a-corpus.test.d.ts +28 -0
- package/dist/aivss/scoring/a2a-corpus.test.d.ts.map +1 -0
- package/dist/aivss/scoring/a2a-corpus.test.js +109 -0
- package/dist/aivss/scoring/a2a-corpus.test.js.map +1 -0
- package/dist/aivss/scoring/determinism.test.d.ts +16 -0
- package/dist/aivss/scoring/determinism.test.d.ts.map +1 -0
- package/dist/aivss/scoring/determinism.test.js +169 -0
- package/dist/aivss/scoring/determinism.test.js.map +1 -0
- package/dist/aivss/scoring/heuristic-scorer.d.ts +21 -0
- package/dist/aivss/scoring/heuristic-scorer.d.ts.map +1 -0
- package/dist/aivss/scoring/heuristic-scorer.js +299 -0
- package/dist/aivss/scoring/heuristic-scorer.js.map +1 -0
- package/dist/aivss/scoring/heuristic-scorer.test.d.ts +8 -0
- package/dist/aivss/scoring/heuristic-scorer.test.d.ts.map +1 -0
- package/dist/aivss/scoring/heuristic-scorer.test.js +150 -0
- package/dist/aivss/scoring/heuristic-scorer.test.js.map +1 -0
- package/dist/aivss/scoring/scoring-mode.d.ts +48 -0
- package/dist/aivss/scoring/scoring-mode.d.ts.map +1 -0
- package/dist/aivss/scoring/scoring-mode.js +64 -0
- package/dist/aivss/scoring/scoring-mode.js.map +1 -0
- package/dist/aivss/scoring/v4-engine.d.ts +15 -0
- package/dist/aivss/scoring/v4-engine.d.ts.map +1 -0
- package/dist/aivss/scoring/v4-engine.js +84 -0
- package/dist/aivss/scoring/v4-engine.js.map +1 -0
- package/dist/aivss/scoring/v4-engine.test.d.ts +16 -0
- package/dist/aivss/scoring/v4-engine.test.d.ts.map +1 -0
- package/dist/aivss/scoring/v4-engine.test.js +156 -0
- package/dist/aivss/scoring/v4-engine.test.js.map +1 -0
- package/dist/aivss/types.d.ts +92 -0
- package/dist/aivss/types.d.ts.map +1 -0
- package/dist/aivss/types.js +25 -0
- package/dist/aivss/types.js.map +1 -0
- package/dist/baseline/baseline.test.d.ts +2 -0
- package/dist/baseline/baseline.test.d.ts.map +1 -0
- package/dist/baseline/baseline.test.js +219 -0
- package/dist/baseline/baseline.test.js.map +1 -0
- package/dist/baseline/diff.d.ts +42 -0
- package/dist/baseline/diff.d.ts.map +1 -0
- package/dist/baseline/diff.js +124 -0
- package/dist/baseline/diff.js.map +1 -0
- package/dist/baseline/store.d.ts +51 -0
- package/dist/baseline/store.d.ts.map +1 -0
- package/dist/baseline/store.js +92 -0
- package/dist/baseline/store.js.map +1 -0
- package/dist/batch/anthropic-batch-runner.d.ts +50 -0
- package/dist/batch/anthropic-batch-runner.d.ts.map +1 -0
- package/dist/batch/anthropic-batch-runner.js +91 -0
- package/dist/batch/anthropic-batch-runner.js.map +1 -0
- package/dist/batch/bedrock-batch-runner.d.ts +90 -0
- package/dist/batch/bedrock-batch-runner.d.ts.map +1 -0
- package/dist/batch/bedrock-batch-runner.js +199 -0
- package/dist/batch/bedrock-batch-runner.js.map +1 -0
- package/dist/batch/providers/anthropic.d.ts +55 -0
- package/dist/batch/providers/anthropic.d.ts.map +1 -0
- package/dist/batch/providers/anthropic.js +103 -0
- package/dist/batch/providers/anthropic.js.map +1 -0
- package/dist/batch/providers/bedrock.d.ts +31 -0
- package/dist/batch/providers/bedrock.d.ts.map +1 -0
- package/dist/batch/providers/bedrock.js +42 -0
- package/dist/batch/providers/bedrock.js.map +1 -0
- package/dist/batch/providers/harness.d.ts +36 -0
- package/dist/batch/providers/harness.d.ts.map +1 -0
- package/dist/batch/providers/harness.js +65 -0
- package/dist/batch/providers/harness.js.map +1 -0
- package/dist/batch/providers/harness.test.d.ts +7 -0
- package/dist/batch/providers/harness.test.d.ts.map +1 -0
- package/dist/batch/providers/harness.test.js +84 -0
- package/dist/batch/providers/harness.test.js.map +1 -0
- package/dist/batch/providers/index.d.ts +82 -0
- package/dist/batch/providers/index.d.ts.map +1 -0
- package/dist/batch/providers/index.js +82 -0
- package/dist/batch/providers/index.js.map +1 -0
- package/dist/batch/providers/ollama.d.ts +68 -0
- package/dist/batch/providers/ollama.d.ts.map +1 -0
- package/dist/batch/providers/ollama.js +108 -0
- package/dist/batch/providers/ollama.js.map +1 -0
- package/dist/batch/response-parser.d.ts +45 -0
- package/dist/batch/response-parser.d.ts.map +1 -0
- package/dist/batch/response-parser.js +161 -0
- package/dist/batch/response-parser.js.map +1 -0
- package/dist/batch/types.d.ts +87 -0
- package/dist/batch/types.d.ts.map +1 -0
- package/dist/batch/types.js +8 -0
- package/dist/batch/types.js.map +1 -0
- package/dist/cli.d.ts +15 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1037 -0
- package/dist/cli.js.map +1 -0
- package/dist/examples/a2a-assessment.d.ts +20 -0
- package/dist/examples/a2a-assessment.d.ts.map +1 -0
- package/dist/examples/a2a-assessment.js +115 -0
- package/dist/examples/a2a-assessment.js.map +1 -0
- package/dist/examples/batch-assessment.d.ts +18 -0
- package/dist/examples/batch-assessment.d.ts.map +1 -0
- package/dist/examples/batch-assessment.js +112 -0
- package/dist/examples/batch-assessment.js.map +1 -0
- package/dist/examples/batch-submission-flow.d.ts +2 -0
- package/dist/examples/batch-submission-flow.d.ts.map +1 -0
- package/dist/examples/batch-submission-flow.js +279 -0
- package/dist/examples/batch-submission-flow.js.map +1 -0
- package/dist/examples/demo-agent-definition.json +58 -0
- package/dist/examples/langfuse-assessment.d.ts +2 -0
- package/dist/examples/langfuse-assessment.d.ts.map +1 -0
- package/dist/examples/langfuse-assessment.js +46 -0
- package/dist/examples/langfuse-assessment.js.map +1 -0
- package/dist/examples/model-eval.d.ts +25 -0
- package/dist/examples/model-eval.d.ts.map +1 -0
- package/dist/examples/model-eval.js +94 -0
- package/dist/examples/model-eval.js.map +1 -0
- package/dist/examples/openclaw-assessment.d.ts +17 -0
- package/dist/examples/openclaw-assessment.d.ts.map +1 -0
- package/dist/examples/openclaw-assessment.js +79 -0
- package/dist/examples/openclaw-assessment.js.map +1 -0
- package/dist/examples/simple-assessment.d.ts +2 -0
- package/dist/examples/simple-assessment.d.ts.map +1 -0
- package/dist/examples/simple-assessment.js +146 -0
- package/dist/examples/simple-assessment.js.map +1 -0
- package/dist/examples/threat-model-demo.d.ts +2 -0
- package/dist/examples/threat-model-demo.d.ts.map +1 -0
- package/dist/examples/threat-model-demo.js +103 -0
- package/dist/examples/threat-model-demo.js.map +1 -0
- package/dist/index.d.ts +60 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -0
- package/dist/output/likec4-generator.d.ts +43 -0
- package/dist/output/likec4-generator.d.ts.map +1 -0
- package/dist/output/likec4-generator.js +287 -0
- package/dist/output/likec4-generator.js.map +1 -0
- package/dist/output/slot-filler.d.ts +6 -0
- package/dist/output/slot-filler.d.ts.map +1 -0
- package/dist/output/slot-filler.js +71 -0
- package/dist/output/slot-filler.js.map +1 -0
- package/dist/output/tc-assembler.d.ts +30 -0
- package/dist/output/tc-assembler.d.ts.map +1 -0
- package/dist/output/tc-assembler.js +227 -0
- package/dist/output/tc-assembler.js.map +1 -0
- package/dist/output/tc-types.d.ts +41 -0
- package/dist/output/tc-types.d.ts.map +1 -0
- package/dist/output/tc-types.js +5 -0
- package/dist/output/tc-types.js.map +1 -0
- package/dist/output/tc-validator.test.d.ts +9 -0
- package/dist/output/tc-validator.test.d.ts.map +1 -0
- package/dist/output/tc-validator.test.js +194 -0
- package/dist/output/tc-validator.test.js.map +1 -0
- package/dist/providers/anthropic.d.ts +9 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +30 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/bedrock.d.ts +9 -0
- package/dist/providers/bedrock.d.ts.map +1 -0
- package/dist/providers/bedrock.js +38 -0
- package/dist/providers/bedrock.js.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +14 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/types.d.ts +12 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +5 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/references/acsc-risks.d.ts +18 -0
- package/dist/references/acsc-risks.d.ts.map +1 -0
- package/dist/references/acsc-risks.js +232 -0
- package/dist/references/acsc-risks.js.map +1 -0
- package/dist/references/aicm.d.ts +41 -0
- package/dist/references/aicm.d.ts.map +1 -0
- package/dist/references/aicm.js +447 -0
- package/dist/references/aicm.js.map +1 -0
- package/dist/references/dstg-meaid.d.ts +59 -0
- package/dist/references/dstg-meaid.d.ts.map +1 -0
- package/dist/references/dstg-meaid.js +352 -0
- package/dist/references/dstg-meaid.js.map +1 -0
- package/dist/references/index.d.ts +20 -0
- package/dist/references/index.d.ts.map +1 -0
- package/dist/references/index.js +31 -0
- package/dist/references/index.js.map +1 -0
- package/dist/references/nemoclaw.d.ts +48 -0
- package/dist/references/nemoclaw.d.ts.map +1 -0
- package/dist/references/nemoclaw.js +140 -0
- package/dist/references/nemoclaw.js.map +1 -0
- package/dist/references/nist-ai-rmf.d.ts +31 -0
- package/dist/references/nist-ai-rmf.d.ts.map +1 -0
- package/dist/references/nist-ai-rmf.js +627 -0
- package/dist/references/nist-ai-rmf.js.map +1 -0
- package/dist/references/owasp-agentic-top10.d.ts +50 -0
- package/dist/references/owasp-agentic-top10.d.ts.map +1 -0
- package/dist/references/owasp-agentic-top10.js +202 -0
- package/dist/references/owasp-agentic-top10.js.map +1 -0
- package/dist/references/registry-parity.test.d.ts +17 -0
- package/dist/references/registry-parity.test.d.ts.map +1 -0
- package/dist/references/registry-parity.test.js +87 -0
- package/dist/references/registry-parity.test.js.map +1 -0
- package/dist/references/registry.d.ts +90 -0
- package/dist/references/registry.d.ts.map +1 -0
- package/dist/references/registry.js +29 -0
- package/dist/references/registry.js.map +1 -0
- package/dist/tools/model-eval.d.ts +97 -0
- package/dist/tools/model-eval.d.ts.map +1 -0
- package/dist/tools/model-eval.js +307 -0
- package/dist/tools/model-eval.js.map +1 -0
- package/package.json +105 -0
- package/schemas/threat-composer-v1.schema.json +966 -0
- package/vendor/atlas-release/ATLAS-2026.07.yaml +17877 -0
- package/vendor/atlas-release/README.md +41 -0
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A adapter example — walk an Agent-to-Agent delegation graph and produce
|
|
3
|
+
* a structured AIVSS threat model.
|
|
4
|
+
*
|
|
5
|
+
* Usage (against a local A2A agent):
|
|
6
|
+
* bun src/examples/a2a-assessment.ts
|
|
7
|
+
*
|
|
8
|
+
* Or via CLI:
|
|
9
|
+
* canopy a2a-assess --url https://your-agent.example.com --out output/a2a-threat-model.tc.json
|
|
10
|
+
*
|
|
11
|
+
* The adapter fetches /.well-known/agent.json from each URL, follows
|
|
12
|
+
* delegatesTo links up to maxDepth hops, and injects UNDECLARED_CAPABILITY_RISK
|
|
13
|
+
* as a mandatory High finding for every agent — declared surface ≠ actual
|
|
14
|
+
* capability is a structural property of the A2A protocol, not a configuration
|
|
15
|
+
* choice.
|
|
16
|
+
*
|
|
17
|
+
* This example uses a mock server so it runs without network access.
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=a2a-assessment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a-assessment.d.ts","sourceRoot":"","sources":["../../src/examples/a2a-assessment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2A adapter example — walk an Agent-to-Agent delegation graph and produce
|
|
3
|
+
* a structured AIVSS threat model.
|
|
4
|
+
*
|
|
5
|
+
* Usage (against a local A2A agent):
|
|
6
|
+
* bun src/examples/a2a-assessment.ts
|
|
7
|
+
*
|
|
8
|
+
* Or via CLI:
|
|
9
|
+
* canopy a2a-assess --url https://your-agent.example.com --out output/a2a-threat-model.tc.json
|
|
10
|
+
*
|
|
11
|
+
* The adapter fetches /.well-known/agent.json from each URL, follows
|
|
12
|
+
* delegatesTo links up to maxDepth hops, and injects UNDECLARED_CAPABILITY_RISK
|
|
13
|
+
* as a mandatory High finding for every agent — declared surface ≠ actual
|
|
14
|
+
* capability is a structural property of the A2A protocol, not a configuration
|
|
15
|
+
* choice.
|
|
16
|
+
*
|
|
17
|
+
* This example uses a mock server so it runs without network access.
|
|
18
|
+
*/
|
|
19
|
+
import * as fs from "node:fs";
|
|
20
|
+
import * as path from "node:path";
|
|
21
|
+
import { fileURLToPath } from "node:url";
|
|
22
|
+
import { walkA2AGraph } from "../adapters/a2a.js";
|
|
23
|
+
import { assessWorkflow } from "../index.js";
|
|
24
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
25
|
+
const OUTPUT_DIR = path.resolve(__dirname, "../../output");
|
|
26
|
+
// ── Mock A2A server (no network required) ─────────────────────────────────────
|
|
27
|
+
const MOCK_CARDS = {
|
|
28
|
+
"orchestrator.local/.well-known/agent.json": {
|
|
29
|
+
name: "Orchestrator Agent",
|
|
30
|
+
description: "Autonomous task orchestrator. Decomposes user goals into subtasks and delegates to specialist agents.",
|
|
31
|
+
url: "https://orchestrator.local",
|
|
32
|
+
version: "1.0.0",
|
|
33
|
+
provider: { organization: "Acme Corp", url: "https://acme.example.com" },
|
|
34
|
+
capabilities: { streaming: true, pushNotifications: false },
|
|
35
|
+
skills: [
|
|
36
|
+
{ id: "plan-tasks", name: "Plan Tasks", description: "Decompose a goal into a task graph" },
|
|
37
|
+
{ id: "delegate", name: "Delegate to Specialist", description: "Route subtasks to downstream agents" },
|
|
38
|
+
],
|
|
39
|
+
delegatesTo: ["https://data-agent.local", "https://action-agent.local"],
|
|
40
|
+
},
|
|
41
|
+
"data-agent.local/.well-known/agent.json": {
|
|
42
|
+
name: "Data Agent",
|
|
43
|
+
description: "Retrieves and aggregates structured data from internal databases and external APIs.",
|
|
44
|
+
url: "https://data-agent.local",
|
|
45
|
+
version: "1.0.0",
|
|
46
|
+
capabilities: { streaming: false },
|
|
47
|
+
skills: [
|
|
48
|
+
{ id: "query-db", name: "Query Database", description: "Run read queries against the internal PostgreSQL database" },
|
|
49
|
+
{ id: "fetch-api", name: "Fetch External API", description: "Call third-party REST APIs with service credentials" },
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
"action-agent.local/.well-known/agent.json": {
|
|
53
|
+
name: "Action Agent",
|
|
54
|
+
description: "Executes write operations: sends emails, updates CRM records, triggers webhooks.",
|
|
55
|
+
url: "https://action-agent.local",
|
|
56
|
+
version: "1.0.0",
|
|
57
|
+
capabilities: { streaming: false },
|
|
58
|
+
skills: [
|
|
59
|
+
{ id: "send-email", name: "Send Email", description: "Send email via SMTP relay using service account" },
|
|
60
|
+
{ id: "update-crm", name: "Update CRM", description: "Write lead/contact records to Salesforce" },
|
|
61
|
+
{ id: "trigger-webhook", name: "Trigger Webhook", description: "POST arbitrary payloads to registered webhook URLs" },
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
// Patch global fetch for this demo
|
|
66
|
+
const originalFetch = globalThis.fetch;
|
|
67
|
+
globalThis.fetch = (async (input) => {
|
|
68
|
+
const url = typeof input === "string" ? input : input.toString();
|
|
69
|
+
const key = Object.keys(MOCK_CARDS).find((k) => url.includes(k));
|
|
70
|
+
if (key) {
|
|
71
|
+
return new Response(JSON.stringify(MOCK_CARDS[key]), {
|
|
72
|
+
status: 200,
|
|
73
|
+
headers: { "Content-Type": "application/json" },
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return new Response(null, { status: 404 });
|
|
77
|
+
});
|
|
78
|
+
// ── Run ───────────────────────────────────────────────────────────────────────
|
|
79
|
+
async function main() {
|
|
80
|
+
console.log("Canopy A2A Assessment Example");
|
|
81
|
+
console.log("Walking delegation graph from orchestrator.local…\n");
|
|
82
|
+
const walkResult = await walkA2AGraph({
|
|
83
|
+
urls: ["https://orchestrator.local"],
|
|
84
|
+
maxDepth: 2,
|
|
85
|
+
onCard: (url, card) => {
|
|
86
|
+
if (card)
|
|
87
|
+
console.log(` ✓ ${card.name}`);
|
|
88
|
+
else
|
|
89
|
+
console.log(` ✗ unreachable: ${url}`);
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
globalThis.fetch = originalFetch; // restore
|
|
93
|
+
console.log(`\nDiscovered ${walkResult.agents.length} agents, ${walkResult.handoffs.length} handoffs\n`);
|
|
94
|
+
// Run threat assessment (mock severity — no API key needed for the example)
|
|
95
|
+
console.log("Running AIVSS threat assessment…");
|
|
96
|
+
const tcFormat = await assessWorkflow({
|
|
97
|
+
input: { type: "agents", agents: walkResult.agents, handoffs: walkResult.handoffs },
|
|
98
|
+
// No provider — structural mapping only for the example
|
|
99
|
+
applicationName: "Acme Corp A2A Workflow",
|
|
100
|
+
});
|
|
101
|
+
fs.mkdirSync(OUTPUT_DIR, { recursive: true });
|
|
102
|
+
const outPath = path.join(OUTPUT_DIR, "a2a-threat-model.tc.json");
|
|
103
|
+
fs.writeFileSync(outPath, JSON.stringify(tcFormat, null, 2));
|
|
104
|
+
const threatCount = tcFormat.threats?.length ?? 0;
|
|
105
|
+
const mitigationCount = tcFormat.mitigations?.length ?? 0;
|
|
106
|
+
console.log(`\n✓ ${threatCount} threats · ${mitigationCount} mitigations → ${outPath}`);
|
|
107
|
+
console.log("\nKey finding: every agent carries UNDECLARED_CAPABILITY_RISK.");
|
|
108
|
+
console.log("Declared skill surface (Agent Card) ≠ actual model behaviour at runtime.");
|
|
109
|
+
console.log("This is a structural property of the A2A protocol — not a misconfiguration.");
|
|
110
|
+
}
|
|
111
|
+
main().catch((err) => {
|
|
112
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
113
|
+
process.exit(1);
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=a2a-assessment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2a-assessment.js","sourceRoot":"","sources":["../../src/examples/a2a-assessment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bedrock Batch Assessment Example
|
|
3
|
+
*
|
|
4
|
+
* Runs a live Canopy assessment using Amazon Bedrock Batch Inference (Nova 2 Lite)
|
|
5
|
+
* for real per-sub-category severity scores instead of the PoC mock.
|
|
6
|
+
*
|
|
7
|
+
* Prerequisites:
|
|
8
|
+
* - AWS credentials available (env vars, ~/.aws/credentials, or EC2 instance role)
|
|
9
|
+
* - S3 bucket accessible to the IAM principal running this script
|
|
10
|
+
* - IAM role with bedrock:CreateModelInvocationJob + s3 permissions (see bedrock-batch-runner.ts)
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* S3_BUCKET=my-canopy-bucket \
|
|
14
|
+
* ROLE_ARN=arn:aws:iam::123456789012:role/CanopyBatchRole \
|
|
15
|
+
* bun src/examples/batch-assessment.ts
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=batch-assessment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-assessment.d.ts","sourceRoot":"","sources":["../../src/examples/batch-assessment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bedrock Batch Assessment Example
|
|
3
|
+
*
|
|
4
|
+
* Runs a live Canopy assessment using Amazon Bedrock Batch Inference (Nova 2 Lite)
|
|
5
|
+
* for real per-sub-category severity scores instead of the PoC mock.
|
|
6
|
+
*
|
|
7
|
+
* Prerequisites:
|
|
8
|
+
* - AWS credentials available (env vars, ~/.aws/credentials, or EC2 instance role)
|
|
9
|
+
* - S3 bucket accessible to the IAM principal running this script
|
|
10
|
+
* - IAM role with bedrock:CreateModelInvocationJob + s3 permissions (see bedrock-batch-runner.ts)
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* S3_BUCKET=my-canopy-bucket \
|
|
14
|
+
* ROLE_ARN=arn:aws:iam::123456789012:role/CanopyBatchRole \
|
|
15
|
+
* bun src/examples/batch-assessment.ts
|
|
16
|
+
*/
|
|
17
|
+
import * as path from "node:path";
|
|
18
|
+
import * as fs from "node:fs";
|
|
19
|
+
import { assessWorkflow, generateLikeC4, likec4Filename, createBatchProvider } from "../index.js";
|
|
20
|
+
const S3_BUCKET = process.env["S3_BUCKET"];
|
|
21
|
+
const ROLE_ARN = process.env["ROLE_ARN"];
|
|
22
|
+
if (!S3_BUCKET || !ROLE_ARN) {
|
|
23
|
+
console.error("Error: S3_BUCKET and ROLE_ARN environment variables are required.\n" +
|
|
24
|
+
" S3_BUCKET=my-canopy-bucket ROLE_ARN=arn:aws:iam::123456789012:role/CanopyRole bun src/examples/batch-assessment.ts");
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const OUTPUT_DIR = path.resolve(process.cwd(), "output");
|
|
28
|
+
fs.mkdirSync(OUTPUT_DIR, { recursive: true });
|
|
29
|
+
// ── Agent definition ─────────────────────────────────────────────────────────
|
|
30
|
+
const agent = {
|
|
31
|
+
id: "mortgage-001",
|
|
32
|
+
name: "Mortgage Assistant",
|
|
33
|
+
model: "claude-sonnet-4-6",
|
|
34
|
+
systemPrompt: "You are a mortgage application assistant at a regulated financial institution. " +
|
|
35
|
+
"Help customers understand mortgage products, check application status, and retrieve documents. " +
|
|
36
|
+
"You must comply with NCCP Act obligations and privacy legislation. " +
|
|
37
|
+
"Never disclose another customer's information. Escalate fraud indicators immediately.",
|
|
38
|
+
tools: [
|
|
39
|
+
{ name: "retrieve_application", description: "Retrieve a customer mortgage application by ID" },
|
|
40
|
+
{ name: "fetch_credit_report", description: "Fetch credit bureau report for an applicant" },
|
|
41
|
+
{ name: "send_document_request", description: "Send a document request to a customer via email", dangerous: true },
|
|
42
|
+
],
|
|
43
|
+
permissions: ["read:applications", "read:credit-reports", "write:document-requests"],
|
|
44
|
+
deploymentContext: "FinancialServices",
|
|
45
|
+
modelComplexity: "Moderate",
|
|
46
|
+
mitigationMultiplier: 1.2,
|
|
47
|
+
finetuned: false,
|
|
48
|
+
dependencies: ["application-db", "credit-bureau-api", "document-service"],
|
|
49
|
+
secretManagement: "AWS Secrets Manager",
|
|
50
|
+
deployment: "AWS ECS Fargate",
|
|
51
|
+
};
|
|
52
|
+
// ── Run assessment ────────────────────────────────────────────────────────────
|
|
53
|
+
async function main() {
|
|
54
|
+
const start = Date.now();
|
|
55
|
+
console.log("Starting Canopy batch assessment…");
|
|
56
|
+
console.log(` Model: us.amazon.nova-2-lite-v1:0 (Nova 2 Lite cross-region)`);
|
|
57
|
+
console.log(` Bucket: ${S3_BUCKET}`);
|
|
58
|
+
console.log(` Role: ${ROLE_ARN}`);
|
|
59
|
+
console.log();
|
|
60
|
+
const batchProvider = createBatchProvider({
|
|
61
|
+
type: "bedrock",
|
|
62
|
+
s3Bucket: S3_BUCKET,
|
|
63
|
+
roleArn: ROLE_ARN,
|
|
64
|
+
region: process.env["AWS_REGION"] ?? "us-east-1",
|
|
65
|
+
s3Prefix: "canopy-batch",
|
|
66
|
+
maxTokens: 2048,
|
|
67
|
+
pollIntervalMs: 30000,
|
|
68
|
+
timeoutMs: 60 * 60 * 1000,
|
|
69
|
+
});
|
|
70
|
+
let lastStatus = "";
|
|
71
|
+
const tcFormat = await assessWorkflow({
|
|
72
|
+
input: { type: "agents", agents: [agent] },
|
|
73
|
+
provider: { type: "bedrock" },
|
|
74
|
+
applicationName: "Mortgage Platform",
|
|
75
|
+
batchProvider,
|
|
76
|
+
onBatchProgress: (status) => {
|
|
77
|
+
if (status !== lastStatus) {
|
|
78
|
+
lastStatus = status;
|
|
79
|
+
const elapsed = Math.round((Date.now() - start) / 1000);
|
|
80
|
+
console.log(` [${elapsed}s] ${status}`);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
// ── Write outputs ─────────────────────────────────────────────────────────────
|
|
85
|
+
const tcFile = path.join(OUTPUT_DIR, "mortgage-platform-batch.tc.json");
|
|
86
|
+
fs.writeFileSync(tcFile, JSON.stringify(tcFormat, null, 2));
|
|
87
|
+
const c4 = generateLikeC4({
|
|
88
|
+
agents: [agent],
|
|
89
|
+
handoffs: [],
|
|
90
|
+
applicationName: "Mortgage Platform",
|
|
91
|
+
});
|
|
92
|
+
const c4File = path.join(OUTPUT_DIR, likec4Filename("Mortgage Platform"));
|
|
93
|
+
fs.writeFileSync(c4File, c4);
|
|
94
|
+
const elapsed = ((Date.now() - start) / 1000).toFixed(1);
|
|
95
|
+
const threats = tcFormat.threats?.length ?? 0;
|
|
96
|
+
console.log();
|
|
97
|
+
console.log(`✓ Assessment complete in ${elapsed}s`);
|
|
98
|
+
console.log(` Threats: ${threats}`);
|
|
99
|
+
console.log(` TC file: ${tcFile}`);
|
|
100
|
+
console.log(` C4 file: ${c4File}`);
|
|
101
|
+
console.log();
|
|
102
|
+
console.log("Open the threat model:");
|
|
103
|
+
console.log(" https://github.com/awslabs/threat-composer → Import file");
|
|
104
|
+
console.log();
|
|
105
|
+
console.log("View the architecture diagram:");
|
|
106
|
+
console.log(` npx likec4 serve ${c4File}`);
|
|
107
|
+
}
|
|
108
|
+
main().catch((err) => {
|
|
109
|
+
console.error(err);
|
|
110
|
+
process.exit(1);
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=batch-assessment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-assessment.js","sourceRoot":"","sources":["../../src/examples/batch-assessment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-submission-flow.d.ts","sourceRoot":"","sources":["../../src/examples/batch-submission-flow.ts"],"names":[],"mappings":""}
|