lossless-openclaw-orchestrator 0.1.0-beta.31

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 (141) hide show
  1. package/LICENSE +132 -0
  2. package/README.md +383 -0
  3. package/SECURITY.md +21 -0
  4. package/VISION.md +315 -0
  5. package/dist/packages/adapters/src/claude.js +15 -0
  6. package/dist/packages/adapters/src/codex-jsonrpc.js +296 -0
  7. package/dist/packages/adapters/src/index.js +1664 -0
  8. package/dist/packages/adapters/src/policy.js +143 -0
  9. package/dist/packages/adapters/src/redaction.js +33 -0
  10. package/dist/packages/cli/src/general-release-readiness.js +216 -0
  11. package/dist/packages/cli/src/index.js +2154 -0
  12. package/dist/packages/cli/src/live-control-smoke.js +180 -0
  13. package/dist/packages/cli/src/npm-install-diagnostics.js +51 -0
  14. package/dist/packages/cli/src/onboarding-status.js +274 -0
  15. package/dist/packages/cli/src/openclaw-dogfood.js +278 -0
  16. package/dist/packages/cli/src/openclaw-live-control-smoke.js +381 -0
  17. package/dist/packages/cli/src/openclaw-post-action-refresh-smoke.js +444 -0
  18. package/dist/packages/cli/src/openclaw-tool-smoke.js +792 -0
  19. package/dist/packages/cli/src/published-package-smoke.js +145 -0
  20. package/dist/packages/cli/src/release-bundle.js +72 -0
  21. package/dist/packages/cli/src/release-claim-scope.js +41 -0
  22. package/dist/packages/cli/src/release-demo-status.js +341 -0
  23. package/dist/packages/cli/src/release-preflight.js +228 -0
  24. package/dist/packages/cli/src/release-status.js +240 -0
  25. package/dist/packages/cli/src/runtime-proof-gate.js +145 -0
  26. package/dist/packages/cli/src/scenario-sweep.js +527 -0
  27. package/dist/packages/cli/src/scorecard-sweep.js +260 -0
  28. package/dist/packages/core/src/index.js +4059 -0
  29. package/dist/packages/core/src/session-sanitizer.js +158 -0
  30. package/dist/packages/local-mac-ui/src/shell.js +378 -0
  31. package/dist/packages/mcp-server/src/server.js +54 -0
  32. package/dist/packages/mcp-server/src/tools.js +787 -0
  33. package/dist/packages/openclaw-plugin/src/index.js +73 -0
  34. package/docs/BETA_RELEASE_DEMO.md +92 -0
  35. package/docs/BETA_RELEASE_RUNBOOK.md +453 -0
  36. package/docs/CLAIM_AUDIT.md +119 -0
  37. package/docs/CLAUDE_ADAPTER_BOUNDARY.md +100 -0
  38. package/docs/LOCAL_MAC_SEARCH_UI.md +113 -0
  39. package/docs/OPENCLAW_PLUGIN.md +56 -0
  40. package/docs/PRIVACY.md +24 -0
  41. package/docs/RELEASE_CHECKLIST.md +97 -0
  42. package/docs/RELEASE_NOTES_0.1.0-beta.0.md +53 -0
  43. package/docs/RELEASE_NOTES_0.1.0-beta.1.md +51 -0
  44. package/docs/RELEASE_NOTES_0.1.0-beta.10.md +84 -0
  45. package/docs/RELEASE_NOTES_0.1.0-beta.11.md +66 -0
  46. package/docs/RELEASE_NOTES_0.1.0-beta.12.md +71 -0
  47. package/docs/RELEASE_NOTES_0.1.0-beta.13.md +75 -0
  48. package/docs/RELEASE_NOTES_0.1.0-beta.14.md +85 -0
  49. package/docs/RELEASE_NOTES_0.1.0-beta.15.md +73 -0
  50. package/docs/RELEASE_NOTES_0.1.0-beta.16.md +74 -0
  51. package/docs/RELEASE_NOTES_0.1.0-beta.17.md +74 -0
  52. package/docs/RELEASE_NOTES_0.1.0-beta.18.md +77 -0
  53. package/docs/RELEASE_NOTES_0.1.0-beta.19.md +70 -0
  54. package/docs/RELEASE_NOTES_0.1.0-beta.2.md +56 -0
  55. package/docs/RELEASE_NOTES_0.1.0-beta.20.md +40 -0
  56. package/docs/RELEASE_NOTES_0.1.0-beta.21.md +38 -0
  57. package/docs/RELEASE_NOTES_0.1.0-beta.22.md +38 -0
  58. package/docs/RELEASE_NOTES_0.1.0-beta.23.md +31 -0
  59. package/docs/RELEASE_NOTES_0.1.0-beta.24.md +34 -0
  60. package/docs/RELEASE_NOTES_0.1.0-beta.25.md +37 -0
  61. package/docs/RELEASE_NOTES_0.1.0-beta.26.md +63 -0
  62. package/docs/RELEASE_NOTES_0.1.0-beta.27.md +66 -0
  63. package/docs/RELEASE_NOTES_0.1.0-beta.28.md +78 -0
  64. package/docs/RELEASE_NOTES_0.1.0-beta.29.md +88 -0
  65. package/docs/RELEASE_NOTES_0.1.0-beta.3.md +61 -0
  66. package/docs/RELEASE_NOTES_0.1.0-beta.30.md +67 -0
  67. package/docs/RELEASE_NOTES_0.1.0-beta.31.md +69 -0
  68. package/docs/RELEASE_NOTES_0.1.0-beta.4.md +63 -0
  69. package/docs/RELEASE_NOTES_0.1.0-beta.5.md +65 -0
  70. package/docs/RELEASE_NOTES_0.1.0-beta.6.md +70 -0
  71. package/docs/RELEASE_NOTES_0.1.0-beta.7.md +71 -0
  72. package/docs/RELEASE_NOTES_0.1.0-beta.8.md +73 -0
  73. package/docs/RELEASE_NOTES_0.1.0-beta.9.md +75 -0
  74. package/docs/SAFE_SUMMARIES.md +33 -0
  75. package/docs/SOURCE_AUTHORITY_PROFILE.md +33 -0
  76. package/docs/WORKING_APP_PROOF_SPRINT.md +125 -0
  77. package/docs/sprints/brief-lco-codex-autonomy-cockpit-sprint-2026-07-01.md +71 -0
  78. package/evals/scenarios/v1/README.md +16 -0
  79. package/evals/scenarios/v1/brief-expansion-1k.json +43 -0
  80. package/evals/scenarios/v1/codex-autonomy-cockpit-p0.json +59 -0
  81. package/evals/scenarios/v1/control-dry-run-audit.json +41 -0
  82. package/evals/scenarios/v1/eva-operating-picture-dogfood.json +61 -0
  83. package/evals/scenarios/v1/eva-operating-picture-p0.json +65 -0
  84. package/evals/scenarios/v1/evidence-bundle-4k.json +43 -0
  85. package/evals/scenarios/v1/fail-closed-live-control.json +42 -0
  86. package/evals/scenarios/v1/final-message-retrieval.json +41 -0
  87. package/evals/scenarios/v1/m9-agent-dogfood-core-workflow.json +58 -0
  88. package/evals/scenarios/v1/m9-fresh-npm-clean-profile.json +57 -0
  89. package/evals/scenarios/v1/openclaw-gateway-dogfood.json +46 -0
  90. package/evals/scenarios/v1/plan-retrieval.json +42 -0
  91. package/evals/scenarios/v1/release-claim-audit.json +42 -0
  92. package/evals/scenarios/v1/session-map-triage.json +42 -0
  93. package/evals/scenarios/v1/touched-files-accuracy.json +41 -0
  94. package/evals/scenarios/v1.1/README.md +47 -0
  95. package/evals/scenarios/v1.1/connected-local-ui-proof.json +59 -0
  96. package/evals/scenarios/v1.1/desktop-collaboration-action-bound.json +56 -0
  97. package/evals/scenarios/v1.1/openclaw-gateway-live-codex.json +57 -0
  98. package/evals/scenarios/v1.1/post-action-refresh-reasoning.json +56 -0
  99. package/evals/scorecards/v1.0/README.md +18 -0
  100. package/evals/scorecards/v1.0/issue-scorecard-update-template.md +56 -0
  101. package/evals/scorecards/v1.0/local-agent-usability-review.json +96 -0
  102. package/evals/scorecards/v1.0/local-mac-search-ui-review.json +80 -0
  103. package/evals/scorecards/v1.0/orchestrator-leverage-prioritization.json +83 -0
  104. package/evals/scorecards/v1.0/packaging-install-review.json +69 -0
  105. package/evals/scorecards/v1.0/public-claim-review.json +45 -0
  106. package/evals/scorecards/v1.0/retrieval-quality-review.json +60 -0
  107. package/evals/scorecards/v1.0/safety-bypass-review.json +58 -0
  108. package/evals/scorecards/v1.0/working-app-runtime-proof-review.json +72 -0
  109. package/openclaw.plugin.json +1215 -0
  110. package/package.json +52 -0
  111. package/packages/adapters/src/claude.ts +15 -0
  112. package/packages/adapters/src/codex-jsonrpc.ts +364 -0
  113. package/packages/adapters/src/index.ts +2190 -0
  114. package/packages/adapters/src/policy.ts +152 -0
  115. package/packages/adapters/src/redaction.ts +36 -0
  116. package/packages/cli/src/general-release-readiness.ts +277 -0
  117. package/packages/cli/src/index.ts +2211 -0
  118. package/packages/cli/src/live-control-smoke.ts +265 -0
  119. package/packages/cli/src/npm-install-diagnostics.ts +76 -0
  120. package/packages/cli/src/onboarding-status.ts +372 -0
  121. package/packages/cli/src/openclaw-dogfood.ts +343 -0
  122. package/packages/cli/src/openclaw-live-control-smoke.ts +465 -0
  123. package/packages/cli/src/openclaw-post-action-refresh-smoke.ts +511 -0
  124. package/packages/cli/src/openclaw-tool-smoke.ts +899 -0
  125. package/packages/cli/src/published-package-smoke.ts +194 -0
  126. package/packages/cli/src/release-bundle.ts +108 -0
  127. package/packages/cli/src/release-claim-scope.ts +61 -0
  128. package/packages/cli/src/release-demo-status.ts +430 -0
  129. package/packages/cli/src/release-preflight.ts +303 -0
  130. package/packages/cli/src/release-status.ts +325 -0
  131. package/packages/cli/src/runtime-proof-gate.ts +191 -0
  132. package/packages/cli/src/scenario-sweep.ts +675 -0
  133. package/packages/cli/src/scorecard-sweep.ts +339 -0
  134. package/packages/core/src/index.ts +5148 -0
  135. package/packages/core/src/session-sanitizer.ts +250 -0
  136. package/packages/local-mac-ui/src/shell.ts +509 -0
  137. package/packages/mcp-server/src/server.ts +51 -0
  138. package/packages/mcp-server/src/tools.ts +847 -0
  139. package/packages/openclaw-plugin/openclaw.plugin.json +1215 -0
  140. package/packages/openclaw-plugin/src/index.ts +99 -0
  141. package/skills/lossless-openclaw-orchestrator/SKILL.md +100 -0
