humanish 0.0.1 → 0.15.0
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/AGENTS.md +77 -0
- package/CONTRIBUTING.md +39 -0
- package/LICENSE +21 -0
- package/README.md +435 -8
- package/SECURITY.md +34 -0
- package/dist/actor-contract.d.ts +107 -0
- package/dist/actor-contract.js +286 -0
- package/dist/actor-contract.js.map +1 -0
- package/dist/actor-registry.d.ts +73 -0
- package/dist/actor-registry.js +93 -0
- package/dist/actor-registry.js.map +1 -0
- package/dist/adapter-extension.d.ts +54 -0
- package/dist/adapter-extension.js +214 -0
- package/dist/adapter-extension.js.map +1 -0
- package/dist/argv.d.ts +1 -0
- package/dist/argv.js +8 -0
- package/dist/argv.js.map +1 -0
- package/dist/artifact-reference.d.ts +22 -0
- package/dist/artifact-reference.js +47 -0
- package/dist/artifact-reference.js.map +1 -0
- package/dist/browser-evidence-hygiene.d.ts +7 -0
- package/dist/browser-evidence-hygiene.js +40 -0
- package/dist/browser-evidence-hygiene.js.map +1 -0
- package/dist/claude-agent-sdk.d.ts +94 -0
- package/dist/claude-agent-sdk.js +356 -0
- package/dist/claude-agent-sdk.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -0
- package/dist/codex-app-server-ui.d.ts +39 -0
- package/dist/codex-app-server-ui.js +327 -0
- package/dist/codex-app-server-ui.js.map +1 -0
- package/dist/codex-app-server.d.ts +141 -0
- package/dist/codex-app-server.js +747 -0
- package/dist/codex-app-server.js.map +1 -0
- package/dist/command-failure.d.ts +29 -0
- package/dist/command-failure.js +54 -0
- package/dist/command-failure.js.map +1 -0
- package/dist/computer-use-actor.d.ts +52 -0
- package/dist/computer-use-actor.js +48 -0
- package/dist/computer-use-actor.js.map +1 -0
- package/dist/computer-use.d.ts +232 -0
- package/dist/computer-use.js +615 -0
- package/dist/computer-use.js.map +1 -0
- package/dist/concurrency.d.ts +1 -0
- package/dist/concurrency.js +27 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/concurrent-shared-world-lab.d.ts +115 -0
- package/dist/concurrent-shared-world-lab.js +1092 -0
- package/dist/concurrent-shared-world-lab.js.map +1 -0
- package/dist/core/git-state.d.ts +31 -0
- package/dist/core/git-state.js +142 -0
- package/dist/core/git-state.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/run-primitives.d.ts +66 -0
- package/dist/core/run-primitives.js +120 -0
- package/dist/core/run-primitives.js.map +1 -0
- package/dist/cua-actor-lab.d.ts +620 -0
- package/dist/cua-actor-lab.js +2834 -0
- package/dist/cua-actor-lab.js.map +1 -0
- package/dist/device-presets.d.ts +67 -0
- package/dist/device-presets.js +50 -0
- package/dist/device-presets.js.map +1 -0
- package/dist/e2b-desktop-executor.d.ts +101 -0
- package/dist/e2b-desktop-executor.js +309 -0
- package/dist/e2b-desktop-executor.js.map +1 -0
- package/dist/e2b-desktop-launch.d.ts +144 -0
- package/dist/e2b-desktop-launch.js +59 -0
- package/dist/e2b-desktop-launch.js.map +1 -0
- package/dist/e2b-detached.d.ts +53 -0
- package/dist/e2b-detached.js +130 -0
- package/dist/e2b-detached.js.map +1 -0
- package/dist/e2b-terminal-lab.d.ts +345 -0
- package/dist/e2b-terminal-lab.js +1467 -0
- package/dist/e2b-terminal-lab.js.map +1 -0
- package/dist/env-file.d.ts +14 -0
- package/dist/env-file.js +108 -0
- package/dist/env-file.js.map +1 -0
- package/dist/feedback.d.ts +51 -0
- package/dist/feedback.js +313 -0
- package/dist/feedback.js.map +1 -0
- package/dist/image-evidence.d.ts +2 -0
- package/dist/image-evidence.js +33 -0
- package/dist/image-evidence.js.map +1 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/init-templates.d.ts +12 -0
- package/dist/init-templates.js +369 -0
- package/dist/init-templates.js.map +1 -0
- package/dist/init.d.ts +26 -0
- package/dist/init.js +343 -0
- package/dist/init.js.map +1 -0
- package/dist/lab-app-runner.d.ts +78 -0
- package/dist/lab-app-runner.js +403 -0
- package/dist/lab-app-runner.js.map +1 -0
- package/dist/lab-config.d.ts +578 -0
- package/dist/lab-config.js +1751 -0
- package/dist/lab-config.js.map +1 -0
- package/dist/lab-engine.d.ts +77 -0
- package/dist/lab-engine.js +216 -0
- package/dist/lab-engine.js.map +1 -0
- package/dist/lab-preflight.d.ts +67 -0
- package/dist/lab-preflight.js +385 -0
- package/dist/lab-preflight.js.map +1 -0
- package/dist/labs.d.ts +53 -0
- package/dist/labs.js +176 -0
- package/dist/labs.js.map +1 -0
- package/dist/observer-assets.d.ts +2 -0
- package/dist/observer-assets.js +2630 -0
- package/dist/observer-assets.js.map +1 -0
- package/dist/observer-data.d.ts +63 -0
- package/dist/observer-data.js +145 -0
- package/dist/observer-data.js.map +1 -0
- package/dist/observer-static.d.ts +39 -0
- package/dist/observer-static.js +192 -0
- package/dist/observer-static.js.map +1 -0
- package/dist/observer.d.ts +46 -0
- package/dist/observer.js +353 -0
- package/dist/observer.js.map +1 -0
- package/dist/openai-responses-cu.d.ts +113 -0
- package/dist/openai-responses-cu.js +531 -0
- package/dist/openai-responses-cu.js.map +1 -0
- package/dist/oss-lab.d.ts +52 -0
- package/dist/oss-lab.js +299 -0
- package/dist/oss-lab.js.map +1 -0
- package/dist/oss-meta-lab-scoring.d.ts +15 -0
- package/dist/oss-meta-lab-scoring.js +145 -0
- package/dist/oss-meta-lab-scoring.js.map +1 -0
- package/dist/oss-meta-lab.d.ts +279 -0
- package/dist/oss-meta-lab.js +4889 -0
- package/dist/oss-meta-lab.js.map +1 -0
- package/dist/oss-remote-telemetry.d.ts +77 -0
- package/dist/oss-remote-telemetry.js +403 -0
- package/dist/oss-remote-telemetry.js.map +1 -0
- package/dist/persona.d.ts +35 -0
- package/dist/persona.js +133 -0
- package/dist/persona.js.map +1 -0
- package/dist/pi-agent-core.d.ts +77 -0
- package/dist/pi-agent-core.js +203 -0
- package/dist/pi-agent-core.js.map +1 -0
- package/dist/program.d.ts +54 -0
- package/dist/program.js +2347 -0
- package/dist/program.js.map +1 -0
- package/dist/redaction.d.ts +90 -0
- package/dist/redaction.js +292 -0
- package/dist/redaction.js.map +1 -0
- package/dist/run.d.ts +784 -0
- package/dist/run.js +4555 -0
- package/dist/run.js.map +1 -0
- package/dist/scripted-browser-actor.d.ts +294 -0
- package/dist/scripted-browser-actor.js +1286 -0
- package/dist/scripted-browser-actor.js.map +1 -0
- package/dist/scripted-browser-lab.d.ts +107 -0
- package/dist/scripted-browser-lab.js +738 -0
- package/dist/scripted-browser-lab.js.map +1 -0
- package/dist/shared-world-lab.d.ts +208 -0
- package/dist/shared-world-lab.js +1048 -0
- package/dist/shared-world-lab.js.map +1 -0
- package/dist/source-archive.d.ts +82 -0
- package/dist/source-archive.js +365 -0
- package/dist/source-archive.js.map +1 -0
- package/dist/stop-conditions.d.ts +26 -0
- package/dist/stop-conditions.js +66 -0
- package/dist/stop-conditions.js.map +1 -0
- package/dist/terminal-agent-actor.d.ts +36 -0
- package/dist/terminal-agent-actor.js +23 -0
- package/dist/terminal-agent-actor.js.map +1 -0
- package/docs/architecture/actor-contract.md +431 -0
- package/docs/architecture/github-feedback-loop.md +189 -0
- package/docs/architecture/local-codex-tui-actor.md +213 -0
- package/docs/architecture/observer.md +118 -0
- package/docs/architecture/oss-lab-poc.md +242 -0
- package/docs/architecture/project-layout.md +166 -0
- package/docs/architecture/state-driven-executor.md +203 -0
- package/docs/architecture/terminal-product-lane.md +148 -0
- package/docs/contracts/adapter-fixtures.md +80 -0
- package/docs/contracts/core.md +71 -0
- package/docs/contracts/feedback.md +145 -0
- package/docs/contracts/policy.md +305 -0
- package/docs/contracts/run-bundle.md +358 -0
- package/docs/contracts/schemas.md +984 -0
- package/docs/goals/current.md +409 -0
- package/docs/principles/invariants-and-defaults.md +135 -0
- package/docs/principles/self-driving-harness.md +129 -0
- package/docs/product/open-source-install-experience.md +229 -0
- package/docs/ramp/README.md +200 -0
- package/docs/release/open-source-readiness.md +208 -0
- package/docs/release/public-readiness-standard.md +205 -0
- package/docs/roadmap/world-class-open-source-v0.md +311 -0
- package/package.json +102 -8
- package/skills/humanish/SKILL.md +244 -0
- package/skills/humanish/agents/openai.yaml +7 -0
- package/index.js +0 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type ActorCompletionReason, type ActorPersonaRef, type ActorStatus, type ActorTrace } from "./actor-contract.js";
|
|
2
|
+
export type PiStopReason = "stop" | "toolUse" | "length" | "error" | "aborted";
|
|
3
|
+
export type PiAgentEvent = {
|
|
4
|
+
type: "agent_start";
|
|
5
|
+
} | {
|
|
6
|
+
type: "agent_end";
|
|
7
|
+
} | {
|
|
8
|
+
type: "turn_start";
|
|
9
|
+
} | {
|
|
10
|
+
type: "turn_end";
|
|
11
|
+
} | {
|
|
12
|
+
type: "message_start";
|
|
13
|
+
role?: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: "message_update";
|
|
16
|
+
textDelta?: string;
|
|
17
|
+
thinkingDelta?: string;
|
|
18
|
+
} | {
|
|
19
|
+
type: "message_end";
|
|
20
|
+
text?: string;
|
|
21
|
+
thinking?: string;
|
|
22
|
+
} | {
|
|
23
|
+
type: "tool_execution_start";
|
|
24
|
+
toolCallId: string;
|
|
25
|
+
toolName: string;
|
|
26
|
+
} | {
|
|
27
|
+
type: "tool_execution_end";
|
|
28
|
+
toolCallId: string;
|
|
29
|
+
toolName?: string;
|
|
30
|
+
isError?: boolean;
|
|
31
|
+
} | {
|
|
32
|
+
type: "queue_update";
|
|
33
|
+
summary?: string;
|
|
34
|
+
} | {
|
|
35
|
+
type: "compaction_start";
|
|
36
|
+
} | {
|
|
37
|
+
type: "compaction_end";
|
|
38
|
+
} | {
|
|
39
|
+
type: "auto_retry_start";
|
|
40
|
+
} | {
|
|
41
|
+
type: "auto_retry_end";
|
|
42
|
+
} | {
|
|
43
|
+
type: "notice";
|
|
44
|
+
method?: string;
|
|
45
|
+
message?: string;
|
|
46
|
+
};
|
|
47
|
+
export interface PiSessionStats {
|
|
48
|
+
tokens?: {
|
|
49
|
+
input?: number;
|
|
50
|
+
output?: number;
|
|
51
|
+
total?: number;
|
|
52
|
+
cacheRead?: number;
|
|
53
|
+
cacheWrite?: number;
|
|
54
|
+
};
|
|
55
|
+
cost?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface PiSessionResult {
|
|
58
|
+
events: PiAgentEvent[];
|
|
59
|
+
sessionId?: string;
|
|
60
|
+
model?: string;
|
|
61
|
+
providerVersion?: string;
|
|
62
|
+
startedAt: string;
|
|
63
|
+
completedAt: string;
|
|
64
|
+
durationMs: number;
|
|
65
|
+
status: ActorStatus;
|
|
66
|
+
reason: string;
|
|
67
|
+
stats?: PiSessionStats;
|
|
68
|
+
}
|
|
69
|
+
export declare function piStopReasonToStatus(stop: PiStopReason): ActorStatus;
|
|
70
|
+
export declare function piStatusToCompletionReason(status: ActorStatus): ActorCompletionReason;
|
|
71
|
+
/**
|
|
72
|
+
* Map a pi-agent-core session into the provider-neutral ActorTrace. Pure and
|
|
73
|
+
* side-effect-free; mirrors codexResultToActorTrace. The persona reference is
|
|
74
|
+
* supplied by the harness. Used by the actorRegistry to prove the contract is
|
|
75
|
+
* provider-neutral ahead of the live SDK shim.
|
|
76
|
+
*/
|
|
77
|
+
export declare function piSessionToActorTrace(session: PiSessionResult, persona: ActorPersonaRef): ActorTrace;
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { ACTOR_TRACE_SCHEMA, PI_AGENT_CORE_CAPABILITIES } from "./actor-contract.js";
|
|
2
|
+
import { redactText } from "./redaction.js";
|
|
3
|
+
export function piStopReasonToStatus(stop) {
|
|
4
|
+
switch (stop) {
|
|
5
|
+
case "stop":
|
|
6
|
+
case "toolUse":
|
|
7
|
+
return "passed";
|
|
8
|
+
case "length":
|
|
9
|
+
return "timed_out";
|
|
10
|
+
case "aborted":
|
|
11
|
+
return "blocked";
|
|
12
|
+
case "error":
|
|
13
|
+
return "failed";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function piStatusToCompletionReason(status) {
|
|
17
|
+
switch (status) {
|
|
18
|
+
case "passed":
|
|
19
|
+
return "turn_completed";
|
|
20
|
+
case "timed_out":
|
|
21
|
+
return "timed_out";
|
|
22
|
+
case "blocked":
|
|
23
|
+
return "blocked_approval";
|
|
24
|
+
case "failed":
|
|
25
|
+
return "actor_error";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function pickPiTokenUsage(stats) {
|
|
29
|
+
if (!stats) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const num = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
33
|
+
const input = num(stats.tokens?.input);
|
|
34
|
+
const output = num(stats.tokens?.output);
|
|
35
|
+
const total = num(stats.tokens?.total);
|
|
36
|
+
const costUsd = num(stats.cost);
|
|
37
|
+
const usage = {
|
|
38
|
+
...(input === undefined ? {} : { input }),
|
|
39
|
+
...(output === undefined ? {} : { output }),
|
|
40
|
+
...(total === undefined ? {} : { total }),
|
|
41
|
+
...(costUsd === undefined ? {} : { costUsd })
|
|
42
|
+
};
|
|
43
|
+
return Object.keys(usage).length > 0 ? usage : undefined;
|
|
44
|
+
}
|
|
45
|
+
// Project the pi event stream into provider-neutral ActorTraceItems. pi has no
|
|
46
|
+
// native file_change / screenshot / ui_action / approval events today, so none
|
|
47
|
+
// are fabricated (intentional, not incomplete). Bash runs surface as tool_call,
|
|
48
|
+
// not command, until the live shim can inspect tool results.
|
|
49
|
+
function piEventsToActorItems(events) {
|
|
50
|
+
const items = [];
|
|
51
|
+
const toolNames = new Map();
|
|
52
|
+
let messageOrdinal = 0;
|
|
53
|
+
let noticeOrdinal = 0;
|
|
54
|
+
let textBuffer = "";
|
|
55
|
+
let thinkingBuffer = "";
|
|
56
|
+
const flushMessage = (endText, endThinking) => {
|
|
57
|
+
const text = (endText ?? textBuffer).trim();
|
|
58
|
+
const thinking = (endThinking ?? thinkingBuffer).trim();
|
|
59
|
+
messageOrdinal += 1;
|
|
60
|
+
if (thinking.length > 0) {
|
|
61
|
+
items.push({
|
|
62
|
+
id: `reasoning-${messageOrdinal}`,
|
|
63
|
+
kind: "reasoning",
|
|
64
|
+
lifecycle: "completed",
|
|
65
|
+
title: "Reasoning",
|
|
66
|
+
text: redactText(thinking)
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
items.push({
|
|
70
|
+
id: `message-${messageOrdinal}`,
|
|
71
|
+
kind: "message",
|
|
72
|
+
lifecycle: "completed",
|
|
73
|
+
title: "Assistant message",
|
|
74
|
+
...(text.length > 0 ? { text: redactText(text) } : {})
|
|
75
|
+
});
|
|
76
|
+
textBuffer = "";
|
|
77
|
+
thinkingBuffer = "";
|
|
78
|
+
};
|
|
79
|
+
for (const event of events) {
|
|
80
|
+
switch (event.type) {
|
|
81
|
+
case "message_start":
|
|
82
|
+
items.push({ id: `message-start-${messageOrdinal + 1}`, kind: "message", lifecycle: "started", title: "Assistant message" });
|
|
83
|
+
break;
|
|
84
|
+
case "message_update":
|
|
85
|
+
if (event.textDelta) {
|
|
86
|
+
textBuffer += event.textDelta;
|
|
87
|
+
}
|
|
88
|
+
if (event.thinkingDelta) {
|
|
89
|
+
thinkingBuffer += event.thinkingDelta;
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
case "message_end":
|
|
93
|
+
flushMessage(event.text, event.thinking);
|
|
94
|
+
break;
|
|
95
|
+
case "tool_execution_start": {
|
|
96
|
+
toolNames.set(event.toolCallId, event.toolName);
|
|
97
|
+
const name = redactText(event.toolName);
|
|
98
|
+
items.push({
|
|
99
|
+
id: event.toolCallId,
|
|
100
|
+
kind: "tool_call",
|
|
101
|
+
lifecycle: "started",
|
|
102
|
+
title: name,
|
|
103
|
+
tool: { name }
|
|
104
|
+
});
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
case "tool_execution_end": {
|
|
108
|
+
const name = redactText(event.toolName ?? toolNames.get(event.toolCallId) ?? "tool");
|
|
109
|
+
items.push({
|
|
110
|
+
id: `${event.toolCallId}-end`,
|
|
111
|
+
kind: "tool_call",
|
|
112
|
+
lifecycle: "completed",
|
|
113
|
+
...(event.isError ? { status: "error" } : {}),
|
|
114
|
+
title: name,
|
|
115
|
+
tool: { name }
|
|
116
|
+
});
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
case "queue_update":
|
|
120
|
+
noticeOrdinal += 1;
|
|
121
|
+
items.push({
|
|
122
|
+
id: `plan-${noticeOrdinal}`,
|
|
123
|
+
kind: "plan",
|
|
124
|
+
lifecycle: "completed",
|
|
125
|
+
title: "Queue update",
|
|
126
|
+
...(event.summary ? { text: redactText(event.summary) } : {})
|
|
127
|
+
});
|
|
128
|
+
break;
|
|
129
|
+
case "compaction_start":
|
|
130
|
+
case "compaction_end":
|
|
131
|
+
case "auto_retry_start":
|
|
132
|
+
case "auto_retry_end":
|
|
133
|
+
noticeOrdinal += 1;
|
|
134
|
+
items.push({
|
|
135
|
+
id: `notice-${noticeOrdinal}`,
|
|
136
|
+
kind: "notice",
|
|
137
|
+
lifecycle: event.type.endsWith("_start") ? "started" : "completed",
|
|
138
|
+
title: event.type
|
|
139
|
+
});
|
|
140
|
+
break;
|
|
141
|
+
case "notice":
|
|
142
|
+
noticeOrdinal += 1;
|
|
143
|
+
items.push({
|
|
144
|
+
id: `notice-${noticeOrdinal}`,
|
|
145
|
+
kind: "notice",
|
|
146
|
+
lifecycle: "completed",
|
|
147
|
+
title: event.method ?? "notice",
|
|
148
|
+
...(event.message ? { text: redactText(event.message) } : {})
|
|
149
|
+
});
|
|
150
|
+
break;
|
|
151
|
+
default:
|
|
152
|
+
// agent_start / agent_end / turn_start / turn_end carry no item evidence.
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Terminal flush: if the stream ended mid-message (abnormal termination such as
|
|
157
|
+
// an error/abort/length cutoff), preserve the partial assistant text/reasoning.
|
|
158
|
+
if (textBuffer.length > 0 || thinkingBuffer.length > 0) {
|
|
159
|
+
flushMessage(undefined, undefined);
|
|
160
|
+
}
|
|
161
|
+
return items;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Map a pi-agent-core session into the provider-neutral ActorTrace. Pure and
|
|
165
|
+
* side-effect-free; mirrors codexResultToActorTrace. The persona reference is
|
|
166
|
+
* supplied by the harness. Used by the actorRegistry to prove the contract is
|
|
167
|
+
* provider-neutral ahead of the live SDK shim.
|
|
168
|
+
*/
|
|
169
|
+
export function piSessionToActorTrace(session, persona) {
|
|
170
|
+
const tokenUsage = pickPiTokenUsage(session.stats);
|
|
171
|
+
const items = piEventsToActorItems(session.events);
|
|
172
|
+
return {
|
|
173
|
+
schema: ACTOR_TRACE_SCHEMA,
|
|
174
|
+
provider: "pi-agent-core",
|
|
175
|
+
...(session.providerVersion === undefined ? {} : { providerVersion: session.providerVersion }),
|
|
176
|
+
protocol: "in-process-sdk",
|
|
177
|
+
lane: "code",
|
|
178
|
+
persona,
|
|
179
|
+
redaction: {
|
|
180
|
+
status: "passed",
|
|
181
|
+
screenshots: "n/a",
|
|
182
|
+
notes: "pi event stream projected to actor trace; secret-like text is rejected by verify."
|
|
183
|
+
},
|
|
184
|
+
startedAt: session.startedAt,
|
|
185
|
+
completedAt: session.completedAt,
|
|
186
|
+
durationMs: session.durationMs,
|
|
187
|
+
status: session.status,
|
|
188
|
+
completionReason: piStatusToCompletionReason(session.status),
|
|
189
|
+
reason: redactText(session.reason),
|
|
190
|
+
ids: {
|
|
191
|
+
...(session.sessionId === undefined ? {} : { sessionId: session.sessionId }),
|
|
192
|
+
...(session.model === undefined ? {} : { model: session.model })
|
|
193
|
+
},
|
|
194
|
+
counts: {
|
|
195
|
+
events: session.events.length,
|
|
196
|
+
items: items.length
|
|
197
|
+
},
|
|
198
|
+
items,
|
|
199
|
+
...(tokenUsage === undefined ? {} : { tokenUsage }),
|
|
200
|
+
capabilities: PI_AGENT_CORE_CAPABILITIES
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=pi-agent-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-agent-core.js","sourceRoot":"","sources":["../src/pi-agent-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import type { ObserverResult, ObserverServer } from "./observer.js";
|
|
3
|
+
import type { OssMetaLabResult } from "./oss-meta-lab.js";
|
|
4
|
+
export declare const CLI_RESPONSE_SCHEMA = "humanish.cli-response.v1";
|
|
5
|
+
export interface CliIo {
|
|
6
|
+
writeOut(text: string): void;
|
|
7
|
+
writeErr(text: string): void;
|
|
8
|
+
setExitCode(code: number): void;
|
|
9
|
+
}
|
|
10
|
+
export interface UnexpectedErrorEnvelope {
|
|
11
|
+
schema: typeof CLI_RESPONSE_SCHEMA;
|
|
12
|
+
ok: false;
|
|
13
|
+
error: {
|
|
14
|
+
code: "HUMANISH_UNEXPECTED";
|
|
15
|
+
message: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare function createProgram(io?: Partial<CliIo>): Command;
|
|
19
|
+
/**
|
|
20
|
+
* Default browser-open policy for a lab backend run. Mirrors the observe/watch gate:
|
|
21
|
+
* an explicit --open/--no-open wins; --json (machine mode) never auto-opens; otherwise a
|
|
22
|
+
* lab-config `defaults.open` wins, and the final fallback opens only for an interactive
|
|
23
|
+
* `watch` on a real TTY. Extracted so all lab backends share one gate (and one test).
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveBackendShouldOpen(args: {
|
|
26
|
+
optionOpen: boolean | undefined;
|
|
27
|
+
defaultsOpen: boolean | undefined;
|
|
28
|
+
mode: string;
|
|
29
|
+
wantsMachine: boolean;
|
|
30
|
+
}): boolean;
|
|
31
|
+
export declare function writeResult<T>(command: Command, io: CliIo, result: T, formatHuman: (result: T) => string): void;
|
|
32
|
+
type WatchStopSignal = "SIGINT" | "SIGTERM" | "SIGHUP";
|
|
33
|
+
interface WatchSignalTarget {
|
|
34
|
+
once(event: WatchStopSignal, listener: () => void): unknown;
|
|
35
|
+
removeListener(event: WatchStopSignal, listener: () => void): unknown;
|
|
36
|
+
}
|
|
37
|
+
export declare function followObserver(io: CliIo, result: ObserverResult, server: ObserverServer, options?: {
|
|
38
|
+
onStop?: () => Promise<string[]>;
|
|
39
|
+
signalTarget?: WatchSignalTarget;
|
|
40
|
+
signals?: WatchStopSignal[];
|
|
41
|
+
}): Promise<void>;
|
|
42
|
+
export declare function shouldForceExitAfterOssMetaLab(output: OssMetaLabResult, options: {
|
|
43
|
+
detach: boolean;
|
|
44
|
+
wantsMachine: boolean;
|
|
45
|
+
}): boolean;
|
|
46
|
+
export declare function shouldServeOssMetaLabObserver(output: OssMetaLabResult, options: {
|
|
47
|
+
wantsFollow: boolean;
|
|
48
|
+
}): output is OssMetaLabResult & {
|
|
49
|
+
observer: ObserverResult & {
|
|
50
|
+
ok: true;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export declare function exitCodeForOssMetaLab(output: OssMetaLabResult): number;
|
|
54
|
+
export {};
|