@inneranimalmedia/agentsam-sdk 2.6.3 → 2.6.4

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.
Files changed (233) hide show
  1. package/AGENTSAM.md +6 -0
  2. package/README.md +16 -1
  3. package/bin/agentsam +16 -1
  4. package/docs/BRAND_INTELLIGENCE.md +1 -1
  5. package/docs/architecture/AGENTSAM_DISTRIBUTION_OWNERSHIP.md +176 -0
  6. package/docs/architecture/AGENTSAM_GO_RUNTIME.md +282 -0
  7. package/docs/architecture/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  8. package/docs/architecture/FS_E2E_CLOSURE_RECEIPT.md +59 -0
  9. package/docs/architecture/LOCAL_FS_AUTHORITY.md +38 -0
  10. package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +28 -0
  11. package/docs/architecture/PLAN_CLI_AND_LOCAL_STUDIO_DESKTOP.md +96 -0
  12. package/docs/architecture/SAM_ACTIVITY_RECOVERY_RECEIPT.md +39 -0
  13. package/docs/architecture/SAM_DECISION_WORK_RECEIPT.md +54 -0
  14. package/docs/architecture/SAM_KERNEL.md +181 -0
  15. package/docs/architecture/SAM_MACHINE_NORMALIZATION_PRECOMMIT_REPORT.md +208 -0
  16. package/docs/architecture/SLASH_SKILLS_PORTABLE.md +116 -0
  17. package/docs/architecture/fs-e2e-receipt.latest.json +42 -0
  18. package/docs/architecture/previews/codebaseindex-guided-path/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  19. package/docs/architecture/previews/codebaseindex-guided-path/index.html +321 -0
  20. package/migrations/d1/0010_portable_tickets_memory.sql +140 -0
  21. package/migrations/d1/0011_agentsam_skill_v2.sql +185 -0
  22. package/migrations/d1/0011b_agentsam_skill_v2_cutover.sql +22 -0
  23. package/migrations/d1/0011c_agentsam_skill_v2_backfill.sql +76 -0
  24. package/migrations/d1/0011d_agentsam_skill_v2_retrieval_revisions.sql +50 -0
  25. package/migrations/d1/0012_agentsam_tools_required_seed.sql +67 -0
  26. package/migrations/d1/0013_identity_oauth_states.sql +15 -0
  27. package/migrations/d1/0014_auth_event_log.sql +20 -0
  28. package/migrations/d1/0015_identity_oauth_state_app_id.sql +3 -0
  29. package/migrations/d1/README_PORTABLE_CONTROL_PLANE.md +16 -0
  30. package/migrations/sqlite/agentsam_skill_retrieval.portable.sql +42 -0
  31. package/package.json +19 -4
  32. package/packages/agentsam-contracts/src/errors.ts +16 -0
  33. package/packages/agentsam-errors/src/envelope.js +53 -0
  34. package/packages/agentsam-errors/src/index.js +1 -0
  35. package/packages/agentsam-errors/src/recovery.js +301 -0
  36. package/packages/agentsam-knowledge/src/providers/index.js +18 -6
  37. package/packages/connectors/cloudflare/src/routes.js +9 -0
  38. package/packages/connectors/cloudflare/tests/connector.test.mjs +26 -1
  39. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +1 -1
  40. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +11 -2
  41. package/packages/identity/docs/PORTABLE_IDENTITY_ARCHITECTURE.md +50 -0
  42. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +31 -0
  43. package/packages/identity/migrations/sqlite/001_identity_core.sql +99 -0
  44. package/packages/identity/migrations/sqlite/002_identity_oauth_client.sql +38 -0
  45. package/packages/identity/migrations/sqlite/003_identity_oauth_server.sql +64 -0
  46. package/packages/identity/package.json +2 -2
  47. package/packages/identity/src/adapters/cloudflare-d1/index.js +122 -22
  48. package/packages/identity/src/adapters/sqlite/index.js +319 -0
  49. package/packages/identity/src/app/verify-app.js +95 -0
  50. package/packages/identity/src/contracts/identity-store.js +115 -0
  51. package/packages/identity/src/contracts/route-ids.js +30 -0
  52. package/packages/identity/src/contracts/route-projection.js +218 -0
  53. package/packages/identity/src/contracts/routes.js +11 -0
  54. package/packages/identity/src/core/browser-paths.js +4 -5
  55. package/packages/identity/src/core/constants.js +13 -8
  56. package/packages/identity/src/core/session-policy.js +32 -0
  57. package/packages/identity/src/frontend/auth-portal/pages/login.html +10 -10
  58. package/packages/identity/src/frontend/auth-portal/pages/reset.html +3 -3
  59. package/packages/identity/src/frontend/auth-portal/pages/signup.html +3 -3
  60. package/packages/identity/src/frontend/auth-portal/preview/dashboard-stub.html +1 -1
  61. package/packages/identity/src/index.js +25 -0
  62. package/packages/identity/src/oauth/README.md +10 -4
  63. package/packages/identity/src/oauth/credentials.js +20 -13
  64. package/packages/identity/src/oauth/finalize-inbound.js +1 -1
  65. package/packages/identity/src/oauth/iam-platform.js +8 -7
  66. package/packages/identity/src/oauth/redirect-paths.js +27 -36
  67. package/packages/identity/src/server/identity-service.js +30 -13
  68. package/packages/identity/src/server/mount-policy.js +30 -0
  69. package/packages/identity/src/server/post-auth.js +79 -0
  70. package/packages/identity/src/server/worker-router.js +104 -72
  71. package/packages/identity/tests/finalize-inbound-oauth.test.mjs +6 -6
  72. package/packages/identity/tests/iam-provider.test.mjs +1 -1
  73. package/packages/identity/tests/identity-service.test.mjs +36 -5
  74. package/packages/identity/tests/oauth-credentials.test.mjs +3 -1
  75. package/packages/identity/tests/portable-identity-architecture.test.mjs +157 -0
  76. package/packages/identity/tests/session-routes-policy.test.mjs +21 -0
  77. package/packages/theme-church-site/package.json +2 -1
  78. package/packages/theme-church-site/src/index.js +1 -0
  79. package/packages/theme-companions-site/package.json +2 -1
  80. package/packages/theme-companions-site/src/index.js +1 -0
  81. package/packages/theme-floors-site/package.json +2 -1
  82. package/packages/theme-floors-site/src/index.js +1 -0
  83. package/packages/theme-fuelnfree-site/package.json +2 -1
  84. package/packages/theme-fuelnfree-site/src/index.js +1 -0
  85. package/packages/theme-handyman-site/package.json +2 -1
  86. package/packages/theme-handyman-site/src/index.js +1 -0
  87. package/packages/theme-insurance-site/package.json +2 -1
  88. package/packages/theme-insurance-site/src/index.js +1 -0
  89. package/packages/theme-shinshu-site/package.json +2 -1
  90. package/packages/theme-shinshu-site/src/index.js +1 -0
  91. package/protocol/apps/agentsam.app.v1.schema.json +51 -0
  92. package/protocol/brand/brandpack.v1.schema.json +43 -0
  93. package/protocol/credentials/issue.v1.schema.json +38 -0
  94. package/protocol/database/connection.v1.schema.json +41 -0
  95. package/protocol/embeddings/embedding-profile.v1.schema.json +20 -0
  96. package/protocol/errors/error-envelope.schema.json +135 -1
  97. package/protocol/errors/recovery.v1.schema.json +50 -0
  98. package/protocol/runtime/workspace-fs.v1.schema.json +71 -0
  99. package/protocol/sam/activity.v1.schema.json +48 -0
  100. package/protocol/sam/answer.v1.schema.json +35 -0
  101. package/protocol/sam/calibration.v1.schema.json +21 -0
  102. package/protocol/sam/decision-receipt.v1.schema.json +29 -0
  103. package/protocol/sam/evaluation.v1.schema.json +19 -0
  104. package/protocol/sam/operation.schema.json +66 -0
  105. package/protocol/sam/outcome.v1.schema.json +36 -0
  106. package/protocol/sam/question.v1.schema.json +26 -0
  107. package/protocol/sam/registry.seed.json +153 -0
  108. package/protocol/sam/result.schema.json +53 -0
  109. package/protocol/sam/state.v1.schema.json +23 -0
  110. package/protocol/skills/agentsam.interaction.v1.schema.json +50 -0
  111. package/protocol/skills/agentsam.skill.v1.schema.json +57 -0
  112. package/protocol/ui/icon-registry.mjs +226 -0
  113. package/protocol/ui/icon.v1.schema.json +51 -0
  114. package/skills/README.md +22 -9
  115. package/skills/agentsam-codebaseindex/SKILL.md +225 -0
  116. package/skills/catalog.json +14 -0
  117. package/src/cli/command-catalog.js +130 -0
  118. package/src/cli/dispatch.js +48 -0
  119. package/src/cli.js +43 -1
  120. package/src/commands/api-key.js +244 -0
  121. package/src/commands/app.js +60 -28
  122. package/src/commands/brand.js +17 -19
  123. package/src/commands/codebaseindex.js +688 -0
  124. package/src/commands/env.js +152 -25
  125. package/src/commands/go.js +366 -53
  126. package/src/commands/interaction-clack.js +115 -0
  127. package/src/commands/models.js +1 -1
  128. package/src/commands/providers.js +62 -14
  129. package/src/commands/shell.js +43 -2
  130. package/src/commands/skill.js +248 -0
  131. package/src/commands/skills.js +1 -1
  132. package/src/commands/start-local.js +4 -0
  133. package/src/commands/whoami.js +90 -18
  134. package/src/go/build.js +229 -39
  135. package/src/go/cloudflare.js +506 -105
  136. package/src/go/container.js +120 -0
  137. package/src/go/contract.js +9 -4
  138. package/src/go/discover.js +149 -33
  139. package/src/go/index.js +15 -3
  140. package/src/go/native-probe-runner.mjs +119 -0
  141. package/src/go/{registry.js → official-registry.js} +64 -7
  142. package/src/go/official-release.js +10 -0
  143. package/src/go/receipts.js +77 -10
  144. package/src/go/verify.js +9 -2
  145. package/src/index.js +27 -0
  146. package/src/indexing/ingest/discover-models.js +298 -0
  147. package/src/indexing/ingest/inventory.js +243 -0
  148. package/src/indexing/ingest/job-graph.js +181 -0
  149. package/src/indexing/ingest/materials.js +210 -0
  150. package/src/lib/provider-credentials.js +63 -21
  151. package/src/lib/slash-commands.js +1 -0
  152. package/src/local-fs/capability.js +121 -0
  153. package/src/local-fs/freshness.js +75 -0
  154. package/src/local-fs/index.js +385 -0
  155. package/src/local-fs/paths.js +100 -0
  156. package/src/local-pty/server.js +295 -19
  157. package/src/mcp/client.js +2 -2
  158. package/src/models/ai-access-onboarding.js +112 -0
  159. package/src/models/discovery.js +10 -2
  160. package/src/models/inventory-core.js +9 -1
  161. package/src/sam/activity/index.js +183 -0
  162. package/src/sam/client.js +252 -0
  163. package/src/sam/decision/calibration.js +109 -0
  164. package/src/sam/decision/confidence.js +126 -0
  165. package/src/sam/decision/evaluate.js +157 -0
  166. package/src/sam/decision/evaluators/deterministic.js +341 -0
  167. package/src/sam/decision/evaluators/heuristic.js +61 -0
  168. package/src/sam/decision/evaluators/select.js +50 -0
  169. package/src/sam/decision/evaluators/semantic.js +149 -0
  170. package/src/sam/decision/hierarchical.js +61 -0
  171. package/src/sam/decision/index.js +53 -0
  172. package/src/sam/decision/policy.js +86 -0
  173. package/src/sam/decision/questions.js +120 -0
  174. package/src/sam/decision/receipt.js +148 -0
  175. package/src/sam/decision/state.js +117 -0
  176. package/src/sam/decision/types.js +22 -0
  177. package/src/sam/decision/validate.js +200 -0
  178. package/src/sam/define.js +51 -0
  179. package/src/sam/index.js +65 -0
  180. package/src/sam/operations/brand-scan.js +62 -0
  181. package/src/sam/operations/cad-blender-inspect.js +36 -0
  182. package/src/sam/operations/codebaseindex-ingest.js +49 -0
  183. package/src/sam/operations/decision-evaluate.js +59 -0
  184. package/src/sam/operations/planning-astar.js +77 -0
  185. package/src/sam/operations/planning-goap.js +60 -0
  186. package/src/sam/operations/repository-inspect.js +72 -0
  187. package/src/sam/operations/security-scan.js +33 -0
  188. package/src/sam/operations/terminal-exec.js +29 -0
  189. package/src/sam/planning/astar.js +311 -0
  190. package/src/sam/planning/goap.js +177 -0
  191. package/src/sam/planning/index.js +21 -0
  192. package/src/sam/planning/state.js +84 -0
  193. package/src/sam/registry.js +48 -0
  194. package/src/sam/result.js +77 -0
  195. package/src/sam/seed.js +44 -0
  196. package/src/sam/types.js +91 -0
  197. package/src/skills/catalog.js +64 -0
  198. package/src/skills/content-resolver.js +124 -0
  199. package/src/skills/hosted-store.js +37 -0
  200. package/src/skills/index.js +29 -64
  201. package/src/skills/interaction.js +102 -0
  202. package/src/skills/local-store.js +228 -0
  203. package/src/skills/manifest.js +104 -0
  204. package/src/skills/metrics.js +31 -0
  205. package/src/skills/registry.js +184 -0
  206. package/src/skills/runtime.js +287 -0
  207. package/src/skills/slash.js +44 -0
  208. package/src/ui/cli/help.js +94 -101
  209. package/test/cli/api-key-env-whoami.test.mjs +129 -0
  210. package/test/cli/codebaseindex-plan-ux.test.mjs +37 -0
  211. package/test/cli/go.test.mjs +62 -5
  212. package/test/cli/skill-npm-and-env.test.mjs +52 -0
  213. package/test/cli/wireframes-go-registry.test.mjs +87 -2
  214. package/test/go/build-source-identity.test.mjs +31 -0
  215. package/test/go/cloudflare-probe.test.mjs +274 -10
  216. package/test/go/distribution.test.mjs +28 -0
  217. package/test/integration/ai-access-onboarding.test.mjs +47 -0
  218. package/test/integration/cli-help.test.mjs +1 -1
  219. package/test/integration/cms-site-tenancy-contract.test.mjs +6 -6
  220. package/test/integration/codebaseindex-ingest.test.mjs +166 -0
  221. package/test/integration/icon-registry.test.mjs +67 -0
  222. package/test/integration/ingest-discover-models.test.mjs +30 -0
  223. package/test/integration/install-script.test.mjs +12 -9
  224. package/test/integration/local-fs.test.mjs +113 -0
  225. package/test/integration/provider-env-cli.test.mjs +2 -1
  226. package/test/integration/sam-activity-recovery.test.mjs +147 -0
  227. package/test/integration/sam-decision.test.mjs +584 -0
  228. package/test/integration/sam-kernel.test.mjs +99 -0
  229. package/test/integration/sam-planning-astar.test.mjs +279 -0
  230. package/test/integration/skill-runtime.test.mjs +240 -0
  231. package/test/integration/studio-fs-pty-e2e.test.mjs +294 -0
  232. package/test/models.test.mjs +14 -7
  233. package/test/shell.test.mjs +4 -4
