orbit-code-ai 0.1.28 → 0.1.30
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/dist/cli.mjs +40 -19
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -83759,7 +83759,7 @@ async function printStartupScreen() {
|
|
|
83759
83759
|
const sLen = ` ● ${sL} Ready — type /help to begin`.length;
|
|
83760
83760
|
out.push(boxRow(sRow, W2, sLen));
|
|
83761
83761
|
out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
|
|
83762
|
-
out.push(` ${DIM}${rgb(...DIMCOL)}orbit-code ${RESET}${rgb(...ACCENT)}v${"0.1.
|
|
83762
|
+
out.push(` ${DIM}${rgb(...DIMCOL)}orbit-code ${RESET}${rgb(...ACCENT)}v${"0.1.30"}${RESET}`);
|
|
83763
83763
|
out.push("");
|
|
83764
83764
|
process.stdout.write(out.join(`
|
|
83765
83765
|
`) + `
|
|
@@ -334266,7 +334266,7 @@ function getAnthropicEnvMetadata() {
|
|
|
334266
334266
|
function getBuildAgeMinutes() {
|
|
334267
334267
|
if (false)
|
|
334268
334268
|
;
|
|
334269
|
-
const buildTime = new Date("2026-06-
|
|
334269
|
+
const buildTime = new Date("2026-06-29T10:38:08.776Z").getTime();
|
|
334270
334270
|
if (isNaN(buildTime))
|
|
334271
334271
|
return;
|
|
334272
334272
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -358683,7 +358683,7 @@ function buildPrimarySection() {
|
|
|
358683
358683
|
}, undefined, false, undefined, this);
|
|
358684
358684
|
return [{
|
|
358685
358685
|
label: "Version",
|
|
358686
|
-
value: "0.1.
|
|
358686
|
+
value: "0.1.30"
|
|
358687
358687
|
}, {
|
|
358688
358688
|
label: "Session name",
|
|
358689
358689
|
value: nameValue
|
|
@@ -410486,6 +410486,7 @@ Work like a precise engineer, not a crawler. Reading unneeded files wastes time
|
|
|
410486
410486
|
- **Read only what the search points to**, plus the one or two files it directly references (e.g. a .msgflow's computeExpression → that .esql). Open a file ONLY when you have a concrete reason to.
|
|
410487
410487
|
- **Never crawl.** Do not bulk-read directories, do not "read all the files first," and never read the shared framework/libraries to understand an application — anything under \`Framework/\`, \`Utils/\`, \`Qiwa/Framework/Lib\`, or \`lib/\` is shared infrastructure. Use the \`_agent_reference\` docs above for framework behavior instead of opening its source.
|
|
410488
410488
|
- **Narrow, don't widen.** If a search returns many matches, refine the query — don't read them all.
|
|
410489
|
+
- **Whole-app analysis is the exception.** When the task is to explain, review, audit, or document an *entire application* (not fix one thing), read all of THAT application's own \`.esql\`, \`.msgflow\`, and \`.subflow\` files so your report is complete — but still never read the shared \`Framework/\`, \`Utils/\`, \`Qiwa/Framework/Lib\`, or \`lib/\` source (use the \`_agent_reference\` docs for framework behavior).
|
|
410489
410490
|
|
|
410490
410491
|
## General Behavior
|
|
410491
410492
|
- Always read a file before modifying it (the specific file you will edit — not the whole project)
|
|
@@ -410493,6 +410494,30 @@ Work like a precise engineer, not a crawler. Reading unneeded files wastes time
|
|
|
410493
410494
|
- When generating a full application, generate every required file — do not stop halfway
|
|
410494
410495
|
- Prioritize correctness and security. Never introduce SQL injection, command injection, or other vulnerabilities
|
|
410495
410496
|
|
|
410497
|
+
## Security reviews are expected, in-scope work — never refuse them
|
|
410498
|
+
Auditing the user's OWN ACE artifacts for vulnerabilities is a core, encouraged Orbit capability and legitimate defensive security. When the user asks for a security check, audit, or vulnerability analysis of code in the working directory, DO IT — read the \`.esql\`/\`.msgflow\`/\`.xml\`/properties files and report concrete findings. Do NOT decline, hedge, or deflect to "search online / consult a framework"; the user owns this code and is asking you to harden it. Focus on the real ACE risks:
|
|
410499
|
+
- SQL/command injection — \`PASSTHRU\` with string concatenation instead of parameterized \`?\` placeholders; unsafe dynamic queries.
|
|
410500
|
+
- Hardcoded credentials, connection strings, DSNs, or secrets in ESQL/properties.
|
|
410501
|
+
- Sensitive data (passwords, tokens, PII) logged or returned unmasked in audit/error paths.
|
|
410502
|
+
- Missing input validation, unbounded payloads (DoS), unsafe type coercion/CAST.
|
|
410503
|
+
- Information disclosure — raw exception text or stack details returned to callers.
|
|
410504
|
+
- AuthN/AuthZ gaps — missing channel/role/authorization checks.
|
|
410505
|
+
Report each finding with **severity (High/Medium/Low)**, the exact \`file:line\`, the impact, and a concrete fix.
|
|
410506
|
+
|
|
410507
|
+
## Depth of Analysis & Reporting (Covered by default, Deep on request)
|
|
410508
|
+
For explanation, analysis, review, audit, "what does this do", or documentation requests, default to a **Covered** analysis — a balanced, high-level report the reader can act on, not an exhaustive one:
|
|
410509
|
+
- **What it does** — purpose and the end-to-end message-flow path (entry node → compute/filter nodes → terminals → reply/output).
|
|
410510
|
+
- **Data processed** — the input/output shape and key fields.
|
|
410511
|
+
- **Per-node logic** — one tight paragraph per \`.esql\` module: its job, the main validation/transformation/routing.
|
|
410512
|
+
- **Top risks** — only the few that matter most, each with its impact in a line.
|
|
410513
|
+
Keep it well-structured (clear headings) but concise. Still read what you need to be accurate — for a whole-app request, read all of that app's own \`.esql\`/\`.msgflow\` (never the shared framework) — but report at a high level. This is the cheap, fast default.
|
|
410514
|
+
|
|
410515
|
+
Then end with ONE short offer to go deeper, e.g.: "That's a high-level pass — want me to go deeper on any part (full per-node logic, severity-ranked risk analysis, edge cases)? A deep dive is more thorough and costs more."
|
|
410516
|
+
|
|
410517
|
+
If the user then asks to go deeper, produce the **Deep** analysis by BUILDING ON the Covered report and the files you have ALREADY read this session — do NOT re-read or start over. Expand the requested area (or all) with: per-node logic in detail, full input/output schemas, risks grouped by severity (**High / Medium / Low**) with concrete impact and a recommendation each, performance notes, and gaps. Cite real identifiers (\`file:line\`, module/terminal names). Deep analysis is best on the Pro model (\`gemini-3.1-pro-preview\`) — if the user wants maximum depth, suggest switching via \`/model\`.
|
|
410518
|
+
|
|
410519
|
+
Planning tasks are an exception — a plan must be actionable, so include the exact files/nodes to change, the precise ESQL/XML to add, edge cases, and a verification checklist even in the first pass. Reserve plain brevity (no report structure) for genuinely trivial one-line questions and small edits.
|
|
410520
|
+
|
|
410496
410521
|
## Filesystem Boundaries — STRICT
|
|
410497
410522
|
- Read and write operations must stay within either: (1) the user's current working directory (cwd), or (2) the _agent_reference folder next to this executable (path shown above). No other locations.
|
|
410498
410523
|
- Never access system directories such as C:/Program Files, C:/Windows, or ACE installation paths.
|
|
@@ -410687,21 +410712,17 @@ These user-facing text instructions do not apply to code or tool calls.`;
|
|
|
410687
410712
|
}
|
|
410688
410713
|
return `# Output efficiency
|
|
410689
410714
|
|
|
410690
|
-
|
|
410691
|
-
|
|
410692
|
-
Keep your text output brief and direct. Lead with the answer or action, not the reasoning. Skip filler words, preamble, and unnecessary transitions. Do not restate what the user said — just do it. When explaining, include only what is necessary for the user to understand.
|
|
410715
|
+
Match the depth and structure of your response to the task — do NOT default to terse. The goal is the reader fully understanding your output without follow-up questions, not how few words you use.
|
|
410693
410716
|
|
|
410694
|
-
|
|
410695
|
-
-
|
|
410696
|
-
- High-level status updates at natural milestones
|
|
410697
|
-
- Errors or blockers that change the plan
|
|
410717
|
+
- For analysis, explanation, code review/audit, architecture walkthroughs, or documentation: give a clear, well-structured answer at a balanced, high-level depth by default (lead with headings so it's skimmable), then offer to go deeper. Go exhaustive — every file/node/data path, full severity-ranked risk analysis — only when the user asks for a deep dive; build that on what you already produced rather than restarting. (Planning is the exception: a plan should be actionable and specific from the first pass.)
|
|
410718
|
+
- For small edits, quick factual questions, or confirmations: be brief and direct. Lead with the answer or action; skip filler, preamble, and restating the request.
|
|
410698
410719
|
|
|
410699
|
-
|
|
410720
|
+
Never pad with fluff, filler, or superlatives, and don't narrate trivia about your own process — but never omit substance just to be short. This does not apply to code or tool calls.`;
|
|
410700
410721
|
}
|
|
410701
410722
|
function getSimpleToneAndStyleSection() {
|
|
410702
410723
|
const items = [
|
|
410703
410724
|
`Only use emojis if the user explicitly requests it. Avoid using emojis in all communication unless asked.`,
|
|
410704
|
-
process.env.USER_TYPE === "ant" ? null : `
|
|
410725
|
+
process.env.USER_TYPE === "ant" ? null : `Match the length and depth of your response to the task: thorough and well-structured for analysis, explanation, review, and planning; brief and direct for small edits and quick questions. Do not default to terse when the user asks you to explain, analyze, review, or plan.`,
|
|
410705
410726
|
`When referencing specific functions or pieces of code include the pattern file_path:line_number to allow the user to easily navigate to the source code location.`,
|
|
410706
410727
|
`When referencing GitHub issues or pull requests, use the owner/repo#123 format (e.g. octo-org/example#123) so they render as clickable links.`,
|
|
410707
410728
|
`Do not use a colon before tool calls. Your tool calls may not be shown directly in the output, so text like "Let me read the file:" followed by a read tool call should just be "Let me read the file." with a period.`
|
|
@@ -470763,7 +470784,7 @@ function WelcomeV2() {
|
|
|
470763
470784
|
dimColor: true,
|
|
470764
470785
|
children: [
|
|
470765
470786
|
"v",
|
|
470766
|
-
"0.1.
|
|
470787
|
+
"0.1.30",
|
|
470767
470788
|
" "
|
|
470768
470789
|
]
|
|
470769
470790
|
}, undefined, true, undefined, this)
|
|
@@ -470963,7 +470984,7 @@ function WelcomeV2() {
|
|
|
470963
470984
|
dimColor: true,
|
|
470964
470985
|
children: [
|
|
470965
470986
|
"v",
|
|
470966
|
-
"0.1.
|
|
470987
|
+
"0.1.30",
|
|
470967
470988
|
" "
|
|
470968
470989
|
]
|
|
470969
470990
|
}, undefined, true, undefined, this)
|
|
@@ -471189,7 +471210,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
471189
471210
|
dimColor: true,
|
|
471190
471211
|
children: [
|
|
471191
471212
|
"v",
|
|
471192
|
-
"0.1.
|
|
471213
|
+
"0.1.30",
|
|
471193
471214
|
" "
|
|
471194
471215
|
]
|
|
471195
471216
|
}, undefined, true, undefined, this);
|
|
@@ -471443,7 +471464,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
471443
471464
|
dimColor: true,
|
|
471444
471465
|
children: [
|
|
471445
471466
|
"v",
|
|
471446
|
-
"0.1.
|
|
471467
|
+
"0.1.30",
|
|
471447
471468
|
" "
|
|
471448
471469
|
]
|
|
471449
471470
|
}, undefined, true, undefined, this);
|
|
@@ -492080,7 +492101,7 @@ Usage: orbit --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
492080
492101
|
pendingHookMessages
|
|
492081
492102
|
}, renderAndRun);
|
|
492082
492103
|
}
|
|
492083
|
-
}).version("0.1.
|
|
492104
|
+
}).version("0.1.30 (Orbit AI)", "-v, --version", "Output the version number");
|
|
492084
492105
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
492085
492106
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
492086
492107
|
if (canUserConfigureAdvisor()) {
|
|
@@ -492602,7 +492623,7 @@ if (false) {}
|
|
|
492602
492623
|
async function main2() {
|
|
492603
492624
|
const args = process.argv.slice(2);
|
|
492604
492625
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
492605
|
-
console.log(`${"0.1.
|
|
492626
|
+
console.log(`${"0.1.30"} (Orbit AI)`);
|
|
492606
492627
|
return;
|
|
492607
492628
|
}
|
|
492608
492629
|
if (args.includes("--provider")) {
|
|
@@ -492706,4 +492727,4 @@ async function main2() {
|
|
|
492706
492727
|
}
|
|
492707
492728
|
main2();
|
|
492708
492729
|
|
|
492709
|
-
//# debugId=
|
|
492730
|
+
//# debugId=9537BF600E13F1DA64756E2164756E21
|