@awak-app/simy-cli 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,13 +7,53 @@ npx @awak-app/simy-cli
7
7
  npm install -g @awak-app/simy-cli
8
8
  simy
9
9
  simy --daemon
10
+ simy --no-tui
11
+ simy --host https://simy.example.com
10
12
  ```
11
13
 
14
+ The published CLI connects to `https://app.simy.one` by default. Use `--host`
15
+ with an absolute SIMY Web origin for another deployment. Non-loopback hosts
16
+ must use HTTPS. `SIMY_WEB_ORIGIN` and the legacy `SIMY_API_ORIGIN` remain
17
+ available for automation, but the command-line flag takes precedence.
18
+
12
19
  The CLI starts a loopback HTTP agent on a random available port, keeps a
13
- 48-hour local session, and owns the coding-loop state machine when the SIMY
14
- web UI sends a backend-issued launch challenge. It builds the requirement
15
- charter, runs Codex or Claude Code, audits structured completion evidence, and
16
- re-instructs the executor within the configured attempt budget.
20
+ 48-hour, origin-scoped local session, and opens a native coding chat. The first
21
+ chat message creates the remote audit ledger and starts the local coding-loop
22
+ state machine; SIMY Web mirrors the lifecycle but is not required as the task
23
+ entry point. The CLI also accepts backend-issued launch challenges for Web-led
24
+ runs. It builds the requirement charter, runs Codex or Claude Code, audits
25
+ structured completion evidence, and re-instructs the executor within the
26
+ configured attempt budget.
27
+
28
+ ## Interactive console
29
+
30
+ Running `simy` in a terminal opens the Coding Loop chat. It discovers the
31
+ current GitHub repository and branch, selects an available executor, and keeps
32
+ the composer active so a natural-language request can start immediately. Each
33
+ run appears in a selectable list with its lifecycle state, process ID, and a
34
+ bounded live transcript. Use `--no-tui` for the foreground HTTP-agent behavior
35
+ or `--daemon` to run without the chat.
36
+
37
+ The console supports these direct controls:
38
+
39
+ - `Up`/`Down` or `j`/`k`: select a run.
40
+ - `i`: enter human guidance. Guidance submitted while a provider process is
41
+ active is queued for the next executor handoff; a waiting run resumes as a
42
+ new attempt in the same lifecycle record.
43
+ - `p`: pause or resume the selected local process on POSIX systems.
44
+ - `r`: refresh pull request, review, and CI evidence.
45
+ - `x`, then `x`: stop the selected run with confirmation.
46
+ - `?`: show the command reference; `q`: leave the console.
47
+
48
+ Use `/new`, `/repo <owner/name>`, `/branch <name>`, and
49
+ `/executor <codex|claude>` to compose another task. `/attach <path>` adds a
50
+ verified local file reference without copying or deleting the source file.
51
+ Slash commands also provide explicit human gates: `/continue`, `/approve`,
52
+ `/criteria`, `/checks`, `/recheck`, `/pause`, `/resume`, and `/stop`. Approval
53
+ notes, acceptance criteria, and required checks are recorded in the run charter
54
+ before orchestration continues. The console does not pretend that noninteractive
55
+ `codex exec` or `claude -p` accepts mid-process stdin; active-run guidance is
56
+ shown as queued until the next executor attempt.
17
57
 
18
58
  Structured run snapshots and process events are persisted remotely. Executor
19
59
  instructions and the latest bounded log lines are redacted at both the CLI and
@@ -41,6 +81,13 @@ Start `simy` from the selected repository or a workspace containing it. Set
41
81
  `SIMY_REPO_ROOT` when repositories live under a different root. The CLI
42
82
  verifies the checkout's GitHub `origin` before starting an executor.
43
83
 
84
+ The real-PTY console E2E can be rerun with `npm run test:e2e:console`. It starts
85
+ from an empty CLI chat, types repository, branch, executor, attachment, and task
86
+ input through a pseudoterminal, creates the Web ledger, spawns real child
87
+ processes, and exercises HIL plus lifecycle controls. It regenerates the
88
+ screenshots, terminal frames, raw transcript, and SHA-256 manifest under
89
+ `docs/pr-evidence/cli-coding-loop-console/`.
90
+
44
91
  ## Publishing