@@ -539,6 +539,140 @@
539
539
  "type": "integer",
540
540
  "minimum": 1
541
541
  },
542
- "details": {}
542
+ "details": {},
543
+ "failure_class": {
544
+ "type": "string",
545
+ "description": "Provider-independent failure dimension; prefer this over exploding ERROR_REASON"
546
+ },
547
+ "operation": {
548
+ "type": "object",
549
+ "properties": {
550
+ "kind": {
551
+ "type": [
552
+ "string",
553
+ "null"
554
+ ]
555
+ },
556
+ "action": {
557
+ "type": [
558
+ "string",
559
+ "null"
560
+ ]
561
+ },
562
+ "resource_type": {
563
+ "type": [
564
+ "string",
565
+ "null"
566
+ ]
567
+ },
568
+ "resource_id": {
569
+ "type": [
570
+ "string",
571
+ "null"
572
+ ]
573
+ },
574
+ "read_only": {
575
+ "type": "boolean"
576
+ },
577
+ "idempotent": {
578
+ "type": "boolean"
579
+ },
580
+ "side_effect_state": {
581
+ "enum": [
582
+ "none",
583
+ "not_started",
584
+ "confirmed_not_applied",
585
+ "confirmed_applied",
586
+ "partially_applied",
587
+ "unknown"
588
+ ]
589
+ }
590
+ }
591
+ },
592
+ "retry": {
593
+ "type": "object",
594
+ "properties": {
595
+ "allowed": {
596
+ "type": "boolean"
597
+ },
598
+ "strategy": {
599
+ "type": "string"
600
+ },
601
+ "retry_after_ms": {
602
+ "type": [
603
+ "number",
604
+ "null"
605
+ ]
606
+ },
607
+ "max_attempts": {
608
+ "type": [
609
+ "integer",
610
+ "null"
611
+ ]
612
+ },
613
+ "requires_idempotency_key": {
614
+ "type": "boolean"
615
+ }
616
+ }
617
+ },
618
+ "fallback": {
619
+ "type": "object",
620
+ "properties": {
621
+ "allowed": {
622
+ "type": "boolean"
623
+ },
624
+ "strategy": {
625
+ "type": [
626
+ "string",
627
+ "null"
628
+ ]
629
+ },
630
+ "preserve_semantics": {
631
+ "type": "boolean"
632
+ },
633
+ "target": {
634
+ "type": [
635
+ "string",
636
+ "null"
637
+ ]
638
+ }
639
+ }
640
+ },
641
+ "notify": {
642
+ "type": "object",
643
+ "properties": {
644
+ "user": {
645
+ "type": "string"
646
+ },
647
+ "operator": {
648
+ "type": "string"
649
+ },
650
+ "agent": {
651
+ "type": "string"
652
+ }
653
+ }
654
+ },
655
+ "cause": {},
656
+ "status": {
657
+ "enum": [
658
+ "success",
659
+ "partial",
660
+ "failure"
661
+ ]
662
+ },
663
+ "partial": {
664
+ "type": "object",
665
+ "properties": {
666
+ "completed": {
667
+ "type": "number"
668
+ },
669
+ "failed": {
670
+ "type": "number"
671
+ },
672
+ "failures": {
673
+ "type": "array"
674
+ }
675
+ }
676
+ }
543
677
  }
