loki-mode 10.6.8 → 10.6.10

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 (111) hide show
  1. package/README.md +15 -14
  2. package/SKILL.md +2 -2
  3. package/VERSION +1 -1
  4. package/autonomy/lib/backlog.py +167 -36
  5. package/autonomy/lib/workspace.py +133 -39
  6. package/autonomy/lib/workspace_comment.py +91 -0
  7. package/autonomy/loki +92 -22
  8. package/bin/loki +3 -3
  9. package/completions/_loki +1 -0
  10. package/completions/loki.bash +1 -1
  11. package/dashboard/__init__.py +1 -1
  12. package/dashboard/api_start.py +26 -1
  13. package/docs/INSTALLATION.md +1 -1
  14. package/docs/TOOL-INTEGRATION.md +3 -3
  15. package/docs/WORKSPACES.md +11 -4
  16. package/docs/control-plane-container.md +8 -3
  17. package/docs/dashboard-guide.md +4 -0
  18. package/docs/exit-codes.md +1 -0
  19. package/docs/slack.md +12 -4
  20. package/docs/trackers.md +27 -0
  21. package/docs/v10/BOARD.md +70 -29
  22. package/docs/v10/CONTROL-PLANE.md +14 -7
  23. package/docs/v10/D51-PHASE-B.md +3 -1
  24. package/docs/v10/D61-SPEED.md +4 -0
  25. package/docs/v10/D63-CARDS.md +354 -0
  26. package/docs/v10/DECISIONS.md +44 -0
  27. package/docs/v10/E2E-D65.md +28 -0
  28. package/docs/v10/PROGRESS.md +63 -0
  29. package/loki-ts/dist/loki.js +584 -565
  30. package/mcp/__init__.py +1 -1
  31. package/mcp/tests/test_v10_tools.py +56 -0
  32. package/mcp/v10_tools.py +13 -3
  33. package/package.json +2 -1
  34. package/packages/control-plane/dist/server.js +76 -6
  35. package/packages/control-plane/drizzle/0001_group_id.sql +3 -0
  36. package/packages/control-plane/drizzle/meta/_journal.json +8 -1
  37. package/packages/control-plane/src/db/schema.ts +3 -0
  38. package/packages/control-plane/src/server/answer.ts +1 -1
  39. package/packages/control-plane/src/server/app.ts +6 -2
  40. package/packages/control-plane/src/server/auth.ts +51 -0
  41. package/packages/control-plane/src/server/runs.ts +4 -3
  42. package/packages/control-plane/src/server/serve.ts +11 -1
  43. package/packages/control-plane/src/shipper/discover.ts +29 -0
  44. package/packages/control-plane/ui/dist/assets/{index-53E32yrO.js → index-Jt31nrK-.js} +24 -24
  45. package/packages/control-plane/ui/dist/index.html +1 -1
  46. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  47. package/schemas/features.schema.json +71 -0
  48. package/schemas/loki-yaml.schema.json +123 -0
  49. package/schemas/manifest.schema.json +77 -0
  50. package/schemas/migration-plan.schema.json +109 -0
  51. package/schemas/outcome-contract.schema.json +73 -0
  52. package/schemas/seams.schema.json +90 -0
  53. package/schemas/status-result.schema.json +30 -0
  54. package/schemas/why-result.schema.json +51 -0
  55. package/web-app/dist/assets/{AdminPage-DN_pe8vo.js → AdminPage-OaSCF3M4.js} +1 -1
  56. package/web-app/dist/assets/{Avatar-BnQsr8z-.js → Avatar-xa3G7_vs.js} +1 -1
  57. package/web-app/dist/assets/{Badge-DzERiZn2.js → Badge-Ci_UcHij.js} +1 -1
  58. package/web-app/dist/assets/{Button-CaaoxQAt.js → Button-CFrrmbvL.js} +1 -1
  59. package/web-app/dist/assets/{CockpitPage-SXhnysJA.js → CockpitPage-6hyVl_QZ.js} +1 -1
  60. package/web-app/dist/assets/{ComparePage-krxTCFJY.js → ComparePage-B5H56KCG.js} +1 -1
  61. package/web-app/dist/assets/{ErrorBoundary-BL96ESMc.js → ErrorBoundary-CBbRHsYr.js} +1 -1
  62. package/web-app/dist/assets/{EvidenceReceiptPanel-PUiGSpkB.js → EvidenceReceiptPanel-D-Zoneum.js} +1 -1
  63. package/web-app/dist/assets/{GitHubIssuesPanel-C0hPs-P2.js → GitHubIssuesPanel-D7XPRsic.js} +1 -1
  64. package/web-app/dist/assets/{GitHubPRsPanel-CLvqNUlu.js → GitHubPRsPanel-CzHbBPAn.js} +1 -1
  65. package/web-app/dist/assets/{HomePage-X-sq_Rc9.js → HomePage-ClOx5qF1.js} +2 -2
  66. package/web-app/dist/assets/{LoginPage-DhQuwdua.js → LoginPage-3Yz_9j8E.js} +1 -1
  67. package/web-app/dist/assets/{MagicPage-CP2ODjfn.js → MagicPage-Dumn48gC.js} +1 -1
  68. package/web-app/dist/assets/{MetricsPage-C6SYiQES.js → MetricsPage-CYCYVG_8.js} +1 -1
  69. package/web-app/dist/assets/{NotFoundPage-CCDxxYc-.js → NotFoundPage-CV-x_1qH.js} +1 -1
  70. package/web-app/dist/assets/{ProjectPage-yDF--8FQ.js → ProjectPage-CeO7dnyM.js} +3 -3
  71. package/web-app/dist/assets/{ProjectsPage-BBLspdLn.js → ProjectsPage-BT9mz6iD.js} +1 -1
  72. package/web-app/dist/assets/{SettingsPage-C_sWbQRw.js → SettingsPage-BL8X9fAB.js} +1 -1
  73. package/web-app/dist/assets/{ShowcasePage-xCMuL0N8.js → ShowcasePage-8f3lnSpc.js} +1 -1
  74. package/web-app/dist/assets/{SystemSettingsPage-DnJKGCx7.js → SystemSettingsPage-BUNAAzh2.js} +1 -1
  75. package/web-app/dist/assets/{TeamsPage-BBXdhrSs.js → TeamsPage-Qj-VEZJz.js} +1 -1
  76. package/web-app/dist/assets/{TemplatesPage-AZ1Lr1rn.js → TemplatesPage-b8lKqe5q.js} +1 -1
  77. package/web-app/dist/assets/{TerminalOutput-CtIm9tXc.js → TerminalOutput-jOnfQKB4.js} +1 -1
  78. package/web-app/dist/assets/{activity-Dk1FK25Q.js → activity-w7GnyBNp.js} +1 -1
  79. package/web-app/dist/assets/{bell-dhqXyzP4.js → bell-2i4ejMOA.js} +1 -1
  80. package/web-app/dist/assets/{bot-CExHd4Kf.js → bot-jaPm4NIs.js} +1 -1
  81. package/web-app/dist/assets/{check-D51zaA1a.js → check-CvNtxeKM.js} +1 -1
  82. package/web-app/dist/assets/{chevron-left-DEwnQzH1.js → chevron-left-zzBjHAtX.js} +1 -1
  83. package/web-app/dist/assets/{circle-alert-C6U90Msk.js → circle-alert-CCU0IU2m.js} +1 -1
  84. package/web-app/dist/assets/{clock-6mFbMzzH.js → clock-BvZckMwN.js} +1 -1
  85. package/web-app/dist/assets/{cloud-BrZZtE7F.js → cloud-hrMWDdYp.js} +1 -1
  86. package/web-app/dist/assets/{code-xml-DTFzeepP.js → code-xml-v6l40T-K.js} +1 -1
  87. package/web-app/dist/assets/{database-B5rEiTre.js → database-l2TMUrQd.js} +1 -1
  88. package/web-app/dist/assets/{dollar-sign-bQs4rlS_.js → dollar-sign-C2V6OvpO.js} +1 -1
  89. package/web-app/dist/assets/{file-code-corner-Mo6e6qbf.js → file-code-corner-Bytb5JGA.js} +1 -1
  90. package/web-app/dist/assets/{file-plus-DzHZ0jpP.js → file-plus-BynCYQB8.js} +1 -1
  91. package/web-app/dist/assets/{globe-DYN9UhTa.js → globe-DifDdNMH.js} +1 -1
  92. package/web-app/dist/assets/{hammer-bB0hSRcJ.js → hammer-D7TsOJD6.js} +1 -1
  93. package/web-app/dist/assets/{index-CIH5CqZB.js → index-Zohfqaz4.js} +3 -3
  94. package/web-app/dist/assets/{layers-qhFkY8Nu.js → layers-Bk8c2YLS.js} +1 -1
  95. package/web-app/dist/assets/{loader-circle-BGBkaYH7.js → loader-circle-BrLdbMwP.js} +1 -1
  96. package/web-app/dist/assets/{lock-DIcsNFum.js → lock-COpmjMyJ.js} +1 -1
  97. package/web-app/dist/assets/{package-BdIIbZhS.js → package-BMzYdY7F.js} +1 -1
  98. package/web-app/dist/assets/{plus-Co1Bv8zT.js → plus-B9xpu1Pg.js} +1 -1
  99. package/web-app/dist/assets/{refresh-cw-CGF4ABWH.js → refresh-cw-C2Lzh-AA.js} +1 -1
  100. package/web-app/dist/assets/{rotate-ccw-BX10Q79h.js → rotate-ccw-2Yyy-uQd.js} +1 -1
  101. package/web-app/dist/assets/{scroll-text-CbXDlpGp.js → scroll-text-DiK2yhsT.js} +1 -1
  102. package/web-app/dist/assets/{server-CIhi6yUO.js → server-xlJBgleU.js} +1 -1
  103. package/web-app/dist/assets/{shield-alert-DJ5fB6Dg.js → shield-alert-D9w4yBCi.js} +1 -1
  104. package/web-app/dist/assets/{thumbs-up-BEft2T94.js → thumbs-up-CcWfvcE9.js} +1 -1
  105. package/web-app/dist/assets/{trash-2-CWGUPn7Y.js → trash-2-_hk_pEAp.js} +1 -1
  106. package/web-app/dist/assets/{trending-down-CjqstvxQ.js → trending-down-CDZT99tC.js} +1 -1
  107. package/web-app/dist/assets/{trending-up-CTyLjMzE.js → trending-up-A0oreTXc.js} +1 -1
  108. package/web-app/dist/assets/{upload-BmRx-uv4.js → upload-DfLwhGG2.js} +1 -1
  109. package/web-app/dist/assets/{usePolling-ChHkSJye.js → usePolling-B7gW2YY_.js} +1 -1
  110. package/web-app/dist/assets/{user-ZXh_f35z.js → user-C-y7_Oon.js} +1 -1
  111. package/web-app/dist/index.html +1 -1
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Loki Control</title>
7
- <script type="module" crossorigin src="./assets/index-53E32yrO.js"></script>
7
+ <script type="module" crossorigin src="./assets/index-Jt31nrK-.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="./assets/index-CFfrqCx2.css">
9
9
  </head>
