@aria_asi/cli 0.2.26 → 0.2.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/CLIENT-ONBOARDING.md +282 -0
- package/bin/aria.js +1140 -14
- package/dist/aria-connector/src/auth-commands.d.ts +1 -0
- package/dist/aria-connector/src/auth-commands.d.ts.map +1 -1
- package/dist/aria-connector/src/auth-commands.js +89 -41
- package/dist/aria-connector/src/auth-commands.js.map +1 -1
- package/dist/aria-connector/src/chat.d.ts +3 -0
- package/dist/aria-connector/src/chat.d.ts.map +1 -1
- package/dist/aria-connector/src/chat.js +146 -8
- package/dist/aria-connector/src/chat.js.map +1 -1
- package/dist/aria-connector/src/codebase-scanner.d.ts +2 -2
- package/dist/aria-connector/src/codebase-scanner.d.ts.map +1 -1
- package/dist/aria-connector/src/codebase-scanner.js +1 -1
- package/dist/aria-connector/src/codebase-scanner.js.map +1 -1
- package/dist/aria-connector/src/config.d.ts +12 -0
- package/dist/aria-connector/src/config.d.ts.map +1 -1
- package/dist/aria-connector/src/config.js +2 -0
- package/dist/aria-connector/src/config.js.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.js +80 -24
- package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
- package/dist/aria-connector/src/connectors/codebase-awareness.d.ts +37 -0
- package/dist/aria-connector/src/connectors/codebase-awareness.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/codebase-awareness.js +335 -0
- package/dist/aria-connector/src/connectors/codebase-awareness.js.map +1 -0
- package/dist/aria-connector/src/connectors/codex.d.ts +3 -0
- package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/codex.js +248 -0
- package/dist/aria-connector/src/connectors/codex.js.map +1 -0
- package/dist/aria-connector/src/connectors/cognitive-skills.d.ts +2 -0
- package/dist/aria-connector/src/connectors/cognitive-skills.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/cognitive-skills.js +47 -0
- package/dist/aria-connector/src/connectors/cognitive-skills.js.map +1 -0
- package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/opencode.js +90 -4
- package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
- package/dist/aria-connector/src/connectors/repo-git-hooks.d.ts +3 -0
- package/dist/aria-connector/src/connectors/repo-git-hooks.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/repo-git-hooks.js +87 -0
- package/dist/aria-connector/src/connectors/repo-git-hooks.js.map +1 -0
- package/dist/aria-connector/src/connectors/repo-guard.d.ts +19 -0
- package/dist/aria-connector/src/connectors/repo-guard.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/repo-guard.js +509 -0
- package/dist/aria-connector/src/connectors/repo-guard.js.map +1 -0
- package/dist/aria-connector/src/connectors/runtime.d.ts +2 -0
- package/dist/aria-connector/src/connectors/runtime.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/runtime.js +330 -0
- package/dist/aria-connector/src/connectors/runtime.js.map +1 -0
- package/dist/aria-connector/src/connectors/shell.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/shell.js +78 -13
- package/dist/aria-connector/src/connectors/shell.js.map +1 -1
- package/dist/aria-connector/src/connectors/syncd.d.ts +27 -0
- package/dist/aria-connector/src/connectors/syncd.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/syncd.js +405 -0
- package/dist/aria-connector/src/connectors/syncd.js.map +1 -0
- package/dist/aria-connector/src/decisions.d.ts +207 -0
- package/dist/aria-connector/src/decisions.d.ts.map +1 -0
- package/dist/aria-connector/src/decisions.js +291 -0
- package/dist/aria-connector/src/decisions.js.map +1 -0
- package/dist/aria-connector/src/garden-control-plane.d.ts.map +1 -1
- package/dist/aria-connector/src/garden-control-plane.js +74 -17
- package/dist/aria-connector/src/garden-control-plane.js.map +1 -1
- package/dist/aria-connector/src/github-connect.d.ts +18 -0
- package/dist/aria-connector/src/github-connect.d.ts.map +1 -0
- package/dist/aria-connector/src/github-connect.js +117 -0
- package/dist/aria-connector/src/github-connect.js.map +1 -0
- package/dist/aria-connector/src/harness-client.d.ts +15 -0
- package/dist/aria-connector/src/harness-client.d.ts.map +1 -1
- package/dist/aria-connector/src/harness-client.js +106 -3
- package/dist/aria-connector/src/harness-client.js.map +1 -1
- package/dist/aria-connector/src/hive-client.d.ts +30 -0
- package/dist/aria-connector/src/hive-client.d.ts.map +1 -1
- package/dist/aria-connector/src/hive-client.js +124 -5
- package/dist/aria-connector/src/hive-client.js.map +1 -1
- package/dist/aria-connector/src/index.d.ts +13 -2
- package/dist/aria-connector/src/index.d.ts.map +1 -1
- package/dist/aria-connector/src/index.js +10 -1
- package/dist/aria-connector/src/index.js.map +1 -1
- package/dist/aria-connector/src/lib/aristotle-noor-wire.d.ts +102 -0
- package/dist/aria-connector/src/lib/aristotle-noor-wire.d.ts.map +1 -0
- package/dist/aria-connector/src/lib/aristotle-noor-wire.js +231 -0
- package/dist/aria-connector/src/lib/aristotle-noor-wire.js.map +1 -0
- package/dist/aria-connector/src/providers/types.d.ts +5 -0
- package/dist/aria-connector/src/providers/types.d.ts.map +1 -1
- package/dist/aria-connector/src/runtime-proof.d.ts +45 -0
- package/dist/aria-connector/src/runtime-proof.d.ts.map +1 -0
- package/dist/aria-connector/src/runtime-proof.js +340 -0
- package/dist/aria-connector/src/runtime-proof.js.map +1 -0
- package/dist/aria-connector/src/self-update.d.ts +2 -1
- package/dist/aria-connector/src/self-update.d.ts.map +1 -1
- package/dist/aria-connector/src/self-update.js +84 -8
- package/dist/aria-connector/src/self-update.js.map +1 -1
- package/dist/aria-connector/src/setup-wizard.d.ts.map +1 -1
- package/dist/aria-connector/src/setup-wizard.js +34 -2
- package/dist/aria-connector/src/setup-wizard.js.map +1 -1
- package/dist/assets/hooks/aria-agent-handoff.mjs +224 -0
- package/dist/assets/hooks/aria-agent-ledger-merge.mjs +164 -0
- package/dist/assets/hooks/aria-architect-fallback.mjs +267 -0
- package/dist/assets/hooks/aria-cognition-substrate-binding.mjs +668 -0
- package/dist/assets/hooks/aria-discovery-record.mjs +101 -0
- package/dist/assets/hooks/aria-harness-via-sdk.mjs +412 -0
- package/dist/assets/hooks/aria-import-resolution-gate.mjs +330 -0
- package/dist/assets/hooks/aria-outcome-record.mjs +84 -0
- package/dist/assets/hooks/aria-pre-emit-dryrun.mjs +294 -0
- package/dist/assets/hooks/aria-pre-text-gate.mjs +112 -0
- package/dist/assets/hooks/aria-pre-tool-gate.mjs +2133 -0
- package/dist/assets/hooks/aria-preprompt-consult.mjs +438 -0
- package/dist/assets/hooks/aria-preturn-memory-gate.mjs +570 -0
- package/dist/assets/hooks/aria-repo-doctrine-gate.mjs +397 -0
- package/dist/assets/hooks/aria-stop-gate.mjs +1551 -0
- package/dist/assets/hooks/aria-trigger-autolearn.mjs +229 -0
- package/dist/assets/hooks/aria-userprompt-abandon-detect.mjs +192 -0
- package/dist/assets/hooks/doctrine_trigger_map.json +479 -0
- package/dist/assets/hooks/lib/canonical-lenses.mjs +64 -0
- package/dist/assets/hooks/lib/gate-audit.mjs +43 -0
- package/dist/assets/hooks/test-aria-preturn-memory-gate.mjs +245 -0
- package/dist/assets/hooks/test-tier-lens-labeling.mjs +399 -0
- package/dist/assets/opencode-plugins/harness-context/index.js +60 -0
- package/dist/assets/opencode-plugins/harness-context/inject-context.mjs +179 -0
- package/dist/assets/opencode-plugins/harness-context/package.json +9 -0
- package/dist/assets/opencode-plugins/harness-gate/index.js +248 -0
- package/dist/assets/opencode-plugins/harness-outcome/index.js +129 -0
- package/dist/assets/opencode-plugins/harness-role/index.js +77 -0
- package/dist/assets/opencode-plugins/harness-role/package.json +9 -0
- package/dist/assets/opencode-plugins/harness-stop/index.js +241 -0
- package/dist/runtime/discipline/CLAUDE.md +339 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-essence/SKILL.md +63 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-essence/references/domain-matrix.md +80 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-essence/references/evolution-loop.md +30 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-essence/references/readable-cognition.md +27 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-forge-guardrails/SKILL.md +35 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-forge-guardrails/references/checklist.md +31 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-repo-doctrine/SKILL.md +39 -0
- package/dist/runtime/discipline/skills/aria-cognition/forge-quality-rules/SKILL.md +43 -0
- package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/SKILL.md +38 -0
- package/dist/runtime/discipline/skills/aria-cognition/istiqra-induction/SKILL.md +26 -0
- package/dist/runtime/discipline/skills/aria-cognition/ladunni-22/SKILL.md +35 -0
- package/dist/runtime/discipline/skills/aria-cognition/mizan/SKILL.md +72 -0
- package/dist/runtime/discipline/skills/aria-cognition/nadia/SKILL.md +38 -0
- package/dist/runtime/discipline/skills/aria-cognition/nadia-psi/SKILL.md +38 -0
- package/dist/runtime/discipline/skills/aria-cognition/predictor/SKILL.md +25 -0
- package/dist/runtime/discipline/skills/aria-cognition/qiyas-analogy/SKILL.md +26 -0
- package/dist/runtime/discipline/skills/aria-cognition/soul-domains/SKILL.md +25 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-intra-phase/SKILL.md +81 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-post-phase/SKILL.md +98 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-pre-phase/SKILL.md +99 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-deploy/SKILL.md +127 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-no-stripping/SKILL.md +117 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-onboarding/SKILL.md +112 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-output-discipline/SKILL.md +102 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-substrate-binding/SKILL.md +121 -0
- package/dist/runtime/doctor.mjs +23 -0
- package/dist/runtime/local-phase.mjs +650 -0
- package/dist/runtime/manifest.json +15 -0
- package/dist/runtime/mizan-scheduler.mjs +331 -0
- package/dist/runtime/package.json +6 -0
- package/dist/runtime/provider-proxy.mjs +594 -0
- package/dist/runtime/sdk/BUNDLED.json +5 -0
- package/dist/runtime/sdk/index.d.ts +477 -0
- package/dist/runtime/sdk/index.js +1469 -0
- package/dist/runtime/sdk/index.js.map +1 -0
- package/dist/runtime/sdk/package.json +8 -0
- package/dist/runtime/sdk/runWithCognition.d.ts +77 -0
- package/dist/runtime/sdk/runWithCognition.js +157 -0
- package/dist/runtime/sdk/runWithCognition.js.map +1 -0
- package/dist/runtime/service.mjs +3058 -0
- package/dist/runtime/vendor/aria-gate-runtime/index.d.ts +53 -0
- package/dist/runtime/vendor/aria-gate-runtime/index.d.ts.map +1 -0
- package/dist/runtime/vendor/aria-gate-runtime/index.js +292 -0
- package/dist/runtime/vendor/aria-gate-runtime/index.js.map +1 -0
- package/dist/runtime/vendor/aria-gate-runtime/package.json +6 -0
- package/dist/sdk/BUNDLED.json +2 -2
- package/dist/sdk/index.d.ts +283 -0
- package/dist/sdk/index.js +622 -85
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runWithCognition.d.ts +77 -0
- package/dist/sdk/runWithCognition.js +157 -0
- package/dist/sdk/runWithCognition.js.map +1 -0
- package/hooks/aria-agent-handoff.mjs +11 -1
- package/hooks/aria-architect-fallback.mjs +109 -40
- package/hooks/aria-cognition-substrate-binding.mjs +668 -0
- package/hooks/aria-harness-via-sdk.mjs +34 -21
- package/hooks/aria-import-resolution-gate.mjs +330 -0
- package/hooks/aria-outcome-record.mjs +5 -1
- package/hooks/aria-pre-emit-dryrun.mjs +294 -0
- package/hooks/aria-pre-tool-gate.mjs +828 -41
- package/hooks/aria-preprompt-consult.mjs +113 -13
- package/hooks/aria-preturn-memory-gate.mjs +298 -6
- package/hooks/aria-repo-doctrine-gate.mjs +397 -0
- package/hooks/aria-stop-gate.mjs +739 -76
- package/hooks/aria-userprompt-abandon-detect.mjs +5 -1
- package/hooks/doctrine_trigger_map.json +209 -15
- package/hooks/lib/canonical-lenses.mjs +64 -0
- package/hooks/lib/gate-audit.mjs +43 -0
- package/opencode-plugins/harness-context/index.js +1 -1
- package/opencode-plugins/harness-context/inject-context.mjs +82 -23
- package/opencode-plugins/harness-gate/index.js +248 -0
- package/opencode-plugins/harness-outcome/index.js +129 -0
- package/opencode-plugins/harness-stop/index.js +241 -0
- package/package.json +9 -3
- package/runtime-src/doctor.mjs +23 -0
- package/runtime-src/local-phase.mjs +650 -0
- package/runtime-src/mizan-scheduler.mjs +331 -0
- package/runtime-src/provider-proxy.mjs +594 -0
- package/runtime-src/service.mjs +3058 -0
- package/scripts/bundle-sdk.mjs +317 -0
- package/scripts/install-client.sh +176 -0
- package/scripts/publish-all.sh +344 -0
- package/scripts/publish-docker.sh +27 -0
- package/scripts/validate-hook-contracts.mjs +54 -0
- package/scripts/validate-skill-prompts.mjs +95 -0
- package/skills/aria-cognition/aria-essence/SKILL.md +63 -0
- package/skills/aria-cognition/aria-essence/references/domain-matrix.md +80 -0
- package/skills/aria-cognition/aria-essence/references/evolution-loop.md +30 -0
- package/skills/aria-cognition/aria-essence/references/readable-cognition.md +27 -0
- package/skills/aria-cognition/aria-forge-guardrails/SKILL.md +35 -0
- package/skills/aria-cognition/aria-forge-guardrails/references/checklist.md +31 -0
- package/skills/aria-cognition/aria-repo-doctrine/SKILL.md +39 -0
- package/skills/aria-cognition/forge-quality-rules/SKILL.md +43 -0
- package/skills/aria-cognition/ghazali-8lens/SKILL.md +38 -0
- package/skills/aria-cognition/istiqra-induction/SKILL.md +26 -0
- package/skills/aria-cognition/ladunni-22/SKILL.md +35 -0
- package/skills/aria-cognition/mizan/SKILL.md +72 -0
- package/skills/aria-cognition/nadia/SKILL.md +38 -0
- package/skills/aria-cognition/nadia-psi/SKILL.md +38 -0
- package/skills/aria-cognition/predictor/SKILL.md +25 -0
- package/skills/aria-cognition/qiyas-analogy/SKILL.md +26 -0
- package/skills/aria-cognition/soul-domains/SKILL.md +25 -0
- package/src/auth-commands.ts +111 -45
- package/src/chat.ts +174 -13
- package/src/codebase-scanner.ts +4 -0
- package/src/config.ts +15 -0
- package/src/connectors/claude-code.ts +79 -25
- package/src/connectors/codebase-awareness.ts +408 -0
- package/src/connectors/codex.ts +274 -0
- package/src/connectors/cognitive-skills.ts +51 -0
- package/src/connectors/opencode.ts +93 -4
- package/src/connectors/repo-git-hooks.ts +86 -0
- package/src/connectors/repo-guard.ts +589 -0
- package/src/connectors/runtime.ts +374 -0
- package/src/connectors/shell.ts +83 -14
- package/src/connectors/syncd.ts +488 -0
- package/src/decisions.ts +469 -0
- package/src/garden-control-plane.ts +101 -26
- package/src/github-connect.ts +143 -0
- package/src/harness-client.ts +128 -3
- package/src/hive-client.ts +165 -5
- package/src/index.ts +41 -2
- package/src/lib/aristotle-noor-wire.ts +310 -0
- package/src/providers/types.ts +6 -0
- package/src/runtime-proof.ts +392 -0
- package/src/self-update.ts +89 -8
- package/src/setup-wizard.ts +37 -2
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dalio decision-log SDK primitives.
|
|
3
|
+
*
|
|
4
|
+
* Covers the full Dalio loop surface:
|
|
5
|
+
* recordDalio — POST /api/decisions
|
|
6
|
+
* evaluatePendingDecisions — POST /api/decisions/evaluate-pending
|
|
7
|
+
* getBlockingIncidents — GET /api/incidents/blocking
|
|
8
|
+
* claimSessionLock — POST /api/hive/session-lock
|
|
9
|
+
* releaseSessionLock — DELETE /api/hive/session-lock/<id>
|
|
10
|
+
* postSessionMessage — POST /api/hive/session-message
|
|
11
|
+
* readSessionMessages — GET /api/hive/session-message
|
|
12
|
+
*
|
|
13
|
+
* Per memory:feedback_sdk_harness_cli_parity.md: every primitive here
|
|
14
|
+
* must have a matching harness server route AND a CLI surface in bin/aria.js.
|
|
15
|
+
* Per memory:feedback_full_harness_binding_must_be_structural.md: harness
|
|
16
|
+
* binding is enforced structurally — calls throw on non-2xx, never silently
|
|
17
|
+
* degrade.
|
|
18
|
+
*
|
|
19
|
+
* No timeouts per memory:feedback_no_timeouts_doctrine.md.
|
|
20
|
+
* No graceful degradation per memory:feedback_no_graceful_degradation.md.
|
|
21
|
+
*/
|
|
22
|
+
import * as fs from 'node:fs';
|
|
23
|
+
import * as path from 'node:path';
|
|
24
|
+
import { homedir } from 'node:os';
|
|
25
|
+
// ── Base URL + owner-token resolution (mirrors harness-client.ts pattern) ─────
|
|
26
|
+
const HARNESS_BASE_URL = process.env.ARIA_HIVE_RUNTIME_URL ??
|
|
27
|
+
process.env.ARIA_HARNESS_BASE_URL ??
|
|
28
|
+
process.env.ARIA_HARNESS_URL ??
|
|
29
|
+
'https://harness.ariasos.com';
|
|
30
|
+
const OWNER_TOKEN_PATH = path.join(homedir(), '.aria', 'owner-token');
|
|
31
|
+
function ownerHeaders() {
|
|
32
|
+
if (!fs.existsSync(OWNER_TOKEN_PATH))
|
|
33
|
+
return {};
|
|
34
|
+
const jwt = fs.readFileSync(OWNER_TOKEN_PATH, 'utf-8').trim();
|
|
35
|
+
if (!jwt)
|
|
36
|
+
return {};
|
|
37
|
+
return { Authorization: `Bearer ${jwt}`, 'x-aria-owner': 'true' };
|
|
38
|
+
}
|
|
39
|
+
function baseHeaders() {
|
|
40
|
+
return { 'Content-Type': 'application/json', ...ownerHeaders() };
|
|
41
|
+
}
|
|
42
|
+
async function requireOk(resp, label) {
|
|
43
|
+
if (resp.ok)
|
|
44
|
+
return resp;
|
|
45
|
+
let detail = resp.statusText;
|
|
46
|
+
try {
|
|
47
|
+
const body = await resp.json();
|
|
48
|
+
detail = body.error ?? body.message ?? detail;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// ignore parse error — use statusText
|
|
52
|
+
}
|
|
53
|
+
throw new Error(`[aria-connector/${label}] HTTP ${resp.status}: ${detail}`);
|
|
54
|
+
}
|
|
55
|
+
// ── recordDalio ────────────────────────────────────────────────────────────────
|
|
56
|
+
/**
|
|
57
|
+
* Log a Dalio decision to /api/decisions.
|
|
58
|
+
*
|
|
59
|
+
* Requires a measurable expected_outcome predicate per
|
|
60
|
+
* memory:feedback_dalio_expected_required.md. Gate refuses qualitative prose.
|
|
61
|
+
*
|
|
62
|
+
* Throws on non-2xx — no silent fallback per doctrine.
|
|
63
|
+
*/
|
|
64
|
+
export async function recordDalio(args) {
|
|
65
|
+
const payload = {
|
|
66
|
+
decision_type: args.decision_type,
|
|
67
|
+
category: args.category,
|
|
68
|
+
context: args.context,
|
|
69
|
+
decision: args.decision,
|
|
70
|
+
reasoning: args.reasoning,
|
|
71
|
+
expected_outcome: args.expected_outcome,
|
|
72
|
+
outcome: args.outcome ?? 'pending',
|
|
73
|
+
source: args.source ?? 'aria-connector',
|
|
74
|
+
model_used: args.model_used ?? 'unknown',
|
|
75
|
+
tags: args.tags ?? [],
|
|
76
|
+
metadata: {
|
|
77
|
+
...(args.metadata ?? {}),
|
|
78
|
+
...(args.sessionId ? { sessionId: args.sessionId } : {}),
|
|
79
|
+
...(args.anchors?.length ? { anchors: args.anchors } : {}),
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
const resp = await fetch(`${HARNESS_BASE_URL}/api/decisions`, {
|
|
83
|
+
method: 'POST',
|
|
84
|
+
headers: baseHeaders(),
|
|
85
|
+
body: JSON.stringify(payload),
|
|
86
|
+
});
|
|
87
|
+
await requireOk(resp, 'recordDalio');
|
|
88
|
+
const data = await resp.json();
|
|
89
|
+
const decision_id = data.decision_id ?? data.id;
|
|
90
|
+
if (!decision_id) {
|
|
91
|
+
throw new Error('[aria-connector/recordDalio] Server returned no decision_id');
|
|
92
|
+
}
|
|
93
|
+
return { decision_id, quality_score: data.quality_score, impact_score: data.impact_score };
|
|
94
|
+
}
|
|
95
|
+
// ── evaluatePendingDecisions ───────────────────────────────────────────────────
|
|
96
|
+
/**
|
|
97
|
+
* Trigger evaluation of pending decisions at /api/decisions/evaluate-pending.
|
|
98
|
+
*
|
|
99
|
+
* Returns count of evaluated decisions and count of evaluation failures.
|
|
100
|
+
* Throws on non-2xx.
|
|
101
|
+
*/
|
|
102
|
+
export async function evaluatePendingDecisions() {
|
|
103
|
+
const resp = await fetch(`${HARNESS_BASE_URL}/api/decisions/evaluate-pending`, {
|
|
104
|
+
method: 'POST',
|
|
105
|
+
headers: baseHeaders(),
|
|
106
|
+
body: JSON.stringify({}),
|
|
107
|
+
});
|
|
108
|
+
await requireOk(resp, 'evaluatePendingDecisions');
|
|
109
|
+
const data = await resp.json();
|
|
110
|
+
return {
|
|
111
|
+
evaluated: data.evaluated ?? 0,
|
|
112
|
+
failures: data.failures ?? 0,
|
|
113
|
+
inferred: data.inferred,
|
|
114
|
+
updated: data.updated,
|
|
115
|
+
learning_signals: data.learning_signals,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// ── getBlockingIncidents ───────────────────────────────────────────────────────
|
|
119
|
+
/**
|
|
120
|
+
* Fetch blocking incidents for a session from /api/incidents/blocking.
|
|
121
|
+
*
|
|
122
|
+
* Blocking incidents are injected by the cron evaluator when an expected_outcome
|
|
123
|
+
* predicate fails — they surface in the next harness packet as hard gates.
|
|
124
|
+
* Throws on non-2xx.
|
|
125
|
+
*/
|
|
126
|
+
export async function getBlockingIncidents(sessionId) {
|
|
127
|
+
const url = `${HARNESS_BASE_URL}/api/incidents/blocking?sessionId=${encodeURIComponent(sessionId)}`;
|
|
128
|
+
const resp = await fetch(url, {
|
|
129
|
+
method: 'GET',
|
|
130
|
+
headers: baseHeaders(),
|
|
131
|
+
});
|
|
132
|
+
await requireOk(resp, 'getBlockingIncidents');
|
|
133
|
+
const data = await resp.json();
|
|
134
|
+
return data.incidents ?? data.data ?? [];
|
|
135
|
+
}
|
|
136
|
+
// ── claimSessionLock ───────────────────────────────────────────────────────────
|
|
137
|
+
/**
|
|
138
|
+
* Claim a hive session lock for a file path.
|
|
139
|
+
*
|
|
140
|
+
* Required before editing a file when multiple sessions may be active on the
|
|
141
|
+
* same path per memory:feedback_hive_session_coordination.md. Pre-tool-gate
|
|
142
|
+
* hard-blocks concurrent edits without a valid lock.
|
|
143
|
+
*
|
|
144
|
+
* Throws on non-2xx (including 409 Conflict when lock is already held).
|
|
145
|
+
*/
|
|
146
|
+
export async function claimSessionLock(args) {
|
|
147
|
+
const resp = await fetch(`${HARNESS_BASE_URL}/api/hive/session-lock`, {
|
|
148
|
+
method: 'POST',
|
|
149
|
+
headers: baseHeaders(),
|
|
150
|
+
body: JSON.stringify({
|
|
151
|
+
file_path: args.filePath,
|
|
152
|
+
session_id: args.sessionId,
|
|
153
|
+
ttl_minutes: args.ttlMinutes,
|
|
154
|
+
scope_kind: args.scopeKind,
|
|
155
|
+
scope_path: args.scopePath,
|
|
156
|
+
operation_kind: args.operationKind,
|
|
157
|
+
owner_session_id: args.ownerSessionId,
|
|
158
|
+
client_id: args.clientId,
|
|
159
|
+
surface: args.surface,
|
|
160
|
+
stale_after_seconds: args.staleAfterSeconds,
|
|
161
|
+
urgency: args.urgency,
|
|
162
|
+
proposed_merge_order: args.proposedMergeOrder,
|
|
163
|
+
intended_patch: args.intendedPatch,
|
|
164
|
+
current_mode: args.currentMode,
|
|
165
|
+
takeover_if_stale: args.takeoverIfStale,
|
|
166
|
+
metadata: args.metadata,
|
|
167
|
+
}),
|
|
168
|
+
});
|
|
169
|
+
await requireOk(resp, 'claimSessionLock');
|
|
170
|
+
const data = await resp.json();
|
|
171
|
+
const lock_id = data.lock_id ?? data.id;
|
|
172
|
+
if (!lock_id) {
|
|
173
|
+
throw new Error('[aria-connector/claimSessionLock] Server returned no lock_id');
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
lock_id,
|
|
177
|
+
file_path: data.file_path ?? args.filePath,
|
|
178
|
+
session_id: data.session_id ?? args.sessionId,
|
|
179
|
+
scope_kind: data.scope_kind ?? args.scopeKind,
|
|
180
|
+
scope_path: data.scope_path ?? args.scopePath,
|
|
181
|
+
operation_kind: data.operation_kind ?? args.operationKind,
|
|
182
|
+
owner_session_id: data.owner_session_id ?? args.ownerSessionId,
|
|
183
|
+
base_file_hash: data.base_file_hash,
|
|
184
|
+
base_blob_sha: data.base_blob_sha,
|
|
185
|
+
expires_at: data.expires_at,
|
|
186
|
+
lease_heartbeat_at: data.lease_heartbeat_at,
|
|
187
|
+
stale_after_seconds: data.stale_after_seconds,
|
|
188
|
+
current_mode: data.current_mode ?? args.currentMode,
|
|
189
|
+
proposed_merge_order: data.proposed_merge_order,
|
|
190
|
+
coordination_packet: data.coordination_packet,
|
|
191
|
+
stale_takeovers: data.stale_takeovers,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
// ── releaseSessionLock ─────────────────────────────────────────────────────────
|
|
195
|
+
/**
|
|
196
|
+
* Release a hive session lock acquired via claimSessionLock.
|
|
197
|
+
*
|
|
198
|
+
* Call this after finishing edits to the locked file path.
|
|
199
|
+
* Throws on non-2xx.
|
|
200
|
+
*/
|
|
201
|
+
export async function releaseSessionLock(lockId) {
|
|
202
|
+
const resp = await fetch(`${HARNESS_BASE_URL}/api/hive/session-lock?lock_id=${encodeURIComponent(lockId)}`, {
|
|
203
|
+
method: 'DELETE',
|
|
204
|
+
headers: baseHeaders(),
|
|
205
|
+
});
|
|
206
|
+
await requireOk(resp, 'releaseSessionLock');
|
|
207
|
+
}
|
|
208
|
+
export async function heartbeatSessionLock(args) {
|
|
209
|
+
const resp = await fetch(`${HARNESS_BASE_URL}/api/hive/session-lock`, {
|
|
210
|
+
method: 'PATCH',
|
|
211
|
+
headers: baseHeaders(),
|
|
212
|
+
body: JSON.stringify({
|
|
213
|
+
action: 'heartbeat',
|
|
214
|
+
lock_id: args.lockId,
|
|
215
|
+
session_id: args.sessionId,
|
|
216
|
+
file_path: args.filePath,
|
|
217
|
+
ttl_minutes: args.ttlMinutes,
|
|
218
|
+
stale_after_seconds: args.staleAfterSeconds,
|
|
219
|
+
}),
|
|
220
|
+
});
|
|
221
|
+
await requireOk(resp, 'heartbeatSessionLock');
|
|
222
|
+
return await resp.json();
|
|
223
|
+
}
|
|
224
|
+
export async function checkSessionLockDrift(args) {
|
|
225
|
+
const resp = await fetch(`${HARNESS_BASE_URL}/api/hive/session-lock`, {
|
|
226
|
+
method: 'PATCH',
|
|
227
|
+
headers: baseHeaders(),
|
|
228
|
+
body: JSON.stringify({
|
|
229
|
+
action: 'check_drift',
|
|
230
|
+
lock_id: args.lockId,
|
|
231
|
+
session_id: args.sessionId,
|
|
232
|
+
file_path: args.filePath,
|
|
233
|
+
}),
|
|
234
|
+
});
|
|
235
|
+
await requireOk(resp, 'checkSessionLockDrift');
|
|
236
|
+
return await resp.json();
|
|
237
|
+
}
|
|
238
|
+
// ── postSessionMessage ─────────────────────────────────────────────────────────
|
|
239
|
+
/**
|
|
240
|
+
* Post a coordination message from one session to another via the hive.
|
|
241
|
+
*
|
|
242
|
+
* Used before concurrent edits to announce intent and coordinate with parallel
|
|
243
|
+
* sessions per memory:feedback_hive_session_coordination.md.
|
|
244
|
+
* Throws on non-2xx.
|
|
245
|
+
*/
|
|
246
|
+
export async function postSessionMessage(args) {
|
|
247
|
+
const resp = await fetch(`${HARNESS_BASE_URL}/api/hive/session-message`, {
|
|
248
|
+
method: 'POST',
|
|
249
|
+
headers: baseHeaders(),
|
|
250
|
+
body: JSON.stringify({
|
|
251
|
+
from_session_id: args.fromSessionId,
|
|
252
|
+
to_session_id: args.toSessionId,
|
|
253
|
+
topic: args.topic,
|
|
254
|
+
body: args.body,
|
|
255
|
+
}),
|
|
256
|
+
});
|
|
257
|
+
await requireOk(resp, 'postSessionMessage');
|
|
258
|
+
const data = await resp.json();
|
|
259
|
+
const message_id = data.message_id ?? data.id;
|
|
260
|
+
if (!message_id) {
|
|
261
|
+
throw new Error('[aria-connector/postSessionMessage] Server returned no message_id');
|
|
262
|
+
}
|
|
263
|
+
return {
|
|
264
|
+
message_id,
|
|
265
|
+
from_session_id: data.from_session_id ?? args.fromSessionId,
|
|
266
|
+
to_session_id: data.to_session_id ?? args.toSessionId,
|
|
267
|
+
topic: data.topic ?? args.topic,
|
|
268
|
+
created_at: data.created_at,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
// ── readSessionMessages ────────────────────────────────────────────────────────
|
|
272
|
+
/**
|
|
273
|
+
* Read session messages for a session from /api/hive/session-message.
|
|
274
|
+
*
|
|
275
|
+
* Pass unreadOnly=true (default: true) to fetch only unread messages.
|
|
276
|
+
* Throws on non-2xx.
|
|
277
|
+
*/
|
|
278
|
+
export async function readSessionMessages(args) {
|
|
279
|
+
const unreadOnly = args.unreadOnly ?? true;
|
|
280
|
+
const url = `${HARNESS_BASE_URL}/api/hive/session-message` +
|
|
281
|
+
`?session_id=${encodeURIComponent(args.sessionId)}` +
|
|
282
|
+
`&unread=${unreadOnly ? 'true' : 'false'}`;
|
|
283
|
+
const resp = await fetch(url, {
|
|
284
|
+
method: 'GET',
|
|
285
|
+
headers: baseHeaders(),
|
|
286
|
+
});
|
|
287
|
+
await requireOk(resp, 'readSessionMessages');
|
|
288
|
+
const data = await resp.json();
|
|
289
|
+
return data.messages ?? data.data ?? [];
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=decisions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../../src/decisions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garden-control-plane.d.ts","sourceRoot":"","sources":["../../../src/garden-control-plane.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"garden-control-plane.d.ts","sourceRoot":"","sources":["../../../src/garden-control-plane.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,eAAe,GAAG,WAAW,CAAC;IACvF,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAiDD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAC1B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,GAAE,MAAM,EAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAwBlB;AAGD,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEhB"}
|
|
@@ -2,26 +2,70 @@
|
|
|
2
2
|
// Replaces static system prompt injection with turn-by-turn garden integration.
|
|
3
3
|
// Every turn: read relevant memories, generate response, write new memories.
|
|
4
4
|
// Projects persist forever. Context is infinite. The harness improves per turn.
|
|
5
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
6
|
+
import { homedir } from 'node:os';
|
|
7
|
+
import { join } from 'node:path';
|
|
5
8
|
const GARDEN_URL = process.env.GARDEN_SERVICE_URL || 'http://127.0.0.1:8097';
|
|
9
|
+
const HARNESS_URL = process.env.ARIA_HARNESS_BASE_URL ||
|
|
10
|
+
process.env.ARIA_HARNESS_URL ||
|
|
11
|
+
'https://harness.ariasos.com';
|
|
12
|
+
const RUNTIME_URL = (process.env.ARIA_RUNTIME_URL || 'http://127.0.0.1:4319').replace(/\/+$/, '');
|
|
13
|
+
function readLocalToken() {
|
|
14
|
+
const ownerTokenPath = join(homedir(), '.aria', 'owner-token');
|
|
15
|
+
if (existsSync(ownerTokenPath)) {
|
|
16
|
+
const token = readFileSync(ownerTokenPath, 'utf8').trim();
|
|
17
|
+
if (token)
|
|
18
|
+
return token;
|
|
19
|
+
}
|
|
20
|
+
const licensePath = join(homedir(), '.aria', 'license.json');
|
|
21
|
+
if (existsSync(licensePath)) {
|
|
22
|
+
try {
|
|
23
|
+
const payload = JSON.parse(readFileSync(licensePath, 'utf8'));
|
|
24
|
+
return String(payload.token || payload.jti || '').trim();
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return '';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
function resolveBearerToken() {
|
|
33
|
+
return (process.env.ARIA_API_KEY ||
|
|
34
|
+
process.env.ARIA_MASTER_TOKEN ||
|
|
35
|
+
process.env.ARIA_TOKEN ||
|
|
36
|
+
readLocalToken()).trim();
|
|
37
|
+
}
|
|
38
|
+
async function postGardenMemory(url, body, headers = {}) {
|
|
39
|
+
const resp = await fetch(url, {
|
|
40
|
+
method: 'POST',
|
|
41
|
+
headers: {
|
|
42
|
+
'Content-Type': 'application/json',
|
|
43
|
+
...headers,
|
|
44
|
+
},
|
|
45
|
+
body: JSON.stringify(body),
|
|
46
|
+
});
|
|
47
|
+
const data = await resp.json().catch(() => ({}));
|
|
48
|
+
return resp.ok && data?.ok !== false;
|
|
49
|
+
}
|
|
6
50
|
// ── WRITE: Plant memories after every turn ──
|
|
7
51
|
export async function plantGardenMemory(type, content, intensity, sessionId, userId, projectId, tags = []) {
|
|
8
52
|
try {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return
|
|
53
|
+
const payload = {
|
|
54
|
+
type,
|
|
55
|
+
content: content.slice(0, 2000),
|
|
56
|
+
intensity: Math.max(0.1, Math.min(1, intensity)),
|
|
57
|
+
sessionId,
|
|
58
|
+
userId,
|
|
59
|
+
projectId,
|
|
60
|
+
tags,
|
|
61
|
+
};
|
|
62
|
+
const token = resolveBearerToken();
|
|
63
|
+
if (token) {
|
|
64
|
+
const namedWrite = await postGardenMemory(`${HARNESS_URL.replace(/\/+$/, '')}/api/garden/fire`, payload, { Authorization: `Bearer ${token}` }).catch(() => false);
|
|
65
|
+
if (namedWrite)
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
return await postGardenMemory(`${GARDEN_URL}/garden/fire`, payload);
|
|
25
69
|
}
|
|
26
70
|
catch {
|
|
27
71
|
return false;
|
|
@@ -29,7 +73,20 @@ export async function plantGardenMemory(type, content, intensity, sessionId, use
|
|
|
29
73
|
}
|
|
30
74
|
// ── TURN-BY-TURN: Complete cycle ──
|
|
31
75
|
export async function gardenTurnCycle(input) {
|
|
32
|
-
|
|
76
|
+
const token = resolveBearerToken();
|
|
77
|
+
let wroteConversation = false;
|
|
78
|
+
if (token) {
|
|
79
|
+
wroteConversation = await postGardenMemory(`${RUNTIME_URL}/garden/turn`, {
|
|
80
|
+
apiKey: token,
|
|
81
|
+
sessionId: input.sessionId,
|
|
82
|
+
message: input.message,
|
|
83
|
+
response: input.response,
|
|
84
|
+
userId: input.userId,
|
|
85
|
+
}, { Authorization: `Bearer ${token}` }).catch(() => false);
|
|
86
|
+
}
|
|
87
|
+
if (!wroteConversation) {
|
|
88
|
+
await plantGardenMemory('conversation', `User: ${input.message.slice(0, 500)}\nAria: ${input.response.slice(0, 1000)}`, 0.6, input.sessionId, input.userId, input.projectId, ['turn', 'conversation']);
|
|
89
|
+
}
|
|
33
90
|
if (input.gateViolations?.length) {
|
|
34
91
|
await plantGardenMemory('evolution', `Gate violations: ${input.gateViolations.join(', ')}`, 0.8, input.sessionId, input.userId, input.projectId, ['gate', 'evolution']);
|
|
35
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garden-control-plane.js","sourceRoot":"","sources":["../../../src/garden-control-plane.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAEhF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"garden-control-plane.js","sourceRoot":"","sources":["../../../src/garden-control-plane.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface GitHubConnectResult {
|
|
2
|
+
ok: boolean;
|
|
3
|
+
authenticated: boolean;
|
|
4
|
+
npmrcConfigured: boolean;
|
|
5
|
+
gitConfigured: boolean;
|
|
6
|
+
logs: string[];
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface GitHubStatusResult {
|
|
10
|
+
ghInstalled: boolean;
|
|
11
|
+
authenticated: boolean;
|
|
12
|
+
npmrcConfigured: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function getGitHubStatus(): GitHubStatusResult;
|
|
15
|
+
export declare function connectGitHub(options?: {
|
|
16
|
+
interactive?: boolean;
|
|
17
|
+
}): GitHubConnectResult;
|
|
18
|
+
//# sourceMappingURL=github-connect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-connect.d.ts","sourceRoot":"","sources":["../../../src/github-connect.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAgDD,wBAAgB,eAAe,IAAI,kBAAkB,CAMpD;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,mBAAmB,CA+D1F"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
const NPMRC_PATH = join(homedir(), '.npmrc');
|
|
6
|
+
const GH_SCOPE_LINE = '@aria_asi:registry=https://npm.pkg.github.com';
|
|
7
|
+
const GH_TOKEN_PREFIX = '//npm.pkg.github.com/:_authToken=';
|
|
8
|
+
const GH_ALWAYS_AUTH = 'always-auth=true';
|
|
9
|
+
function hasGhCli() {
|
|
10
|
+
try {
|
|
11
|
+
execFileSync('gh', ['--version'], { stdio: 'ignore' });
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function isGhAuthenticated() {
|
|
19
|
+
try {
|
|
20
|
+
execFileSync('gh', ['auth', 'status', '--hostname', 'github.com'], { stdio: 'ignore' });
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function tryExec(args, stdio = 'ignore') {
|
|
28
|
+
try {
|
|
29
|
+
execFileSync('gh', args, { stdio });
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function upsertNpmrc(token) {
|
|
37
|
+
const dir = homedir();
|
|
38
|
+
if (!existsSync(dir)) {
|
|
39
|
+
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
40
|
+
}
|
|
41
|
+
const existing = existsSync(NPMRC_PATH) ? readFileSync(NPMRC_PATH, 'utf8') : '';
|
|
42
|
+
const lines = existing
|
|
43
|
+
.split(/\r?\n/)
|
|
44
|
+
.filter((line) => line.trim() && !line.startsWith('@aria_asi:registry=') && !line.startsWith(GH_TOKEN_PREFIX) && line.trim() !== GH_ALWAYS_AUTH);
|
|
45
|
+
lines.push(GH_SCOPE_LINE, `${GH_TOKEN_PREFIX}${token}`, GH_ALWAYS_AUTH);
|
|
46
|
+
writeFileSync(NPMRC_PATH, `${lines.join('\n')}\n`, { mode: 0o600 });
|
|
47
|
+
}
|
|
48
|
+
function readGhToken() {
|
|
49
|
+
return execFileSync('gh', ['auth', 'token'], { encoding: 'utf8' }).trim();
|
|
50
|
+
}
|
|
51
|
+
export function getGitHubStatus() {
|
|
52
|
+
const ghInstalled = hasGhCli();
|
|
53
|
+
const authenticated = ghInstalled ? isGhAuthenticated() : false;
|
|
54
|
+
const npmrcConfigured = existsSync(NPMRC_PATH)
|
|
55
|
+
&& readFileSync(NPMRC_PATH, 'utf8').includes(GH_SCOPE_LINE);
|
|
56
|
+
return { ghInstalled, authenticated, npmrcConfigured };
|
|
57
|
+
}
|
|
58
|
+
export function connectGitHub(options = {}) {
|
|
59
|
+
const interactive = options.interactive !== false;
|
|
60
|
+
const logs = [];
|
|
61
|
+
if (!hasGhCli()) {
|
|
62
|
+
return {
|
|
63
|
+
ok: false,
|
|
64
|
+
authenticated: false,
|
|
65
|
+
npmrcConfigured: false,
|
|
66
|
+
gitConfigured: false,
|
|
67
|
+
logs,
|
|
68
|
+
error: 'GitHub CLI (gh) is not installed. Install gh first, then run `aria github connect` again.',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
let authenticated = isGhAuthenticated();
|
|
72
|
+
if (!authenticated) {
|
|
73
|
+
if (!interactive) {
|
|
74
|
+
return {
|
|
75
|
+
ok: false,
|
|
76
|
+
authenticated: false,
|
|
77
|
+
npmrcConfigured: false,
|
|
78
|
+
gitConfigured: false,
|
|
79
|
+
logs,
|
|
80
|
+
error: 'GitHub CLI is installed but not authenticated. Run `aria github connect` interactively.',
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
logs.push('Launching GitHub browser login...');
|
|
84
|
+
execFileSync('gh', ['auth', 'login', '--web', '--hostname', 'github.com', '--git-protocol', 'https', '--scopes', 'read:packages'], {
|
|
85
|
+
stdio: 'inherit',
|
|
86
|
+
});
|
|
87
|
+
authenticated = isGhAuthenticated();
|
|
88
|
+
}
|
|
89
|
+
else if (interactive) {
|
|
90
|
+
tryExec(['auth', 'refresh', '--hostname', 'github.com', '--scopes', 'read:packages'], 'inherit');
|
|
91
|
+
}
|
|
92
|
+
if (!authenticated) {
|
|
93
|
+
return {
|
|
94
|
+
ok: false,
|
|
95
|
+
authenticated: false,
|
|
96
|
+
npmrcConfigured: false,
|
|
97
|
+
gitConfigured: false,
|
|
98
|
+
logs,
|
|
99
|
+
error: 'GitHub authentication did not complete successfully.',
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const gitConfigured = tryExec(['auth', 'setup-git'], interactive ? 'inherit' : 'ignore');
|
|
103
|
+
const token = readGhToken();
|
|
104
|
+
upsertNpmrc(token);
|
|
105
|
+
logs.push('GitHub auth is active.');
|
|
106
|
+
logs.push('Configured ~/.npmrc for @aria_asi on GitHub Packages.');
|
|
107
|
+
if (gitConfigured)
|
|
108
|
+
logs.push('Configured git to use GitHub CLI credentials.');
|
|
109
|
+
return {
|
|
110
|
+
ok: true,
|
|
111
|
+
authenticated: true,
|
|
112
|
+
npmrcConfigured: true,
|
|
113
|
+
gitConfigured,
|
|
114
|
+
logs,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=github-connect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-connect.js","sourceRoot":"","sources":["../../../src/github-connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,11 @@ export interface HarnessPacket {
|
|
|
46
46
|
*/
|
|
47
47
|
interface HarnessClientOptions {
|
|
48
48
|
baseUrl?: string;
|
|
49
|
+
runtimeBaseUrl?: string;
|
|
50
|
+
}
|
|
51
|
+
interface RuntimeContext extends Record<string, unknown> {
|
|
52
|
+
sessionId?: string;
|
|
53
|
+
parentReceiptId?: string | null;
|
|
49
54
|
}
|
|
50
55
|
interface GateContext {
|
|
51
56
|
gate: string;
|
|
@@ -56,6 +61,7 @@ interface GateContext {
|
|
|
56
61
|
}
|
|
57
62
|
export declare class HarnessClient {
|
|
58
63
|
private baseUrl;
|
|
64
|
+
private runtimeBaseUrl;
|
|
59
65
|
private token;
|
|
60
66
|
private tokenPromise;
|
|
61
67
|
constructor(options?: HarnessClientOptions);
|
|
@@ -84,6 +90,11 @@ export declare class HarnessClient {
|
|
|
84
90
|
* Convenience: PUT
|
|
85
91
|
*/
|
|
86
92
|
put<T = unknown>(path: string, body?: unknown, gateContext?: GateContext): Promise<HarnessResponse<T>>;
|
|
93
|
+
runtimeRequest<T = unknown>(path: string, body?: unknown): Promise<T>;
|
|
94
|
+
mizanPlan(context: RuntimeContext): Promise<unknown>;
|
|
95
|
+
mizanPre(context: RuntimeContext, packet?: unknown): Promise<unknown>;
|
|
96
|
+
mizanMid(message: string, plannedApproach: string, context?: RuntimeContext, packet?: unknown): Promise<unknown>;
|
|
97
|
+
mizanPost(text: string, evidence: Record<string, unknown>, context?: RuntimeContext, packet?: unknown): Promise<unknown>;
|
|
87
98
|
private tryExtractError;
|
|
88
99
|
private pushGateLog;
|
|
89
100
|
}
|
|
@@ -140,6 +151,10 @@ export declare function validateOutput(args: {
|
|
|
140
151
|
violations: string[];
|
|
141
152
|
rewritten?: string;
|
|
142
153
|
} | null>;
|
|
154
|
+
export declare function mizanPlan(context: RuntimeContext): Promise<unknown | null>;
|
|
155
|
+
export declare function mizanPre(context: RuntimeContext, packet?: unknown): Promise<unknown | null>;
|
|
156
|
+
export declare function mizanMid(message: string, plannedApproach: string, context?: RuntimeContext, packet?: unknown): Promise<unknown | null>;
|
|
157
|
+
export declare function mizanPost(text: string, evidence: Record<string, unknown>, context?: RuntimeContext, packet?: unknown): Promise<unknown | null>;
|
|
143
158
|
/**
|
|
144
159
|
* GET /api/garden/turns?userId=...&limit=... to rehydrate recent context.
|
|
145
160
|
* Returns chronologically-ordered turns (oldest first), empty array on error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-client.d.ts","sourceRoot":"","sources":["../../../src/harness-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,eAAe,EAAuB,MAAM,YAAY,CAAC;AAWnF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGvC,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;;;;;;;;GASG;AAEH,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"harness-client.d.ts","sourceRoot":"","sources":["../../../src/harness-client.ts"],"names":[],"mappings":"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"}
|