544
678
  }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/errors/recovery.v1.schema.json",
4
+ "title": "AgentSamRecoveryPlan",
5
+ "type": "object",
6
+ "required": ["schema", "disposition", "attempts", "notify", "reason"],
7
+ "properties": {
8
+ "schema": { "const": "agentsam.recovery.v1" },
9
+ "error_fingerprint": { "type": ["string", "null"] },
10
+ "disposition": {
11
+ "enum": [
12
+ "continue",
13
+ "retry",
14
+ "reconnect",
15
+ "resume",
16
+ "reconcile",
17
+ "fallback",
18
+ "replan",
19
+ "await_user",
20
+ "abort"
21
+ ]
22
+ },
23
+ "attempts": {
24
+ "type": "object",
25
+ "required": ["current", "maximum"],
26
+ "properties": {
27
+ "current": { "type": "integer", "minimum": 1 },
28
+ "maximum": { "type": "integer", "minimum": 1 }
29
+ }
30
+ },
31
+ "delay_ms": { "type": ["number", "null"] },
32
+ "fallback": {
33
+ "type": ["object", "null"],
34
+ "properties": {
35
+ "kind": { "type": "string" },
36
+ "target": { "type": ["string", "null"] }
37
+ }
38
+ },
39
+ "notify": {
40
+ "type": "object",
41
+ "properties": {
42
+ "user": { "type": "string" },
43
+ "operator": { "type": "string" },
44
+ "agent": { "type": "string" }
45
+ }
46
+ },
47
+ "reason": { "type": "string" },
48
+ "evidence": { "type": "array", "items": { "type": "string" } }
49
+ }
50
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/runtime/workspace-fs.v1.schema.json",
4
+ "title": "AgentSamWorkspaceFilesystemContract",
5
+ "description": "Stable browser/WorkspaceAdapter contract. TypeScript local-fs implements today; Go agentsamd may replace the host without changing these operations.",
6
+ "type": "object",
7
+ "required": ["schema", "operations"],
8
+ "properties": {
9
+ "schema": { "const": "agentsam.workspace-fs.v1" },
10
+ "engine": {
11
+ "type": "string",
12
+ "description": "Implementation id, e.g. agentsam-local-fs-v1 or agentsamd-go-fs-v1"
13
+ },
14
+ "operations": {
15
+ "type": "array",
16
+ "items": {
17
+ "enum": [
18
+ "list",
19
+ "read",
20
+ "stat",
21
+ "write",
22
+ "create",
23
+ "rename",
24
+ "remove",
25
+ "mkdir",
26
+ "change_events"
27
+ ]
28
+ }
29
+ },
30
+ "write": {
31
+ "type": "object",
32
+ "properties": {
33
+ "expectedVersion": {
34
+ "type": ["string", "null"],
35
+ "description": "Optimistic concurrency — conflict if disk hash differs"
36
+ },
37
+ "overwrite": { "type": "boolean" }
38
+ }
39
+ },
40
+ "authority": {
41
+ "type": "object",
42
+ "properties": {
43
+ "binding": { "const": "loopback" },
44
+ "capability_header": { "const": "x-agentsam-workspace-capability" },
45
+ "root_claim": { "const": "server_bound_only" }
46
+ }
47
+ },
48
+ "events": {
49
+ "type": "object",
50
+ "properties": {
51
+ "name": { "const": "workspace.file.changed" },
52
+ "payload": {
53
+ "type": "object",
54
+ "properties": {
55
+ "path": { "type": "string" },
56
+ "version": { "type": "string" },
57
+ "workspace_id": { "type": "string" }
58
+ }
59
+ }
60
+ }
61
+ },
62
+ "go_replacement": {
63
+ "type": "object",
64
+ "description": "Future agentsamd host implements the same HTTP/WS surface; WorkspaceAdapter and Studio contracts stay unchanged.",
65
+ "properties": {
66
+ "package": { "const": "apps/agentsam-go-worker" },
67
+ "status": { "enum": ["documented", "implemented"] }
68
+ }
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/sam/activity.v1.schema.json",
4
+ "title": "AgentSamActivityEvent",
5
+ "type": "object",
6
+ "required": ["schema", "run_id", "seq", "timestamp", "phase", "event", "label"],
7
+ "properties": {
8
+ "schema": { "const": "agentsam.activity.v1" },
9
+ "run_id": { "type": "string" },
10
+ "seq": { "type": "integer", "minimum": 0 },
11
+ "timestamp": { "type": "string" },
12
+ "phase": {
13
+ "enum": ["boot", "observe", "context", "plan", "execute", "verify", "compact", "waiting", "recover", "complete"]
14
+ },
15
+ "event": {
16
+ "enum": [
17
+ "run.started",
18
+ "phase.changed",
19
+ "step.started",
20
+ "step.progress",
21
+ "step.completed",
22
+ "decision.made",
23
+ "tool.started",
24
+ "tool.completed",
25
+ "artifact.created",
26
+ "file.changed",
27
+ "approval.required",
28
+ "input.required",
29
+ "verification.completed",
30
+ "run.failed",
31
+ "run.completed"
32
+ ]
33
+ },
34
+ "step_id": { "type": ["string", "null"] },
35
+ "parent_id": { "type": ["string", "null"] },
36
+ "label": { "type": "string" },
37
+ "detail": { "type": ["string", "null"] },
38
+ "progress": {
39
+ "type": ["object", "null"],
40
+ "properties": {
41
+ "current": { "type": "number" },
42
+ "total": { "type": "number" }
43
+ }
44
+ },
45
+ "source": { "type": "object" },
46
+ "evidence": { "type": ["object", "null"] }
47
+ }
48
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/sam/answer.v1.schema.json",
4
+ "title": "AgentSamDecisionAnswer",
5
+ "type": "object",
6
+ "required": ["type", "question_id", "value"],
7
+ "properties": {
8
+ "schema": { "const": "agentsam.decision-answer.v1" },
9
+ "type": { "enum": ["choose", "score", "check"] },
10
+ "question_id": { "type": "string" },
11
+ "value": {},
12
+ "scores": { "type": ["object", "null"] },
13
+ "levels": { "type": ["object", "null"] },
14
+ "support": { "type": ["number", "null"], "minimum": 0, "maximum": 1 },
15
+ "confidence_estimate": {
16
+ "type": ["number", "null"],
17
+ "minimum": 0,
18
+ "maximum": 1,
19
+ "description": "Distribution concentration — NOT P(correct) unless calibrated"
20
+ },
21
+ "probabilities": {
22
+ "type": ["object", "null"],
23
+ "description": "Only when evaluator has a defined probabilistic interpretation"
24
+ },
25
+ "calibrated_probability": {
26
+ "type": ["number", "null"],
27
+ "minimum": 0,
28
+ "maximum": 1
29
+ },
30
+ "calibration_id": { "type": ["string", "null"] },
31
+ "evaluator": { "type": ["object", "null"] },
32
+ "evidence": { "type": "array" },
33
+ "warnings": { "type": "array", "items": { "type": "string" } }
34
+ }
35
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/sam/calibration.v1.schema.json",
4
+ "title": "AgentSamDecisionCalibration",
5
+ "type": "object",
6
+ "properties": {
7
+ "schema": { "const": "agentsam.decision-calibration.v1" },
8
+ "kind": { "enum": ["metrics", "dataset_export", "model_card"] },
9
+ "ece": { "type": "number" },
10
+ "reliability": { "type": "array" },
11
+ "brier": { "type": "number" },
12
+ "log_loss": { "type": "number" },
13
+ "calibration_id": { "type": "string" },
14
+ "training_window": {},
15
+ "sample_count": { "type": "integer" },
16
+ "validation_metrics": { "type": "object" },
17
+ "question_version": {},
18
+ "rows": { "type": "array" },
19
+ "note": { "type": "string" }
20
+ }
21
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/sam/decision-receipt.v1.schema.json",
4
+ "title": "AgentSamDecisionReceipt",
5
+ "type": "object",
6
+ "required": ["schema", "decision_id", "answers", "created_at"],
7
+ "properties": {
8
+ "schema": { "const": "agentsam.decision-receipt.v1" },
9
+ "decision_id": { "type": "string" },
10
+ "run_id": { "type": ["string", "null"] },
11
+ "step_id": { "type": ["string", "null"] },
12
+ "action_id": { "type": ["string", "null"] },
13
+ "outcome_id": { "type": ["string", "null"] },
14
+ "question_contract": {},
15
+ "question_ids": { "type": "array", "items": { "type": "string" } },
16
+ "question_versions": { "type": "object" },
17
+ "evaluator": { "type": ["object", "null"] },
18
+ "evaluators": { "type": "array" },
19
+ "state_hash": { "type": ["string", "null"] },
20
+ "answers": { "type": "object" },
21
+ "policy_result": { "type": ["object", "null"] },
22
+ "evidence": { "type": "array" },
23
+ "action": {},
24
+ "outcome": { "type": ["object", "null"] },
25
+ "created_at": { "type": "string" },
26
+ "updated_at": { "type": "string" },
27
+ "why": { "type": "object" }
28
+ }
29
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/sam/evaluation.v1.schema.json",
4
+ "title": "AgentSamDecisionEvaluation",
5
+ "type": "object",
6
+ "required": ["schema", "ok", "answers", "state_hash"],
7
+ "properties": {
8
+ "schema": { "const": "agentsam.decision-evaluation.v1" },
9
+ "ok": { "type": "boolean" },
10
+ "state_hash": { "type": "string" },
11
+ "answers": { "type": "object" },
12
+ "routing": { "type": "object" },
13
+ "policy_result": { "type": "object" },
14
+ "model_used": { "type": "boolean" },
15
+ "deterministic": { "type": "boolean" },
16
+ "question_versions": { "type": "object" },
17
+ "receipt": { "type": "object" }
18
+ }
19
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/sam/operation.schema.json",
4
+ "title": "SamOperation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["id", "version", "module", "action", "summary", "execution", "risk"],
8
+ "properties": {
9
+ "id": {
10
+ "type": "string",
11
+ "pattern": "^[a-z][a-z0-9]+(\\.[a-z][a-z0-9_-]+)+$",
12
+ "description": "Canonical operation id, e.g. brand.scan"
13
+ },
14
+ "version": { "type": "integer", "minimum": 1 },
15
+ "module": { "type": "string", "minLength": 1 },
16
+ "action": { "type": "string", "minLength": 1 },
17
+ "summary": { "type": "string", "minLength": 1 },
18
+ "description": { "type": "string" },
19
+ "execution": {
20
+ "type": "object",
21
+ "additionalProperties": false,
22
+ "required": ["lanes", "model", "network", "sideEffects"],
23
+ "properties": {
24
+ "lanes": {
25
+ "type": "array",
26
+ "minItems": 1,
27
+ "items": { "enum": ["local", "remote", "sandbox", "platform"] }
28
+ },
29
+ "model": { "enum": ["never", "optional", "required"] },
30
+ "network": { "enum": ["none", "optional", "required"] },
31
+ "sideEffects": {
32
+ "enum": ["none", "local_write", "remote_read", "remote_write", "deploy", "billable"]
33
+ }
34
+ }
35
+ },
36
+ "auth": {
37
+ "type": "object",
38
+ "additionalProperties": false,
39
+ "properties": {
40
+ "account": { "type": "boolean" },
41
+ "provider": { "type": "array", "items": { "type": "string" } }
42
+ }
43
+ },
44
+ "risk": { "enum": ["read_only", "write", "privileged"] },
45
+ "input_schema": { "type": "string" },
46
+ "output_schema": { "type": "string" },
47
+ "capabilities": { "type": "array", "items": { "type": "string" } },
48
+ "cli": {
49
+ "type": "object",
50
+ "properties": {
51
+ "command": {
52
+ "type": "array",
53
+ "items": { "type": "array", "items": { "type": "string" } }
54
+ }
55
+ }
56
+ },
57
+ "docs": {
58
+ "type": "object",
59
+ "properties": {
60
+ "section": { "type": "string" },
61
+ "examples": { "type": "array", "items": { "type": "string" } }
62
+ }
63
+ },
64
+ "status": { "enum": ["stable", "experimental", "stub", "deprecated"] }
65
+ }
66
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/sam/outcome.v1.schema.json",
4
+ "title": "AgentSamDecisionOutcome",
5
+ "type": "object",
6
+ "required": ["schema", "success", "recorded_at"],
7
+ "properties": {
8
+ "schema": { "const": "agentsam.decision-outcome.v1" },
9
+ "outcome_id": { "type": "string" },
10
+ "success": { "type": "boolean" },
11
+ "disposition": {
12
+ "enum": [
13
+ "accepted",
14
+ "rejected",
15
+ "overridden",
16
+ "corrected_to",
17
+ "retry_required",
18
+ "verification_failed",
19
+ "user_intervened",
20
+ "success",
21
+ "failure"
22
+ ]
23
+ },
24
+ "human_corrected": { "type": "boolean" },
25
+ "corrected_to": {},
26
+ "user_override": { "type": "boolean" },
27
+ "actual_class": {},
28
+ "duration_ms": { "type": ["number", "null"] },
29
+ "retries": { "type": ["integer", "null"] },
30
+ "verification": { "type": "array" },
31
+ "label_strength": {
32
+ "enum": ["supervised", "explicit_accept", "weak_passive"]
33
+ },
34
+ "recorded_at": { "type": "string" }
35
+ }
36
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentsam.inneranimalmedia.com/protocol/sam/question.v1.schema.json",
4
+ "title": "AgentSamDecisionQuestion",
5
+ "type": "object",
6
+ "required": ["id", "type"],
7
+ "properties": {
8
+ "schema": { "const": "agentsam.decision-question.v1" },
9
+ "id": { "type": "string", "minLength": 1 },
10
+ "type": { "enum": ["choose", "score", "check"] },
11
+ "version": { "type": "integer", "minimum": 1 },
12
+ "instructions": {
13
+ "description": "string | object | array | null",
14
+ "type": ["string", "object", "array", "null"]
15
+ },
16
+ "criteria": {
17
+ "description": "string | object | array | null",
18
+ "type": ["string", "object", "array", "null"]
19
+ },
20
+ "options": { "type": "array", "items": { "type": "string" } },
21
+ "levels": { "type": "array" },
22
+ "evaluator_hint": {
23
+ "enum": ["deterministic", "heuristic", "graph", "semantic", "calibrated-statistical", null]
24
+ }
25
+ }
26
+ }