package/LICENSE ADDED
@@ -0,0 +1,132 @@
1
+ # PolyForm Noncommercial License 1.0.0
2
+
3
+ <https://polyformproject.org/licenses/noncommercial/1.0.0>
4
+
5
+ Required Notice: Copyright (c) 2026 Lossless OpenClaw Orchestrator contributors
6
+ ## Acceptance
7
+
8
+ In order to get any license under these terms, you must agree
9
+ to them as both strict obligations and conditions to all
10
+ your licenses.
11
+
12
+ ## Copyright License
13
+
14
+ The licensor grants you a copyright license for the
15
+ software to do everything you might do with the software
16
+ that would otherwise infringe the licensor's copyright
17
+ in it for any permitted purpose. However, you may
18
+ only distribute the software according to [Distribution
19
+ License](#distribution-license) and make changes or new works
20
+ based on the software according to [Changes and New Works
21
+ License](#changes-and-new-works-license).
22
+
23
+ ## Distribution License
24
+
25
+ The licensor grants you an additional copyright license
26
+ to distribute copies of the software. Your license
27
+ to distribute covers distributing the software with
28
+ changes and new works permitted by [Changes and New Works
29
+ License](#changes-and-new-works-license).
30
+
31
+ ## Notices
32
+
33
+ You must ensure that anyone who gets a copy of any part of
34
+ the software from you also gets a copy of these terms or the
35
+ URL for them above, as well as copies of any plain-text lines
36
+ beginning with `Required Notice:` that the licensor provided
37
+ with the software. For example:
38
+
39
+ > Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
40
+
41
+ ## Changes and New Works License
42
+
43
+ The licensor grants you an additional copyright license to
44
+ make changes and new works based on the software for any
45
+ permitted purpose.
46
+
47
+ ## Patent License
48
+
49
+ The licensor grants you a patent license for the software that
50
+ covers patent claims the licensor can license, or becomes able
51
+ to license, that you would infringe by using the software.
52
+
53
+ ## Noncommercial Purposes
54
+
55
+ Any noncommercial purpose is a permitted purpose.
56
+
57
+ ## Personal Uses
58
+
59
+ Personal use for research, experiment, and testing for
60
+ the benefit of public knowledge, personal study, private
61
+ entertainment, hobby projects, amateur pursuits, or religious
62
+ observance, without any anticipated commercial application,
63
+ is use for a permitted purpose.
64
+
65
+ ## Noncommercial Organizations
66
+
67
+ Use by any charitable organization, educational institution,
68
+ public research organization, public safety or health
69
+ organization, environmental protection organization,
70
+ or government institution is use for a permitted purpose
71
+ regardless of the source of funding or obligations resulting
72
+ from the funding.
73
+
74
+ ## Fair Use
75
+
76
+ You may have "fair use" rights for the software under the
77
+ law. These terms do not limit them.
78
+
79
+ ## No Other Rights
80
+
81
+ These terms do not allow you to sublicense or transfer any of
82
+ your licenses to anyone else, or prevent the licensor from
83
+ granting licenses to anyone else. These terms do not imply
84
+ any other licenses.
85
+
86
+ ## Patent Defense
87
+
88
+ If you make any written claim that the software infringes or
89
+ contributes to infringement of any patent, your patent license
90
+ for the software granted under these terms ends immediately. If
91
+ your company makes such a claim, your patent license ends
92
+ immediately for work on behalf of your company.
93
+
94
+ ## Violations
95
+
96
+ The first time you are notified in writing that you have
97
+ violated any of these terms, or done anything with the software
98
+ not covered by your licenses, your licenses can nonetheless
99
+ continue if you come into full compliance with these terms,
100
+ and take practical steps to correct past violations, within
101
+ 32 days of receiving notice. Otherwise, all your licenses
102
+ end immediately.
103
+
104
+ ## No Liability
105
+
106
+ ***As far as the law allows, the software comes as is, without
107
+ any warranty or condition, and the licensor will not be liable
108
+ to you for any damages arising out of these terms or the use
109
+ or nature of the software, under any kind of legal claim.***
110
+
111
+ ## Definitions
112
+
113
+ The **licensor** is the individual or entity offering these
114
+ terms, and the **software** is the software the licensor makes
115
+ available under these terms.
116
+
117
+ **You** refers to the individual or entity agreeing to these
118
+ terms.
119
+
120
+ **Your company** is any legal entity, sole proprietorship,
121
+ or other kind of organization that you work for, plus all
122
+ organizations that have control over, are under the control of,
123
+ or are under common control with that organization. **Control**
124
+ means ownership of substantially all the assets of an entity,
125
+ or the power to direct its management and policies by vote,
126
+ contract, or otherwise. Control can be direct or indirect.
127
+
128
+ **Your licenses** are all the licenses granted to you for the
129
+ software under these terms.
130
+
131
+ **Use** means anything you do with the software requiring one
132
+ of your licenses.
package/README.md ADDED
@@ -0,0 +1,383 @@
1
+ # Orchestrator CCC+L
2
+
3
+ **Lossless OpenClaw Orchestrator** turns local agent sessions into searchable,
4
+ summarizable, product-management objects for OpenClaw.
5
+
6
+ 3C+L is the working shorthand for **Codex + Claude Code + Lossless**. The beta is
7
+ Codex-first: Claude Code support is intentionally shipped as an adapter stub
8
+ until its storage and control paths are proven.
9
+
10
+ [Vision](VISION.md) · [Current Sprint Brief](docs/sprints/brief-lco-codex-autonomy-cockpit-sprint-2026-07-01.md) · [Source Authority](docs/SOURCE_AUTHORITY_PROFILE.md) · [Agent Skill](skills/lossless-openclaw-orchestrator/SKILL.md) · [Release Checklist](docs/RELEASE_CHECKLIST.md) · [Working App Proof Sprint](docs/WORKING_APP_PROOF_SPRINT.md) · [OpenClaw Plugin](docs/OPENCLAW_PLUGIN.md) · [Claude Adapter Boundary](docs/CLAUDE_ADAPTER_BOUNDARY.md) · [Beta Demo](docs/BETA_RELEASE_DEMO.md) · [Beta Release Runbook](docs/BETA_RELEASE_RUNBOOK.md) · [Claim Audit](docs/CLAIM_AUDIT.md) · [PolyForm Noncommercial](LICENSE)
11
+
12
+ ## Why This Exists
13
+
14
+ OpenClaw should be able to manage hundreds of local agent sessions without
15
+ spending its whole context window rereading raw transcripts.
16
+
17
+ LCO gives an orchestrator agent a staged recall loop:
18
+
19
+ 1. Find likely sessions cheaply.
20
+ 2. Describe the session as compact metadata.
21
+ 3. Expand only the few sessions that need evidence.
22
+ 4. Recommend or dry-run the next action with source refs.
23
+
24
+ The product goal is not "search all the logs." The goal is to help an
25
+ orchestrator decide what matters next with the least possible token load.
26
+
27
+ ## Product Spine
28
+
29
+ The core product object is a managed session.
30
+
31
+ A useful managed session should expose:
32
+
33
+ - project, status, priority, owner, blocker, and next action
34
+ - proposed-plan refs, final-message refs, and closeout refs
35
+ - touched files, tool metadata, safe summaries, and source refs
36
+ - archive, fork, resume, steer, send, or interrupt recommendations
37
+ - bounded expansion profiles such as metadata-only, brief, and evidence bundle
38
+
39
+ The current beta already indexes and recalls Codex session evidence. The next
40
+ roadmap push is to make this spine explicit enough that an OpenClaw agent can
41
+ triage, prioritize, and manage many sessions as work objects instead of
42
+ rediscovering state from text every time.
43
+
44
+ ## What Works Now
45
+
46
+ | Area | Status | Notes |
47
+ | --- | --- | --- |
48
+ | Codex session indexing | Beta | Imports local Codex session JSONL/archive data into local SQLite. |
49
+ | Search / describe / expand | Beta | Supports the staged `grep -> describe -> expand_query` recall loop. |
50
+ | Plans, finals, files, tools | Beta | Extracts proposed plans, final messages, touched files, tool-call metadata, and safe summaries. |
51
+ | MCP / OpenClaw tools | Beta | Exposes `loo_*` tools for OpenClaw and other MCP clients. |
52
+ | OpenClaw LCM peer reads | Experimental | Reads peer summary DBs read-only without merging stores. |
53
+ | Codex direct controls | Beta boundary | Resume/send/steer/interrupt are approval-gated and dry-run first; installed OpenClaw gateway live proof exists only inside its explicit proof boundary. |
54
+ | Desktop fallback | Experimental | CUA Driver and Peekaboo have backend-specific scratch no-focus proof; product GUI mutation still needs an action-bound proof gate. |
55
+ | Scorecards and release proof | Beta | Public-safe scorecards and release-status commands track what is proven. |
56
+ | QA Lab scenarios | Beta | Dry-run scenario contracts under `evals/scenarios/v1` turn orchestrator workflows into public-safe eval tasks. |
57
+ | Working app runtime proof | Completed proof | M7/#156 proved the named runtime path and proof gates; generic GUI mutation, Claude parity, and 1.0 readiness remain excluded. |
58
+ | Codex autonomy cockpit | P0 beta | Recent session cards, cockpit inbox, read-only watcher/resume-request packets, approval packets, and operating-picture tools are public-safe by default. |
59
+ | Eva operating picture | P0 beta | Business pulse and attention inbox use LCO/Codex, optional structured GitHub items, explicit PLAN_STATE pins, and source-authority coverage; P1 business adapters are not configured yet. |
60
+ | Claude Code adapter | Fixture inventory | Supports redacted metadata-only fixtures with `claude_session:*` refs; no Claude parity, live control, GUI mutation, or cloud sync claim. |
61
+
62
+ ## Current Sprint: Codex Autonomy Cockpit + Eva Operating Picture
63
+
64
+ The roadmap is now ranked by one question:
65
+
66
+ > Does this help an OpenClaw orchestrator manage hundreds of sessions with less
67
+ > context, less rereading, and safer action?
68
+
69
+ The current sprint is tracked by
70
+ [#254](https://github.com/100yenadmin/Lossless-Codex-Orchestrator-LCO/issues/254),
71
+ [#255](https://github.com/100yenadmin/Lossless-Codex-Orchestrator-LCO/issues/255),
72
+ and first child
73
+ [#256](https://github.com/100yenadmin/Lossless-Codex-Orchestrator-LCO/issues/256).
74
+ The sprint brief is
75
+ [docs/sprints/brief-lco-codex-autonomy-cockpit-sprint-2026-07-01.md](docs/sprints/brief-lco-codex-autonomy-cockpit-sprint-2026-07-01.md).
76
+
77
+ The core Codex recall and M9 handoff paths are working; the current gap is
78
+ operating autonomy. Eva should be able to answer which Codex, project, and
79
+ business lanes need attention from compact cited cards without rereading raw
80
+ transcripts.
81
+
82
+ P0 is read-only and deterministic:
83
+
84
+ - #254 adds `loo_recent_sessions`, `loo_cockpit_inbox`, read-only
85
+ watcher/resume-request primitives, evidence-backed session cards, and
86
+ approval packets for dry-run control context.
87
+ - #260 adds read-only Codex app-server status/thread signals and
88
+ `loo_visible_codex_map`, a public-safe join between sanitized visible Codex
89
+ candidates and indexed session cards.
90
+ - #255 adds `loo_plan_state_pins`, `loo_github_operating_items`,
91
+ `loo_project_digest`, `loo_attention_inbox`, and `loo_business_pulse`.
92
+ - #264 adds a deterministic read-only GitHub operating-item collector so
93
+ issue/PR/check records become public-safe `github_items` before digest tools
94
+ summarize them.
95
+ - #271 cleans cockpit-card presentation so agent-facing titles, summaries, and
96
+ next actions do not expose directive fragments, markdown tables, duplicated
97
+ labels, or transcript-shaped excerpts.
98
+ - #272 adds `eva-operating-picture-dogfood-v1`, an end-to-end public-safe
99
+ workflow fixture for GitHub check fidelity, recent Codex cards, cockpit
100
+ ranking, customer/runtime/security priority, source coverage, and P1 gaps.
101
+ - #258 adds a public-safe [source authority profile](docs/SOURCE_AUTHORITY_PROFILE.md)
102
+ so P0 tools distinguish adapter coverage from who owns each truth claim.
103
+ - `PLAN_STATE.md` is demoted to bootloader, manual pins, approval boundaries,
104
+ stop conditions, and exception ledger. Unmarked prose is not current-state
105
+ truth.
106
+ - P1 sources such as Notion, support-control, Company Brain, Stripe,
107
+ dashboard/export, and model summarization remain `not_configured` until
108
+ separate read-only adapters prove source-backed collection.
109
+
110
+ What a local OpenClaw agent can do today:
111
+
112
+ - Search and describe local Codex sessions through `loo_search_sessions` and
113
+ `loo_describe_session`.
114
+ - Expand bounded evidence with `loo_expand_session` or `loo_expand_query`.
115
+ - Retrieve plans, finals, touched files, and session maps with the Codex detail
116
+ tools.
117
+ - List recent sessions and operating-picture attention items with
118
+ `loo_recent_sessions`, `loo_cockpit_inbox`, `loo_github_operating_items`,
119
+ `loo_project_digest`, `loo_attention_inbox`, and `loo_business_pulse`.
120
+ - Represent watcher-triggered follow-up requests with `loo_watchers_list`,
121
+ `loo_watcher_status`, `loo_watcher_dry_run`, and
122
+ `loo_resume_request_packet`; these tools create request packets only and do
123
+ not run live Codex control.
124
+ - Inspect Codex app-server readiness and visible-to-indexed session correlation
125
+ with `loo_codex_app_server_status`, `loo_codex_app_server_threads`, and
126
+ `loo_visible_codex_map`; these tools report source coverage, confidence, and
127
+ ambiguity without raw turns, screenshots, remote-control enablement, or GUI
128
+ mutation.
129
+ - Inspect `authorityCoverage` to see whether LCO, GitHub, or PLAN_STATE is
130
+ authoritative, fallback-only, unavailable, or not configured for a claim.
131
+ - Dry-run Codex control actions and inspect audit ids before any live action.
132
+ - Check package, plugin, gateway, and first-run readiness through `loo_doctor`,
133
+ `loo onboard status`, `loo openclaw dogfood`, `loo openclaw tool-smoke`, and
134
+ `loo openclaw published-smoke`.
135
+
136
+ Completed proof:
137
+
138
+ - The [Working App Proof Sprint](docs/WORKING_APP_PROOF_SPRINT.md) and #156
139
+ closed the M7 runtime proof lane for the named Codex-first surfaces.
140
+ - M9 closed the first-class agent skill, docs truth pass, agent dogfood,
141
+ fresh npm clean-profile smoke, and 1.0 readiness gate.
142
+ - Desktop fallback remains action-bound; generic GUI mutation and Codex GUI
143
+ mutation are not public beta claims.
144
+ - Claude Code remains an adapter stub and fixture inventory, not parity.
145
+
146
+ ## Quick Start
147
+
148
+ Node.js 22 or newer is required.
149
+
150
+ ```bash
151
+ git clone https://github.com/100yenadmin/Lossless-Codex-Orchestrator-LCO.git
152
+ cd Lossless-Codex-Orchestrator-LCO
153
+ npm install
154
+ npm run build
155
+ ```
156
+
157
+ Published beta package target:
158
+
159
+ ```bash
160
+ npm install -g lossless-openclaw-orchestrator@beta
161
+ ```
162
+
163
+ ### npm dist-tag policy
164
+
165
+ Until the first stable release exists, install the public beta through the
166
+ `beta` dist-tag. The `beta` tag must point at the newest public beta. The
167
+ `latest` tag currently remains `0.1.0-beta.4` and must not be promoted during
168
+ `0.1.x` beta releases unless a separate latest-promotion operation explicitly
169
+ claims and proves that change. At the first stable release, move `latest` to the
170
+ stable version and keep prereleases on prerelease tags such as `beta`. Do not publish a fake stable package just to move a dist-tag.
171
+
172
+ Default local database:
173
+
174
+ ```bash
175
+ export LOO_DB_PATH="$HOME/.openclaw/lossless-openclaw-orchestrator/orchestrator.sqlite"
176
+ ```
177
+
178
+ Optional read-only OpenClaw LCM peer DBs:
179
+
180
+ ```bash
181
+ export LOO_LCM_DB_PATHS="$HOME/.openclaw/lcm.db"
182
+ ```
183
+
184
+ ## CLI
185
+
186
+ ```bash
187
+ loo onboard status --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/onboarding --now 2026-07-01T00:00:00.000Z --strict
188
+ loo doctor
189
+ loo index codex --max-files 150 ~/.codex/sessions ~/.codex/archived_sessions
190
+ loo search "proposed plan billing bridge"
191
+ loo grep --lcm-db ~/.openclaw/lcm.db "billing bridge"
192
+ loo describe codex_thread:019f-example
193
+ loo expand-query --profile brief "billing bridge"
194
+ loo sanitize sessions --thread-id 019f-example --repair-plan --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/issue-<number>-sanitizer
195
+ loo serve
196
+ ```
197
+
198
+ Desktop readiness checks:
199
+
200
+ ```bash
201
+ loo desktop see cua-driver
202
+ loo desktop see peekaboo --snapshot --max-nodes 50
203
+ loo desktop act cua-driver "click primary" # dry-run only in this beta
204
+ ```
205
+
206
+ Live desktop act requests are intentionally blocked in this beta. Through MCP or
207
+ OpenClaw, `loo_desktop_act` returns structured blockers for missing or
208
+ mismatched action-bound proof fields so an agent can continue through `loo_desktop_live_proof_harness`
209
+ and `loo_desktop_proof_report` without performing GUI mutation.
210
+
211
+ Scorecard and release proof commands:
212
+
213
+ ```bash
214
+ loo scorecards sweep --claim-scope codex-read-search-expand-dry-run --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/issue-<number>-scorecard-sweep --strict
215
+ loo eval scenarios --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/issue-<number>-qa-lab-v1 --strict
216
+ loo eval scenarios --scenario-dir evals/scenarios/v1.1 --runtime-proof-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/runtime-proofs --scenario-id openclaw-gateway-live-codex-v1-1 --scenario-id post-action-refresh-reasoning-v1-1 --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/issue-<number>-qa-lab-v1.1 --strict
217
+ loo release preflight --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-preflight
218
+ loo release status --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status --candidate-sha <release-candidate-sha> --approved-live-control-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/approved-live-control-smoke.json --npm-publish-approval-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/npm-approval.json --github-release-approval-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/github-release-approval.json --github-ci-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/github-ci.json --codeql-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/codeql.json
219
+ loo release demo-status --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/demo
220
+ loo release general-readiness --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/general-readiness --fresh-npm-evidence published-package-smoke.json --agent-dogfood-evidence openclaw-tool-smoke.json --strict
221
+ ```
222
+
223
+ QA Lab dry-run scenarios live in `evals/scenarios/v1`. Runtime-required working
224
+ app proof scenarios live in `evals/scenarios/v1.1`. The current
225
+ `loo eval scenarios` command validates `v1` dry-run contracts and `v1.1`
226
+ runtime-required proof markers without performing the live actions itself.
227
+ Milestone 7 runtime scenarios stay incomplete until `--runtime-proof-dir`
228
+ contains public-safe `<scenario-id>.runtime-proof.json` markers from the later
229
+ child issues. Use repeated `--scenario-id` flags to scope the sweep to the
230
+ surfaces claimed by the release: a Codex-first working-app claim includes
231
+ `openclaw-gateway-live-codex-v1-1` and
232
+ `post-action-refresh-reasoning-v1-1`; add the desktop or local UI scenario ids
233
+ only when the release copy claims those surfaces.
234
+
235
+ For a release candidate that intentionally claims only read/search/describe/expand
236
+ plus dry-run control, name the smaller scope explicitly and do not pass
237
+ live-control proof:
238
+
239
+ ```bash
240
+ loo release preflight --claim-scope codex-read-search-expand-dry-run --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-preflight --strict
241
+ loo release bundle --claim-scope codex-read-search-expand-dry-run --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-bundle
242
+ loo release demo-status --claim-scope codex-read-search-expand-dry-run --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/demo --strict
243
+ loo release status --claim-scope codex-read-search-expand-dry-run --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status --candidate-sha <release-candidate-sha> --npm-publish-approval-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/npm-approval.json --github-release-approval-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/github-release-approval.json --github-ci-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/github-ci.json --codeql-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/codeql.json --strict
244
+ ```
245
+
246
+ That scope records approved live Codex control and working-app runtime proof as
247
+ excluded claims. Use the default `codex-live-control` scope when the release
248
+ claims live send/resume/steer or interrupt proof but does not yet claim the
249
+ installed gateway plus post-action refresh loop.
250
+
251
+ Use `codex-working-app-proof` only when the release candidate has both the
252
+ approved live-control proof and public-safe v1.1 runtime marker files from #158
253
+ and #159:
254
+
255
+ ```bash
256
+ loo release preflight --claim-scope codex-working-app-proof --runtime-proof-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/runtime-proof --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-preflight --approved-live-control-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/approved-live-control-smoke.json --strict
257
+ loo release status --claim-scope codex-working-app-proof --runtime-proof-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/runtime-proof --evidence-dir /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status --candidate-sha <release-candidate-sha> --approved-live-control-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/approved-live-control-smoke.json --npm-publish-approval-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/npm-approval.json --github-release-approval-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/github-release-approval.json --github-ci-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/github-ci.json --codeql-evidence /Volumes/LEXAR/Codex/lossless-openclaw-orchestrator/YYYY-MM-DD/release-status/codeql.json --strict
258
+ ```
259
+
260
+ Without `openclaw-gateway-live-codex-v1-1.runtime-proof.json` and
261
+ `post-action-refresh-reasoning-v1-1.runtime-proof.json`, that scope fails closed
262
+ with `runtime_proof_missing:*` blockers.
263
+
264
+ The beta proof workflow lives in [docs/BETA_RELEASE_DEMO.md](docs/BETA_RELEASE_DEMO.md).
265
+ The release cadence and approval gates live in
266
+ [docs/BETA_RELEASE_RUNBOOK.md](docs/BETA_RELEASE_RUNBOOK.md).
267
+
268
+ ## Beta Claim Boundary
269
+
270
+ Allowed public beta claim:
271
+
272
+ > Control and collaborate with local Codex sessions through OpenClaw using local
273
+ > indexing, bounded recall, and approval-gated controls.
274
+
275
+ Forbidden beta claims:
276
+
277
+ - Full Claude Code parity
278
+ - cloud sync
279
+ - unattended desktop takeover
280
+ - bypasses Codex permissions
281
+ - release-grade enterprise security
282
+
283
+ Detailed public-claim checks live in [docs/CLAIM_AUDIT.md](docs/CLAIM_AUDIT.md).
284
+
285
+ ## MCP / OpenClaw Tools
286
+
287
+ Tool prefix: `loo_*`.
288
+
289
+ Read/search:
290
+
291
+ - `loo_index_sessions`
292
+ - `loo_grep`
293
+ - `loo_search_sessions`
294
+ - `loo_describe_ref`
295
+ - `loo_describe_session`
296
+ - `loo_expand_session`
297
+ - `loo_expand_query`
298
+
299
+ Codex details:
300
+
301
+ - `loo_codex_thread_map`
302
+ - `loo_codex_final_messages`
303
+ - `loo_codex_plans`
304
+ - `loo_codex_touched_files`
305
+ - `loo_codex_tool_calls`
306
+
307
+ Approval-gated controls:
308
+
309
+ - `loo_codex_control_dry_run`
310
+ - `loo_codex_resume_thread`
311
+ - `loo_codex_send_message`
312
+ - `loo_codex_steer_thread`
313
+ - `loo_codex_interrupt_thread`
314
+
315
+ Desktop fallback:
316
+
317
+ - `loo_desktop_see`
318
+ - `loo_desktop_act`
319
+
320
+ Admin:
321
+
322
+ - `loo_doctor`
323
+ - `loo_lcm_peer_dbs`
324
+ - `loo_permissions`
325
+ - `loo_audit_tail`
326
+
327
+ OpenClaw setup lives in [docs/OPENCLAW_PLUGIN.md](docs/OPENCLAW_PLUGIN.md).
328
+
329
+ ## Architecture
330
+
331
+ - `packages/core`: SQLite schema, Codex import, search, expansion, extraction, source refs.
332
+ - `packages/mcp-server`: stdio MCP tool server.
333
+ - `packages/openclaw-plugin`: OpenClaw plugin metadata and registration.
334
+ - `packages/cli`: `loo` CLI.
335
+ - `packages/adapters`: Codex control, CUA/Peekaboo boundary, Claude Code stub.
336
+ - `evals/scorecards/v1.0`: beta scorecards for safety, retrieval, install, claims, usability, local Mac search UI, and orchestrator leverage.
337
+ - `evals/scorecards/v1.0/working-app-runtime-proof-review.json`: Milestone 7 runtime proof scorecard.
338
+ - `evals/scenarios/v1`: QA Lab dry-run scenario contracts for session map triage, retrieval, bounded expansion, control safety, gateway dogfood, and release claims.
339
+ - `evals/scenarios/v1.1`: runtime-required working-app proof contracts for installed gateway live control, post-action refresh, desktop collaboration, and connected UI proof.
340
+ - `docs/`: install, demo, privacy, safe summaries, release proof, release runbook, and public-claim boundaries.
341
+
342
+ Direct Codex protocol is preferred for thread work. GUI automation is a fallback
343
+ for visible app collaboration only.
344
+
345
+ ## Development
346
+
347
+ ```bash
348
+ npm run typecheck
349
+ npm test
350
+ npm run build
351
+ npm run check
352
+ ```
353
+
354
+ The test suite uses redacted fixtures and Node's built-in test runner.
355
+
356
+ Every meaningful issue should include a failing test, fixture, smoke, or eval
357
+ scenario; minimal implementation; focused validation; public-safe evidence; and
358
+ an issue or PR status update.
359
+
360
+ ## Privacy
361
+
362
+ The default index is local SQLite. The index stores safe text and metadata so
363
+ agents can search and expand bounded evidence. Raw local session files remain
364
+ the source of truth and should not be committed.
365
+
366
+ Public evidence should contain counts, refs, hashes, statuses, and redacted
367
+ metadata. It should not contain raw transcripts, raw prompts, SQLite databases,
368
+ tokens, cookies, API keys, screenshots, videos, or private customer data.
369
+
370
+ See [docs/PRIVACY.md](docs/PRIVACY.md) and [docs/SAFE_SUMMARIES.md](docs/SAFE_SUMMARIES.md).
371
+
372
+ ## License
373
+
374
+ Current source is source-available under the
375
+ [PolyForm Noncommercial License 1.0.0](LICENSE). Noncommercial use is permitted
376
+ under those terms.
377
+
378
+ Commercial, internal-business, hosted-service, or product use requires a
379
+ separate commercial license from the project owner.
380
+
381
+ Historical beta releases published under the MIT License remain available under
382
+ the terms that applied to those releases. This license transition applies
383
+ prospectively to the current source and future releases.
package/SECURITY.md ADDED
@@ -0,0 +1,21 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ The public beta supports the latest published `0.1.x` beta.
6
+
7
+ ## Reporting A Vulnerability
8
+
9
+ Please open a private security advisory on GitHub or contact the maintainer privately before publishing details.
10
+
11
+ High-priority issues include:
12
+
13
+ - Live control running without a dry-run audit id.
14
+ - Raw tokens, cookies, connector URLs, or customer credentials written to shareable evidence.
15
+ - Local session text uploaded by default.
16
+ - Codex approvals or sandbox semantics bypassed.
17
+ - Desktop fallback stealing focus or acting on the wrong app/window.
18
+
19
+ ## Local Privacy Boundary
20
+
21
+ This project is local-first. Do not attach raw Codex/Claude transcripts, private SQLite DBs, auth files, cookies, tokens, or screenshots containing secrets to public issues.