@jbaehova/onthego 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ONTHEGO contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # ONTHEGO
2
+
3
+ ONTHEGO carries project-scoped agent sessions, a redacted handoff, execution logs, and work state between a local Git workspace and a Daytona sandbox. A small control plane on Contabo keeps the latest state available across local machines. `status` turns the synchronized state into a concise update with GPT-5.6 Luna using high reasoning effort.
4
+
5
+ ## Install
6
+
7
+ The npm package currently uses the `@jbaehova` scope because the unscoped `onthego` name is owned by another npm account.
8
+
9
+ ```sh
10
+ npm install -g @jbaehova/onthego
11
+ ```
12
+
13
+ The installed command is `onthego`.
14
+
15
+ ## Phase 1 commands
16
+
17
+ ```sh
18
+ onthego init
19
+ onthego login
20
+ onthego pass
21
+ onthego status
22
+ onthego pull
23
+ ```
24
+
25
+ `init` turns the current Git repository into an ONTHEGO project. It creates the safe, trackable `.onthego.yaml` project identity and adds local secret and state patterns to `.gitignore`. Re-running it preserves the existing project identity. `login` authenticates this device with the ONTHEGO control plane. `pass` automatically finds every session for the current Git project from Codex, Cursor, Hermes, and Claude. It redacts all detected sessions, generates `HANDOFF.md`, and starts the default `agent-sync` workload in Daytona. No agent or session option is required. `status` refreshes the latest Daytona run and redacted logs, synchronizes them through the control plane, and generates the LLM summary. `pull` downloads the latest result only after its SHA-256 hash matches the remote receipt.
26
+
27
+ Run `onthego init` once after cloning or creating a repository. The Phase 1 pass flow is always `onthego pass`.
28
+
29
+ ## Secrets
30
+
31
+ All repository secret values live in one root `.env`. ONTHEGO searches from the working directory to the Git root and refuses a file readable by group or other users. The current integration reads these keys:
32
+
33
+ - `DAYTONA_API_KEY`
34
+ - `OPENAI_API_KEY`
35
+ - `ONTHEGO_CONTROL_PLANE_URL`
36
+ - `ONTHEGO_CONTROL_PLANE_TLS_SHA256`
37
+ - `ONTHEGO_LOGIN_BOOTSTRAP_TOKEN`
38
+ - `ONTHEGO_CONTROL_PLANE_SIGNING_KEY`
39
+ - `CONTABO_VPS_IP_ADDRESS`
40
+ - `CONTABO_VPS_DEFAULT_USER`
41
+ - `CONTABO_VPS_PASSWORD`
42
+
43
+ The `.env` file, `AGENTS.md`, `.agents/`, local state, npm credentials, archives, build output, logs, and editor metadata are ignored by Git. The login session is stored outside the repository with permission `0600`.
44
+
45
+ ## Security model
46
+
47
+ - Context selection accepts only Codex, Cursor, Hermes, and Claude sessions associated with the current Git project.
48
+ - Redaction removes common tokens, authorization headers, private keys, and matching secret assignments before transfer.
49
+ - The Contabo client pins the server certificate SHA-256 fingerprint.
50
+ - Control plane state updates use authenticated generation checks.
51
+ - Daytona result files are accepted only when the remote receipt contains a matching SHA-256 hash.
52
+ - Portable internal snapshots use age X25519 encryption and Ed25519 signatures.
53
+
54
+ ## Release
55
+
56
+ GitHub Actions tests the Go code, builds static Linux amd64 and macOS arm64 binaries, assembles the npm package, scans the release tree for local or secret files, publishes to npm, and attaches checksummed binaries to the GitHub release.
57
+
58
+ ## Development
59
+
60
+ Go 1.25.4 or newer and Node.js 18 or newer are required.
61
+
62
+ ```sh
63
+ make check
64
+ make build
65
+ ```
66
+
67
+ GPU fine-tuning, GPU model serving, and the Hugging Face connector are backlog items. Their internal experiments are not part of the Phase 1 command contract.
68
+
69
+ See [docs/architecture.md](docs/architecture.md) and [docs/progress.md](docs/progress.md) for the implementation record.
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { spawnSync } = require("node:child_process");
4
+ const { existsSync } = require("node:fs");
5
+ const path = require("node:path");
6
+
7
+ const supported = new Map([
8
+ ["darwin-arm64", "onthego-darwin-arm64"],
9
+ ["linux-x64", "onthego-linux-amd64"],
10
+ ]);
11
+
12
+ const platform = `${process.platform}-${process.arch}`;
13
+ const filename = supported.get(platform);
14
+ if (!filename) {
15
+ process.stderr.write(`onthego does not support ${platform} yet\n`);
16
+ process.exit(1);
17
+ }
18
+
19
+ const binary = path.resolve(__dirname, "..", "vendor", filename);
20
+ if (!existsSync(binary)) {
21
+ process.stderr.write(`onthego binary is missing for ${platform}\n`);
22
+ process.exit(1);
23
+ }
24
+
25
+ const result = spawnSync(binary, process.argv.slice(2), {
26
+ stdio: "inherit",
27
+ env: process.env,
28
+ });
29
+
30
+ if (result.error) {
31
+ process.stderr.write(`${result.error.message}\n`);
32
+ process.exit(1);
33
+ }
34
+ process.exit(result.status ?? 1);
Binary file
Binary file
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@jbaehova/onthego",
3
+ "version": "0.1.1",
4
+ "description": "Carry agent context and work between local projects and Daytona sandboxes",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/jbaehova/onthego.git"
9
+ },
10
+ "homepage": "https://github.com/jbaehova/onthego#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/jbaehova/onthego/issues"
13
+ },
14
+ "bin": {
15
+ "onthego": "npm/bin/onthego.js"
16
+ },
17
+ "files": [
18
+ "npm/bin/onthego.js",
19
+ "npm/vendor/onthego-darwin-arm64",
20
+ "npm/vendor/onthego-linux-amd64",
21
+ "README.md",
22
+ "LICENSE"
23
+ ],
24
+ "engines": {
25
+ "node": ">=18"
26
+ },
27
+ "scripts": {
28
+ "demo": "./scripts/demo.sh",
29
+ "prepack": "node npm/scripts/verify-package.mjs",
30
+ "test": "go test ./..."
31
+ },
32
+ "publishConfig": {
33
+ "access": "public",
34
+ "provenance": true
35
+ }
36
+ }