45
92
 
46
93
  Publishing is handled by GitHub Actions in `.github/workflows/publish.yml`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awak-app/simy-cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Local SIMY coding-loop agent for Codex and Claude Code.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,8 +13,12 @@
13
13
  "scripts": {
14
14
  "start": "node ./src/index.js",
15
15
  "test": "node --test",
16
- "check": "npm run check:syntax && npm test && npm run check:package",
17
- "check:syntax": "node --check ./src/index.js && node --check ./src/agent.js && node --check ./src/session-store.js && node --check ./src/orchestrator/index.js && node --check ./src/orchestrator/shared.js && node --check ./src/orchestrator/risk.js && node --check ./src/orchestrator/contract.js && node --check ./src/orchestrator/instruction.js && node --check ./src/orchestrator/execution-io.js && node --check ./src/orchestrator/result.js && node --check ./src/orchestrator/evidence.js && node --check ./src/orchestrator/independent-audit.js && node --check ./src/orchestrator/audit.js && node --check ./src/orchestrator/loop.js && node --check ./src/runner.js && node --check ./scripts/check-package-contents.js",
16
+ "test:e2e:console": "node ./scripts/console-e2e.js",
17
+ "test:e2e:console:real-provider": "node ./scripts/real-provider-console-e2e.js",
18
+ "test:e2e:console:fullstack": "node ./scripts/fullstack-cli-smoke.js",
19
+ "check": "npm run check:syntax && npm run check:real-provider-syntax && npm test && npm run check:package",
20
+ "check:real-provider-syntax": "node --check ./scripts/real-codex-probe.js && node --check ./scripts/real-claude-probe.js && node --check ./scripts/real-provider-console-fixture.js && node --check ./scripts/real-provider-console-e2e.js",
21
+ "check:syntax": "node --check ./src/index.js && node --check ./src/agent.js && node --check ./src/browser.js && node --check ./src/web-api.js && node --check ./src/run-registry.js && node --check ./src/backend-executable.js && node --check ./src/provider-stream.js && node --check ./src/console/index.js && node --check ./src/console/app.js && node --check ./src/console/commands.js && node --check ./src/local-attachments.js && node --check ./src/repository-inventory.js && node --check ./src/session-store.js && node --check ./src/web-origin.js && node --check ./src/workspace-context.js && node --check ./src/orchestrator/index.js && node --check ./src/orchestrator/shared.js && node --check ./src/orchestrator/risk.js && node --check ./src/orchestrator/contract.js && node --check ./src/orchestrator/instruction.js && node --check ./src/orchestrator/execution-io.js && node --check ./src/orchestrator/presentation.js && node --check ./src/orchestrator/result.js && node --check ./src/orchestrator/evidence.js && node --check ./src/orchestrator/independent-audit.js && node --check ./src/orchestrator/audit.js && node --check ./src/orchestrator/loop.js && node --check ./src/runner.js && node --check ./scripts/fixtures/fake-coding-backend.js && node --check ./scripts/console-e2e-fixture.js && node --check ./scripts/console-e2e.js && node --check ./scripts/real-provider-console-fixture.js && node --check ./scripts/real-provider-console-e2e.js && node --check ./scripts/fullstack-cli-smoke.js && node --check ./scripts/check-package-contents.js",
18
22
  "check:package": "node ./scripts/check-package-contents.js"
19
23
  },
20
24
  "engines": {
@@ -31,5 +35,14 @@
31
35
  "license": "UNLICENSED",
32
36
  "publishConfig": {
33
37
  "access": "public"
38
+ },
39
+ "dependencies": {
40
+ "ink": "^6.8.0",
41
+ "react": "^19.2.0"
42
+ },
43
+ "devDependencies": {
44
+ "@xterm/headless": "^6.0.0",
45
+ "ink-testing-library": "^4.0.0",
46
+ "node-pty": "^1.1.0"
34
47
  }
35
48
  }