10
10
  <body>
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "loki-mode",
4
4
  "displayName": "Loki Mode",
5
- "version": "10.6.8",
5
+ "version": "10.6.10",
6
6
  "description": "Autonomous spec-to-product build system with a built-in trust layer (RARV-C closure loop, 8 quality gates, completion council). Ships Loki's spec-hardening, drift-detection, and deterministic PR verification commands plus the Loki MCP server.",
7
7
  "author": {
8
8
  "name": "Autonomi",
@@ -0,0 +1,71 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://autonomi.dev/loki-mode/schemas/features.schema.json",
4
+ "title": "Loki Migration Features",
5
+ "description": "Validates features.json produced by the migration engine understand phase.",
6
+ "oneOf": [
7
+ {
8
+ "type": "array",
9
+ "items": { "$ref": "#/definitions/Feature" }
10
+ },
11
+ {
12
+ "type": "object",
13
+ "properties": {
14
+ "features": {
15
+ "type": "array",
16
+ "items": { "$ref": "#/definitions/Feature" }
17
+ }
18
+ },
19
+ "required": ["features"],
20
+ "additionalProperties": false
21
+ }
22
+ ],
23
+ "definitions": {
24
+ "Feature": {
25
+ "type": "object",
26
+ "properties": {
27
+ "id": {
28
+ "type": "string",
29
+ "description": "Unique identifier for the feature."
30
+ },
31
+ "category": {
32
+ "type": "string",
33
+ "default": "",
34
+ "description": "Feature category grouping."
35
+ },
36
+ "description": {
37
+ "type": "string",
38
+ "description": "Human-readable description of the feature."
39
+ },
40
+ "verification_steps": {
41
+ "type": "array",
42
+ "items": { "type": "string" },
43
+ "default": [],
44
+ "description": "Steps to verify the feature works after migration."
45
+ },
46
+ "passes": {
47
+ "type": "boolean",
48
+ "default": false,
49
+ "description": "Whether the feature currently passes verification."
50
+ },
51
+ "characterization_test": {
52
+ "type": "string",
53
+ "default": "",
54
+ "description": "Path or name of the characterization test for this feature."
55
+ },
56
+ "risk": {
57
+ "type": "string",
58
+ "default": "low",
59
+ "description": "Risk level associated with migrating this feature."
60
+ },
61
+ "notes": {
62
+ "type": "string",
63
+ "default": "",
64
+ "description": "Additional notes about the feature."
65
+ }
66
+ },
67
+ "required": ["id", "description", "passes"],
68
+ "additionalProperties": false
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://autonomi.dev/schemas/loki-yaml.schema.json",
4
+ "title": "loki.yaml",
5
+ "description": "One config file for the Loki UI and the headless CLI (D51). Looked up in the repo root, then ~/.loki/loki.yaml (first found wins, no merging). Precedence: CLI flag > environment > loki.yaml > default. Secrets are never stored here: every credential key holds the NAME of an environment variable.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "provider": {
10
+ "description": "Default provider. Env override: LOKI_PROVIDER.",
11
+ "type": "string",
12
+ "enum": ["claude", "codex", "cline", "aider", "opencode"]
13
+ },
14
+ "models": {
15
+ "type": "object",
16
+ "additionalProperties": false,
17
+ "properties": {
18
+ "default": {
19
+ "description": "Default (development) model. Env override: LOKI_MODEL_DEVELOPMENT.",
20
+ "type": "string",
21
+ "minLength": 1
22
+ },
23
+ "cheap": {
24
+ "description": "Cheap/fast model. Env override: LOKI_MODEL_FAST.",
25
+ "type": "string",
26
+ "minLength": 1
27
+ }
28
+ }
29
+ },
30
+ "git": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "properties": {
34
+ "token_env": {
35
+ "description": "NAME of the env var holding a GitHub PAT (never the token). Env override: LOKI_GIT_TOKEN_ENV.",
36
+ "type": "string",
37
+ "pattern": "^[A-Z_][A-Z0-9_]*$",
38
+ "x-secret-ref": true
39
+ }
40
+ }
41
+ },
42
+ "repos": {
43
+ "description": "owner/repo list the UI offers and headless runs may target.",
44
+ "type": "array",
45
+ "items": {
46
+ "type": "string",
47
+ "pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$"
48
+ }
49
+ },
50
+ "concurrency": {
51
+ "description": "Max backlog runs in parallel (default 2). Env override: LOKI_BACKLOG_CONCURRENCY.",
52
+ "type": "integer",
53
+ "minimum": 1,
54
+ "maximum": 32,
55
+ "default": 2
56
+ },
57
+ "budgets": {
58
+ "type": "object",
59
+ "additionalProperties": false,
60
+ "properties": {
61
+ "per_run_usd": {
62
+ "description": "USD cap forwarded to each run as LOKI_BUDGET_LIMIT. Env override: LOKI_BUDGET_PER_RUN_USD.",
63
+ "type": "number",
64
+ "exclusiveMinimum": 0
65
+ },
66
+ "per_day_usd": {
67
+ "description": "USD per calendar day; backlog stops launching new runs once reached (BUDGET_STOP). Env override: LOKI_BUDGET_PER_DAY_USD.",
68
+ "type": "number",
69
+ "exclusiveMinimum": 0
70
+ }
71
+ }
72
+ },
73
+ "knowledge_sources": {
74
+ "description": "Local paths of knowledge to give runs. Parsed and validated only; consumed by a later slice.",
75
+ "type": "array",
76
+ "items": { "type": "string", "minLength": 1 }
77
+ },
78
+ "workspaces": {
79
+ "description": "Named groups of repos for cross-repo runs (`loki workspace run`). Accepted unconditionally; runtime behavior is gated by LOKI_WORKSPACES=1.",
80
+ "type": "object",
81
+ "additionalProperties": {
82
+ "type": "object",
83
+ "additionalProperties": false,
84
+ "properties": {
85
+ "repos": {
86
+ "type": "array",
87
+ "items": {
88
+ "type": "object",
89
+ "additionalProperties": false,
90
+ "properties": {
91
+ "repo": { "type": "string", "pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$" },
92
+ "path": { "type": "string", "minLength": 1 },
93
+ "setup": { "type": "string", "minLength": 1 },
94
+ "after": { "type": "array", "items": { "type": "string" } }
95
+ }
96
+ }
97
+ },
98
+ "integration": {
99
+ "type": "object",
100
+ "additionalProperties": false,
101
+ "properties": {
102
+ "command": { "type": "string", "minLength": 1 },
103
+ "timeout_s": { "type": "integer", "minimum": 1 }
104
+ }
105
+ },
106
+ "integration_files": { "type": "array", "items": { "type": "string", "minLength": 1 } }
107
+ }
108
+ }
109
+ },
110
+ "notifications": {
111
+ "type": "object",
112
+ "additionalProperties": false,
113
+ "properties": {
114
+ "slack_webhook_env": {
115
+ "description": "NAME of the env var holding the Slack webhook URL (never the URL). Env override: LOKI_SLACK_WEBHOOK_ENV.",
116
+ "type": "string",
117
+ "pattern": "^[A-Z_][A-Z0-9_]*$",
118
+ "x-secret-ref": true
119
+ }
120
+ }
121
+ }
122
+ }
123
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://autonomi.dev/loki-mode/schemas/manifest.schema.json",
4
+ "title": "Loki Migration Manifest",
5
+ "description": "Validates manifest.json that tracks overall migration state.",
6
+ "type": "object",
7
+ "properties": {
8
+ "id": {
9
+ "type": "string",
10
+ "default": "",
11
+ "description": "Unique migration identifier."
12
+ },
13
+ "created_at": {
14
+ "type": "string",
15
+ "default": "",
16
+ "description": "ISO 8601 timestamp of when the migration was created."
17
+ },
18
+ "source_info": {
19
+ "type": "object",
20
+ "default": {},
21
+ "description": "Information about the source codebase (language, framework, etc.)."
22
+ },
23
+ "target_info": {
24
+ "type": "object",
25
+ "default": {},
26
+ "description": "Information about the target codebase or migration target."
27
+ },
28
+ "phases": {
29
+ "type": "object",
30
+ "default": {},
31
+ "description": "Phase results keyed by phase name (understand, guardrail, migrate, verify).",
32
+ "additionalProperties": {
33
+ "type": "object",
34
+ "description": "Phase result data."
35
+ }
36
+ },
37
+ "feature_list_path": {
38
+ "type": "string",
39
+ "default": "",
40
+ "description": "Path to the features.json file."
41
+ },
42
+ "migration_plan_path": {
43
+ "type": "string",
44
+ "default": "",
45
+ "description": "Path to the migration-plan.json file."
46
+ },
47
+ "checkpoints": {
48
+ "type": "array",
49
+ "items": { "type": "string" },
50
+ "default": [],
51
+ "description": "List of checkpoint identifiers created during migration."
52
+ },
53
+ "status": {
54
+ "type": "string",
55
+ "default": "pending",
56
+ "description": "Current overall migration status."
57
+ },
58
+ "progress_pct": {
59
+ "type": "integer",
60
+ "minimum": 0,
61
+ "maximum": 100,
62
+ "default": 0,
63
+ "description": "Overall migration progress percentage (0-100)."
64
+ },
65
+ "updated_at": {
66
+ "type": "string",
67
+ "default": "",
68
+ "description": "ISO 8601 timestamp of the last update."
69
+ },
70
+ "source_path": {
71
+ "type": "string",
72
+ "default": "",
73
+ "description": "Absolute path to the source codebase."
74
+ }
75
+ },
76
+ "additionalProperties": false
77
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://autonomi.dev/loki-mode/schemas/migration-plan.schema.json",
4
+ "title": "Loki Migration Plan",
5
+ "description": "Validates migration-plan.json produced by the migration engine guardrail phase.",
6
+ "type": "object",
7
+ "properties": {
8
+ "version": {
9
+ "type": "integer",
10
+ "default": 1,
11
+ "description": "Schema version of the migration plan."
12
+ },
13
+ "strategy": {
14
+ "type": "string",
15
+ "default": "incremental",
16
+ "description": "Migration strategy (e.g. incremental, big-bang)."
17
+ },
18
+ "constraints": {
19
+ "type": "array",
20
+ "items": { "type": "string" },
21
+ "default": [],
22
+ "description": "Constraints that must be respected during migration."
23
+ },
24
+ "steps": {
25
+ "type": "array",
26
+ "items": { "$ref": "#/definitions/MigrationStep" },
27
+ "default": [],
28
+ "description": "Ordered list of migration steps."
29
+ },
30
+ "rollback_strategy": {
31
+ "type": "string",
32
+ "default": "checkpoint",
33
+ "description": "Strategy for rolling back on failure."
34
+ },
35
+ "exit_criteria": {
36
+ "type": "object",
37
+ "default": {},
38
+ "description": "Conditions that must be met for the migration to be considered complete."
39
+ }
40
+ },
41
+ "additionalProperties": false,
42
+ "definitions": {
43
+ "MigrationStep": {
44
+ "type": "object",
45
+ "properties": {
46
+ "id": {
47
+ "type": "string",
48
+ "description": "Unique identifier for the step."
49
+ },
50
+ "description": {
51
+ "type": "string",
52
+ "default": "",
53
+ "description": "Human-readable description of the step."
54
+ },
55
+ "type": {
56
+ "type": "string",
57
+ "default": "",
58
+ "description": "Step type (e.g. refactor, rewrite, config, test)."
59
+ },
60
+ "files": {
61
+ "type": "array",
62
+ "items": { "type": "string" },
63
+ "default": [],
64
+ "description": "Files affected by this step."
65
+ },
66
+ "tests_required": {
67
+ "type": "array",
68
+ "items": { "type": "string" },
69
+ "default": [],
70
+ "description": "Tests that must pass after this step."
71
+ },
72
+ "estimated_tokens": {
73
+ "type": "integer",
74
+ "default": 0,
75
+ "description": "Estimated token cost for executing this step."
76
+ },
77
+ "risk": {
78
+ "type": "string",
79
+ "default": "low",
80
+ "description": "Risk level of this step."
81
+ },
82
+ "rollback_point": {
83
+ "type": "boolean",
84
+ "default": false,
85
+ "description": "Whether a checkpoint should be created before this step."
86
+ },
87
+ "depends_on": {
88
+ "type": "array",
89
+ "items": { "type": "string" },
90
+ "default": [],
91
+ "description": "IDs of steps that must complete before this one."
92
+ },
93
+ "assigned_agent": {
94
+ "type": "string",
95
+ "default": "",
96
+ "description": "Agent assigned to execute this step."
97
+ },
98
+ "status": {
99
+ "type": "string",
100
+ "enum": ["pending", "in_progress", "completed", "failed"],
101
+ "default": "pending",
102
+ "description": "Current execution status of the step."
103
+ }
104
+ },
105
+ "required": ["id"],
106
+ "additionalProperties": false
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://autonomi.dev/schemas/outcome-contract/v0.1",
4
+ "title": "Autonomi Outcome Contract v0.1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema", "id", "intent", "acceptance", "executor", "verifier"],
8
+ "properties": {
9
+ "schema": {"const": "autonomi-outcome-contract/v0.1"},
10
+ "id": {"type": "string", "minLength": 1},
11
+ "intent": {"type": "string", "minLength": 1},
12
+ "acceptance": {
13
+ "type": "array", "minItems": 1,
14
+ "items": {"type": "string", "minLength": 1}
15
+ },
16
+ "executor": {"$ref": "#/$defs/identity"},
17
+ "verifier": {"$ref": "#/$defs/identity"},
18
+ "constraints": {"type": "object"},
19
+ "risk": {
20
+ "type": "object", "additionalProperties": false,
21
+ "required": ["level"],
22
+ "properties": {
23
+ "level": {"type": "string", "enum": ["low", "medium", "high", "critical"]},
24
+ "notes": {"type": "string", "minLength": 1}
25
+ }
26
+ },
27
+ "budget": {
28
+ "type": "object", "additionalProperties": false,
29
+ "required": ["max_amount", "currency"],
30
+ "properties": {
31
+ "max_amount": {"type": "number", "minimum": 0},
32
+ "currency": {"type": "string", "minLength": 1}
33
+ }
34
+ },
35
+ "deployment": {
36
+ "type": "object", "additionalProperties": false,
37
+ "required": ["environment", "approval_required"],
38
+ "properties": {
39
+ "environment": {"type": "string", "minLength": 1},
40
+ "approval_required": {"type": "boolean"}
41
+ }
42
+ },
43
+ "rollback": {
44
+ "type": "object", "additionalProperties": false,
45
+ "required": ["required", "strategy"],
46
+ "properties": {
47
+ "required": {"type": "boolean"},
48
+ "strategy": {"type": "string", "minLength": 1}
49
+ }
50
+ },
51
+ "dispute": {
52
+ "type": "object", "additionalProperties": false,
53
+ "required": ["process"],
54
+ "properties": {
55
+ "process": {"type": "string", "minLength": 1},
56
+ "arbiter": {"$ref": "#/$defs/identity"}
57
+ }
58
+ },
59
+ "evidence": {
60
+ "type": "array", "items": {"type": "string", "minLength": 1}
61
+ }
62
+ },
63
+ "$defs": {
64
+ "identity": {
65
+ "type": "object", "additionalProperties": false,
66
+ "required": ["id", "kind"],
67
+ "properties": {
68
+ "id": {"type": "string", "minLength": 1},
69
+ "kind": {"type": "string", "enum": ["human", "agent", "service", "organization"]}
70
+ }
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://autonomi.dev/loki-mode/schemas/seams.schema.json",
4
+ "title": "Loki Migration Seams",
5
+ "description": "Validates seams.json produced by the migration engine understand phase.",
6
+ "oneOf": [
7
+ {
8
+ "type": "array",
9
+ "items": { "$ref": "#/definitions/SeamInfo" }
10
+ },
11
+ {
12
+ "type": "object",
13
+ "properties": {
14
+ "seams": {
15
+ "type": "array",
16
+ "items": { "$ref": "#/definitions/SeamInfo" }
17
+ }
18
+ },
19
+ "required": ["seams"],
20
+ "additionalProperties": false
21
+ }
22
+ ],
23
+ "definitions": {
24
+ "SeamInfo": {
25
+ "type": "object",
26
+ "properties": {
27
+ "id": {
28
+ "type": "string",
29
+ "description": "Unique identifier for the seam."
30
+ },
31
+ "description": {
32
+ "type": "string",
33
+ "default": "",
34
+ "description": "Human-readable description of the seam."
35
+ },
36
+ "type": {
37
+ "type": "string",
38
+ "default": "",
39
+ "description": "Seam type (e.g. api, module, database, config)."
40
+ },
41
+ "location": {
42
+ "type": "string",
43
+ "default": "",
44
+ "description": "Location of the seam in the codebase."
45
+ },
46
+ "name": {
47
+ "type": "string",
48
+ "default": "",
49
+ "description": "Human-readable name for the seam."
50
+ },
51
+ "priority": {
52
+ "type": "string",
53
+ "default": "medium",
54
+ "description": "Priority level for addressing this seam."
55
+ },
56
+ "files": {
57
+ "type": "array",
58
+ "items": { "type": "string" },
59
+ "default": [],
60
+ "description": "Files involved in this seam."
61
+ },
62
+ "dependencies": {
63
+ "type": "array",
64
+ "items": { "type": "string" },
65
+ "default": [],
66
+ "description": "Dependencies of this seam on other components."
67
+ },
68
+ "complexity": {
69
+ "type": "string",
70
+ "default": "",
71
+ "description": "Complexity assessment of the seam."
72
+ },
73
+ "confidence": {
74
+ "type": "number",
75
+ "minimum": 0.0,
76
+ "maximum": 1.0,
77
+ "default": 0.0,
78
+ "description": "Confidence score for this seam detection (0.0 to 1.0)."
79
+ },
80
+ "suggested_interface": {
81
+ "type": "string",
82
+ "default": "",
83
+ "description": "Suggested interface definition for this seam."
84
+ }
85
+ },
86
+ "required": ["id"],
87
+ "additionalProperties": false
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://autonomi.dev/loki-mode/schemas/status-result.schema.json",
4
+ "title": "loki status --json",
5
+ "description": "Output of `loki status --json`. Exits 0 with this document, including when no run is active (status inactive). Validated against real output by tests/test-json-schemas.sh.",
6
+ "type": "object",
7
+ "required": ["version", "status", "iteration", "provider", "task_counts"],
8
+ "properties": {
9
+ "version": { "type": "string" },
10
+ "status": { "type": "string" },
11
+ "phase": { "type": ["string", "null"] },
12
+ "iteration": { "type": "integer", "minimum": 0 },
13
+ "provider": { "type": "string" },
14
+ "provider_source": { "type": "string" },
15
+ "dashboard_url": { "type": ["string", "null"] },
16
+ "pid": { "type": ["integer", "null"] },
17
+ "elapsed_time": { "type": "number", "minimum": 0 },
18
+ "task_counts": {
19
+ "type": "object",
20
+ "required": ["total", "completed", "failed", "pending"],
21
+ "properties": {
22
+ "total": { "type": "integer", "minimum": 0 },
23
+ "completed": { "type": "integer", "minimum": 0 },
24
+ "failed": { "type": "integer", "minimum": 0 },
25
+ "pending": { "type": "integer", "minimum": 0 }
26
+ }
27
+ },
28
+ "phase1": { "type": "object" }
29
+ }
30
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://autonomi.dev/loki-mode/schemas/why-result.schema.json",
4
+ "title": "loki why --json",
5
+ "description": "Output of `loki why --json`, the machine-readable outcome of the last build (loki quick and loki start leave the records it reads). loki quick and loki verify have no --json flag of their own; this is the structured result of the quick path. The command exits 0 with this document, or 1 with no stdout when no run exists. Validated against real output by tests/test-json-schemas.sh.",
6
+ "type": "object",
7
+ "required": ["state", "completion", "completion_is_stale", "head_sha", "last_error_present"],
8
+ "properties": {
9
+ "state": {
10
+ "type": "object",
11
+ "required": ["status", "iterationCount"],
12
+ "properties": {
13
+ "status": { "type": "string" },
14
+ "iterationCount": { "type": "integer", "minimum": 0 },
15
+ "lastExitCode": {
16
+ "type": "integer",
17
+ "description": "Exit code of the run. loki quick ladder (docs/exit-codes.md): 0 completed and tests not weakened, 3 diff weakened the tests (NOT VERIFIED), any other nonzero is the run's own failure passed through unchanged (for example 20, deterministic terminal failure).",
18
+ "minimum": 0
19
+ }
20
+ }
21
+ },
22
+ "completion": {
23
+ "type": "object",
24
+ "properties": {
25
+ "outcome": { "type": "string" },
26
+ "branch": { "type": "string" },
27
+ "start_sha": { "type": "string" },
28
+ "head_sha": { "type": "string" },
29
+ "files_changed": { "type": "integer", "minimum": 0 },
30
+ "pr_url": { "type": "string" }
31
+ }
32
+ },
33
+ "last_error": { "type": "object" },
34
+ "last_error_present": { "type": "boolean" },
35
+ "last_error_readable": { "type": "boolean" },
36
+ "last_error_recognized": { "type": "boolean" },
37
+ "last_error_action": { "type": ["string", "null"] },
38
+ "completion_is_stale": { "type": "boolean" },
39
+ "head_sha": { "type": "string" },
40
+ "rework": {
41
+ "type": ["object", "null"],
42
+ "properties": {
43
+ "progress_iterations": { "type": "integer", "minimum": 0 },
44
+ "rework_iterations": { "type": "integer", "minimum": 0 },
45
+ "total_iterations": { "type": "integer", "minimum": 0 },
46
+ "rework_cost_usd": { "type": "number", "minimum": 0 },
47
+ "verdict": { "type": "string" }
48
+ }
49
+ }
50
+ }
51
+ }
@@ -1,4 +1,4 @@
1
- import{c as L,r as x,j as e,w as re,Z as ne,m as le,h as ie,p as P,F as ye,U as I,X as ce,L as de,x as oe,M as Ae,T as Z,S as we,l as xe,k as me,y as Ce,E as Fe,a0 as Se,a as U,a2 as he}from"./index-CIH5CqZB.js";import{B as C}from"./Button-CaaoxQAt.js";import{T as $e}from"./trending-up-CTyLjMzE.js";import{C as z}from"./clock-6mFbMzzH.js";import{A as Be,U as ue,M as De}from"./Avatar-BnQsr8z-.js";import{A as J}from"./activity-Dk1FK25Q.js";import{R as pe}from"./refresh-cw-CGF4ABWH.js";import{G as ze}from"./globe-DYN9UhTa.js";import{C as Le}from"./chevron-left-DEwnQzH1.js";import{C as je}from"./check-D51zaA1a.js";import{D as Y}from"./dollar-sign-bQs4rlS_.js";import{U as Te}from"./user-ZXh_f35z.js";import{D as Me}from"./database-B5rEiTre.js";import{L as Ue}from"./lock-DIcsNFum.js";import{S as Re}from"./scroll-text-CbXDlpGp.js";import{S as Ie}from"./shield-alert-DJ5fB6Dg.js";/**
1
+ import{c as L,r as x,j as e,w as re,Z as ne,m as le,h as ie,p as P,F as ye,U as I,X as ce,L as de,x as oe,M as Ae,T as Z,S as we,l as xe,k as me,y as Ce,E as Fe,a0 as Se,a as U,a2 as he}from"./index-Zohfqaz4.js";import{B as C}from"./Button-CFrrmbvL.js";import{T as $e}from"./trending-up-A0oreTXc.js";import{C as z}from"./clock-BvZckMwN.js";import{A as Be,U as ue,M as De}from"./Avatar-xa3G7_vs.js";import{A as J}from"./activity-w7GnyBNp.js";import{R as pe}from"./refresh-cw-C2Lzh-AA.js";import{G as ze}from"./globe-DifDdNMH.js";import{C as Le}from"./chevron-left-zzBjHAtX.js";import{C as je}from"./check-CvNtxeKM.js";import{D as Y}from"./dollar-sign-C2V6OvpO.js";import{U as Te}from"./user-C-y7_Oon.js";import{D as Me}from"./database-l2TMUrQd.js";import{L as Ue}from"./lock-COpmjMyJ.js";import{S as Re}from"./scroll-text-DiK2yhsT.js";import{S as Ie}from"./shield-alert-D9w4yBCi.js";/**
2
2
  * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,4 +1,4 @@
1
- import{c as l,j as s}from"./index-CIH5CqZB.js";/**
1
+ import{c as l,j as s}from"./index-Zohfqaz4.js";/**
2
2
  * @license lucide-react v0.577.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.