@agimon-ai/po-runner 0.0.0-alpha.32 → 0.0.0-alpha.34
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/apiContracts.cjs +36 -0
- package/dist/apiContracts.cjs.map +1 -1
- package/dist/apiContracts.d.mts.map +1 -1
- package/dist/apiContracts.mjs +36 -0
- package/dist/apiContracts.mjs.map +1 -1
- package/package.json +16 -16
package/dist/apiContracts.cjs
CHANGED
|
@@ -80,6 +80,18 @@ const RunnerScreenSchema = typebox.Type.Object({
|
|
|
80
80
|
offset: O(N),
|
|
81
81
|
ended: O(B)
|
|
82
82
|
});
|
|
83
|
+
const RunnerOutputSchema = typebox.Type.Object({
|
|
84
|
+
chunk: typebox.Type.String({ contentEncoding: "base64" }),
|
|
85
|
+
offset: typebox.Type.Integer({
|
|
86
|
+
minimum: 0,
|
|
87
|
+
maximum: Number.MAX_SAFE_INTEGER
|
|
88
|
+
}),
|
|
89
|
+
reset: B,
|
|
90
|
+
generation: O(S),
|
|
91
|
+
exists: B,
|
|
92
|
+
hasMore: B,
|
|
93
|
+
ended: B
|
|
94
|
+
});
|
|
83
95
|
const apiContracts = (0, _agimon_ai_po_core_apiContracts.defineApiContract)({
|
|
84
96
|
version: 1,
|
|
85
97
|
dynamic: [],
|
|
@@ -105,6 +117,30 @@ const apiContracts = (0, _agimon_ai_po_core_apiContracts.defineApiContract)({
|
|
|
105
117
|
})),
|
|
106
118
|
responses: (0, _agimon_ai_po_core_apiContracts.jsonApiResponses)(RunnerLogSchema)
|
|
107
119
|
},
|
|
120
|
+
...["log", "screen"].map((kind) => ({
|
|
121
|
+
id: `runner.${kind}.read`,
|
|
122
|
+
scope: "session",
|
|
123
|
+
basePath: "runner",
|
|
124
|
+
path: `/runners/{runId}/${kind}/read`,
|
|
125
|
+
method: "GET",
|
|
126
|
+
authentication: "owner",
|
|
127
|
+
description: `Read at most 64 KiB of session-owned runner ${kind} bytes as base64. A completed runner remains readable; screen reads require an owned interactive multiplexer pane.`,
|
|
128
|
+
parameters: [{
|
|
129
|
+
name: "from",
|
|
130
|
+
in: "query",
|
|
131
|
+
required: false,
|
|
132
|
+
schema: typebox.Type.Integer({
|
|
133
|
+
minimum: 0,
|
|
134
|
+
maximum: Number.MAX_SAFE_INTEGER
|
|
135
|
+
})
|
|
136
|
+
}, ...kind === "screen" ? [{
|
|
137
|
+
name: "generation",
|
|
138
|
+
in: "query",
|
|
139
|
+
required: false,
|
|
140
|
+
schema: S
|
|
141
|
+
}] : []],
|
|
142
|
+
responses: (0, _agimon_ai_po_core_apiContracts.jsonApiResponses)(RunnerOutputSchema)
|
|
143
|
+
})),
|
|
108
144
|
...["log", "screen"].map((kind) => ({
|
|
109
145
|
id: `runner.${kind}.stream`,
|
|
110
146
|
scope: "session",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiContracts.cjs","names":["Type","defineApiContract","jsonApiResponses"],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/po-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst Run = Type.Object({\n id: S,\n name: S,\n pid: N,\n command: S,\n cwd: S,\n interactive: B,\n backend: literals(['rmux', 'tmux', 'native']),\n state: literals(['running', 'completed']),\n promoted: B,\n startedAt: S,\n logPath: S,\n exit: O(\n Type.Object({\n reason: literals(['completed', 'failed', 'signaled', 'stopped', 'timed_out', 'launcher_error', 'backend_lost']),\n code: Type.Union([N, Type.Null()]),\n signal: Type.Union([S, Type.Null()]),\n terminationReason: O(\n literals([\n 'timeout',\n 'user_stop',\n 'request_cancelled',\n 'parent_session_cleanup',\n 'owner_lost',\n 'external_signal',\n ]),\n ),\n stopReason: O(S),\n finishedAt: S,\n }),\n ),\n});\nexport const RunnerPayloadSchema = Type.Object({\n runs: Type.Array(Run),\n sessionDirectory: O(S),\n startFailure: O(Type.Object({ id: S, message: S })),\n});\nexport const RunnerLogSchema = Type.Object({\n runId: S,\n running: B,\n text: S,\n lineCount: N,\n totalLines: N,\n fileSize: N,\n completeBytes: N,\n path: S,\n exists: B,\n lineNumbers: O(Type.Array(N)),\n});\nexport const RunnerAppendSchema = Type.Object({ lines: Type.Array(S), offset: O(N), ended: O(B) });\nexport const RunnerScreenSchema = Type.Object({ chunk: S, offset: O(N), ended: O(B) });\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: [\n {\n id: 'runner.log',\n scope: 'session',\n basePath: 'runner',\n path: '/runners/{runId}/log',\n method: 'GET',\n authentication: 'owner',\n description: 'Read a runner log tail or literal substring search.',\n parameters: ['lines', 'grep', 'ignoreCase', 'contextLines'].map((name) => ({\n name,\n in: 'query',\n required: false,\n schema: S,\n })),\n responses: jsonApiResponses(RunnerLogSchema),\n },\n ...(['log', 'screen'] as const).map((kind) => ({\n id: `runner.${kind}.stream`,\n scope: 'session' as const,\n basePath: 'runner',\n path: `/runners/{runId}/${kind}/stream`,\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: `Follow runner ${kind}. SSE data is JSON; ping events carry empty data.`,\n parameters: [{ name: 'from', in: 'query' as const, required: false, schema: N }],\n responses: {\n '200': {\n description: 'Event stream.',\n contentType: 'text/event-stream',\n schema: S,\n events: {\n [kind === 'log' ? 'append' : 'screen']: kind === 'log' ? RunnerAppendSchema : RunnerScreenSchema,\n ping: Type.Literal(''),\n },\n },\n '404': { description: 'Runner unavailable.', schema: Type.Object({ error: S }) },\n },\n })),\n {\n id: 'runner.input',\n scope: 'session',\n basePath: 'runner',\n path: '/runners/{runId}/screen/input',\n method: 'POST',\n authentication: 'owner',\n description: 'Send text to an interactive runner.',\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({ text: Type.String({ minLength: 1 }) }),\n },\n responses: jsonApiResponses(Type.Object({ delivered: Type.Literal(true) })),\n },\n ],\n sockets: (['global', 'workspace'] as const).map((scope) => ({\n id: 'runner.channel',\n scope,\n service: 'po.hub',\n member: 'runner_runs',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Runner channel payload in the hub frame payload property.',\n input: RunnerPayloadSchema,\n })),\n});\nexport default apiContracts;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apiContracts.cjs","names":["Type","defineApiContract","jsonApiResponses"],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/po-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst Run = Type.Object({\n id: S,\n name: S,\n pid: N,\n command: S,\n cwd: S,\n interactive: B,\n backend: literals(['rmux', 'tmux', 'native']),\n state: literals(['running', 'completed']),\n promoted: B,\n startedAt: S,\n logPath: S,\n exit: O(\n Type.Object({\n reason: literals(['completed', 'failed', 'signaled', 'stopped', 'timed_out', 'launcher_error', 'backend_lost']),\n code: Type.Union([N, Type.Null()]),\n signal: Type.Union([S, Type.Null()]),\n terminationReason: O(\n literals([\n 'timeout',\n 'user_stop',\n 'request_cancelled',\n 'parent_session_cleanup',\n 'owner_lost',\n 'external_signal',\n ]),\n ),\n stopReason: O(S),\n finishedAt: S,\n }),\n ),\n});\nexport const RunnerPayloadSchema = Type.Object({\n runs: Type.Array(Run),\n sessionDirectory: O(S),\n startFailure: O(Type.Object({ id: S, message: S })),\n});\nexport const RunnerLogSchema = Type.Object({\n runId: S,\n running: B,\n text: S,\n lineCount: N,\n totalLines: N,\n fileSize: N,\n completeBytes: N,\n path: S,\n exists: B,\n lineNumbers: O(Type.Array(N)),\n});\nexport const RunnerAppendSchema = Type.Object({ lines: Type.Array(S), offset: O(N), ended: O(B) });\nexport const RunnerScreenSchema = Type.Object({ chunk: S, offset: O(N), ended: O(B) });\nexport const RunnerOutputSchema = Type.Object({\n chunk: Type.String({ contentEncoding: 'base64' }),\n offset: Type.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER }),\n reset: B,\n generation: O(S),\n exists: B,\n hasMore: B,\n ended: B,\n});\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: [\n {\n id: 'runner.log',\n scope: 'session',\n basePath: 'runner',\n path: '/runners/{runId}/log',\n method: 'GET',\n authentication: 'owner',\n description: 'Read a runner log tail or literal substring search.',\n parameters: ['lines', 'grep', 'ignoreCase', 'contextLines'].map((name) => ({\n name,\n in: 'query',\n required: false,\n schema: S,\n })),\n responses: jsonApiResponses(RunnerLogSchema),\n },\n ...(['log', 'screen'] as const).map((kind) => ({\n id: `runner.${kind}.read`,\n scope: 'session' as const,\n basePath: 'runner',\n path: `/runners/{runId}/${kind}/read`,\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: `Read at most 64 KiB of session-owned runner ${kind} bytes as base64. A completed runner remains readable; screen reads require an owned interactive multiplexer pane.`,\n parameters: [\n {\n name: 'from',\n in: 'query' as const,\n required: false,\n schema: Type.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER }),\n },\n ...(kind === 'screen' ? [{ name: 'generation', in: 'query' as const, required: false, schema: S }] : []),\n ],\n responses: jsonApiResponses(RunnerOutputSchema),\n })),\n ...(['log', 'screen'] as const).map((kind) => ({\n id: `runner.${kind}.stream`,\n scope: 'session' as const,\n basePath: 'runner',\n path: `/runners/{runId}/${kind}/stream`,\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: `Follow runner ${kind}. SSE data is JSON; ping events carry empty data.`,\n parameters: [{ name: 'from', in: 'query' as const, required: false, schema: N }],\n responses: {\n '200': {\n description: 'Event stream.',\n contentType: 'text/event-stream',\n schema: S,\n events: {\n [kind === 'log' ? 'append' : 'screen']: kind === 'log' ? RunnerAppendSchema : RunnerScreenSchema,\n ping: Type.Literal(''),\n },\n },\n '404': { description: 'Runner unavailable.', schema: Type.Object({ error: S }) },\n },\n })),\n {\n id: 'runner.input',\n scope: 'session',\n basePath: 'runner',\n path: '/runners/{runId}/screen/input',\n method: 'POST',\n authentication: 'owner',\n description: 'Send text to an interactive runner.',\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({ text: Type.String({ minLength: 1 }) }),\n },\n responses: jsonApiResponses(Type.Object({ delivered: Type.Literal(true) })),\n },\n ],\n sockets: (['global', 'workspace'] as const).map((scope) => ({\n id: 'runner.channel',\n scope,\n service: 'po.hub',\n member: 'runner_runs',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Runner channel payload in the hub frame payload property.',\n input: RunnerPayloadSchema,\n })),\n});\nexport default apiContracts;\n"],"mappings":";;;;;;;AAGA,MAAM,IAAIA,QAAAA,KAAK,OAAO;AACtB,MAAM,IAAIA,QAAAA,KAAK,OAAO;AACtB,MAAM,IAAIA,QAAAA,KAAK,QAAQ;AACvB,MAAM,IAAIA,QAAAA,KAAK;AACf,MAAM,YAA8B,WAAgBA,QAAAA,KAAK,MAAM,OAAO,KAAK,UAAUA,QAAAA,KAAK,QAAQ,KAAK,CAAC,CAAC;AACzG,MAAM,MAAMA,QAAAA,KAAK,OAAO;CACtB,IAAI;CACJ,MAAM;CACN,KAAK;CACL,SAAS;CACT,KAAK;CACL,aAAa;CACb,SAAS,SAAS;EAAC;EAAQ;EAAQ;CAAQ,CAAC;CAC5C,OAAO,SAAS,CAAC,WAAW,WAAW,CAAC;CACxC,UAAU;CACV,WAAW;CACX,SAAS;CACT,MAAM,EACJA,QAAAA,KAAK,OAAO;EACV,QAAQ,SAAS;GAAC;GAAa;GAAU;GAAY;GAAW;GAAa;GAAkB;EAAc,CAAC;EAC9G,MAAMA,QAAAA,KAAK,MAAM,CAAC,GAAGA,QAAAA,KAAK,KAAK,CAAC,CAAC;EACjC,QAAQA,QAAAA,KAAK,MAAM,CAAC,GAAGA,QAAAA,KAAK,KAAK,CAAC,CAAC;EACnC,mBAAmB,EACjB,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;EACF,CAAC,CACH;EACA,YAAY,EAAE,CAAC;EACf,YAAY;CACd,CAAC,CACH;AACF,CAAC;AACD,MAAa,sBAAsBA,QAAAA,KAAK,OAAO;CAC7C,MAAMA,QAAAA,KAAK,MAAM,GAAG;CACpB,kBAAkB,EAAE,CAAC;CACrB,cAAc,EAAEA,QAAAA,KAAK,OAAO;EAAE,IAAI;EAAG,SAAS;CAAE,CAAC,CAAC;AACpD,CAAC;AACD,MAAa,kBAAkBA,QAAAA,KAAK,OAAO;CACzC,OAAO;CACP,SAAS;CACT,MAAM;CACN,WAAW;CACX,YAAY;CACZ,UAAU;CACV,eAAe;CACf,MAAM;CACN,QAAQ;CACR,aAAa,EAAEA,QAAAA,KAAK,MAAM,CAAC,CAAC;AAC9B,CAAC;AACD,MAAa,qBAAqBA,QAAAA,KAAK,OAAO;CAAE,OAAOA,QAAAA,KAAK,MAAM,CAAC;CAAG,QAAQ,EAAE,CAAC;CAAG,OAAO,EAAE,CAAC;AAAE,CAAC;AACjG,MAAa,qBAAqBA,QAAAA,KAAK,OAAO;CAAE,OAAO;CAAG,QAAQ,EAAE,CAAC;CAAG,OAAO,EAAE,CAAC;AAAE,CAAC;AACrF,MAAa,qBAAqBA,QAAAA,KAAK,OAAO;CAC5C,OAAOA,QAAAA,KAAK,OAAO,EAAE,iBAAiB,SAAS,CAAC;CAChD,QAAQA,QAAAA,KAAK,QAAQ;EAAE,SAAS;EAAG,SAAS,OAAO;CAAiB,CAAC;CACrE,OAAO;CACP,YAAY,EAAE,CAAC;CACf,QAAQ;CACR,SAAS;CACT,OAAO;AACT,CAAC;AACD,MAAa,gBAAA,GAAeC,gCAAAA,kBAAAA,CAAkB;CAC5C,SAAS;CACT,SAAS,CAAC;CACV,MAAM;EACJ;GACE,IAAI;GACJ,OAAO;GACP,UAAU;GACV,MAAM;GACN,QAAQ;GACR,gBAAgB;GAChB,aAAa;GACb,YAAY;IAAC;IAAS;IAAQ;IAAc;GAAc,CAAC,CAAC,KAAK,UAAU;IACzE;IACA,IAAI;IACJ,UAAU;IACV,QAAQ;GACV,EAAE;GACF,YAAA,GAAWC,gCAAAA,iBAAAA,CAAiB,eAAe;EAC7C;EACA,GAAI,CAAC,OAAO,QAAQ,CAAC,CAAW,KAAK,UAAU;GAC7C,IAAI,UAAU,KAAK;GACnB,OAAO;GACP,UAAU;GACV,MAAM,oBAAoB,KAAK;GAC/B,QAAQ;GACR,gBAAgB;GAChB,aAAa,+CAA+C,KAAK;GACjE,YAAY,CACV;IACE,MAAM;IACN,IAAI;IACJ,UAAU;IACV,QAAQF,QAAAA,KAAK,QAAQ;KAAE,SAAS;KAAG,SAAS,OAAO;IAAiB,CAAC;GACvE,GACA,GAAI,SAAS,WAAW,CAAC;IAAE,MAAM;IAAc,IAAI;IAAkB,UAAU;IAAO,QAAQ;GAAE,CAAC,IAAI,CAAC,CACxG;GACA,YAAA,GAAWE,gCAAAA,iBAAAA,CAAiB,kBAAkB;EAChD,EAAE;EACF,GAAI,CAAC,OAAO,QAAQ,CAAC,CAAW,KAAK,UAAU;GAC7C,IAAI,UAAU,KAAK;GACnB,OAAO;GACP,UAAU;GACV,MAAM,oBAAoB,KAAK;GAC/B,QAAQ;GACR,gBAAgB;GAChB,aAAa,iBAAiB,KAAK;GACnC,YAAY,CAAC;IAAE,MAAM;IAAQ,IAAI;IAAkB,UAAU;IAAO,QAAQ;GAAE,CAAC;GAC/E,WAAW;IACT,OAAO;KACL,aAAa;KACb,aAAa;KACb,QAAQ;KACR,QAAQ;OACL,SAAS,QAAQ,WAAW,WAAW,SAAS,QAAQ,qBAAqB;MAC9E,MAAMF,QAAAA,KAAK,QAAQ,EAAE;KACvB;IACF;IACA,OAAO;KAAE,aAAa;KAAuB,QAAQA,QAAAA,KAAK,OAAO,EAAE,OAAO,EAAE,CAAC;IAAE;GACjF;EACF,EAAE;EACF;GACE,IAAI;GACJ,OAAO;GACP,UAAU;GACV,MAAM;GACN,QAAQ;GACR,gBAAgB;GAChB,aAAa;GACb,MAAM;IACJ,UAAU;IACV,aAAa;IACb,QAAQA,QAAAA,KAAK,OAAO,EAAE,MAAMA,QAAAA,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;GAC7D;GACA,YAAA,GAAWE,gCAAAA,iBAAAA,CAAiBF,QAAAA,KAAK,OAAO,EAAE,WAAWA,QAAAA,KAAK,QAAQ,IAAI,EAAE,CAAC,CAAC;EAC5E;CACF;CACA,SAAU,CAAC,UAAU,WAAW,CAAC,CAAW,KAAK,WAAW;EAC1D,IAAI;EACJ;EACA,SAAS;EACT,QAAQ;EACR,MAAM;EACN,WAAW;EACX,aAAa;EACb,OAAO;CACT,EAAE;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../src/schemas/apiContracts.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../src/schemas/apiContracts.ts"],"mappings":";;qBAoEa"}
|
package/dist/apiContracts.mjs
CHANGED
|
@@ -76,6 +76,18 @@ const RunnerScreenSchema = Type.Object({
|
|
|
76
76
|
offset: O(N),
|
|
77
77
|
ended: O(B)
|
|
78
78
|
});
|
|
79
|
+
const RunnerOutputSchema = Type.Object({
|
|
80
|
+
chunk: Type.String({ contentEncoding: "base64" }),
|
|
81
|
+
offset: Type.Integer({
|
|
82
|
+
minimum: 0,
|
|
83
|
+
maximum: Number.MAX_SAFE_INTEGER
|
|
84
|
+
}),
|
|
85
|
+
reset: B,
|
|
86
|
+
generation: O(S),
|
|
87
|
+
exists: B,
|
|
88
|
+
hasMore: B,
|
|
89
|
+
ended: B
|
|
90
|
+
});
|
|
79
91
|
const apiContracts = defineApiContract({
|
|
80
92
|
version: 1,
|
|
81
93
|
dynamic: [],
|
|
@@ -101,6 +113,30 @@ const apiContracts = defineApiContract({
|
|
|
101
113
|
})),
|
|
102
114
|
responses: jsonApiResponses(RunnerLogSchema)
|
|
103
115
|
},
|
|
116
|
+
...["log", "screen"].map((kind) => ({
|
|
117
|
+
id: `runner.${kind}.read`,
|
|
118
|
+
scope: "session",
|
|
119
|
+
basePath: "runner",
|
|
120
|
+
path: `/runners/{runId}/${kind}/read`,
|
|
121
|
+
method: "GET",
|
|
122
|
+
authentication: "owner",
|
|
123
|
+
description: `Read at most 64 KiB of session-owned runner ${kind} bytes as base64. A completed runner remains readable; screen reads require an owned interactive multiplexer pane.`,
|
|
124
|
+
parameters: [{
|
|
125
|
+
name: "from",
|
|
126
|
+
in: "query",
|
|
127
|
+
required: false,
|
|
128
|
+
schema: Type.Integer({
|
|
129
|
+
minimum: 0,
|
|
130
|
+
maximum: Number.MAX_SAFE_INTEGER
|
|
131
|
+
})
|
|
132
|
+
}, ...kind === "screen" ? [{
|
|
133
|
+
name: "generation",
|
|
134
|
+
in: "query",
|
|
135
|
+
required: false,
|
|
136
|
+
schema: S
|
|
137
|
+
}] : []],
|
|
138
|
+
responses: jsonApiResponses(RunnerOutputSchema)
|
|
139
|
+
})),
|
|
104
140
|
...["log", "screen"].map((kind) => ({
|
|
105
141
|
id: `runner.${kind}.stream`,
|
|
106
142
|
scope: "session",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiContracts.mjs","names":[],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/po-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst Run = Type.Object({\n id: S,\n name: S,\n pid: N,\n command: S,\n cwd: S,\n interactive: B,\n backend: literals(['rmux', 'tmux', 'native']),\n state: literals(['running', 'completed']),\n promoted: B,\n startedAt: S,\n logPath: S,\n exit: O(\n Type.Object({\n reason: literals(['completed', 'failed', 'signaled', 'stopped', 'timed_out', 'launcher_error', 'backend_lost']),\n code: Type.Union([N, Type.Null()]),\n signal: Type.Union([S, Type.Null()]),\n terminationReason: O(\n literals([\n 'timeout',\n 'user_stop',\n 'request_cancelled',\n 'parent_session_cleanup',\n 'owner_lost',\n 'external_signal',\n ]),\n ),\n stopReason: O(S),\n finishedAt: S,\n }),\n ),\n});\nexport const RunnerPayloadSchema = Type.Object({\n runs: Type.Array(Run),\n sessionDirectory: O(S),\n startFailure: O(Type.Object({ id: S, message: S })),\n});\nexport const RunnerLogSchema = Type.Object({\n runId: S,\n running: B,\n text: S,\n lineCount: N,\n totalLines: N,\n fileSize: N,\n completeBytes: N,\n path: S,\n exists: B,\n lineNumbers: O(Type.Array(N)),\n});\nexport const RunnerAppendSchema = Type.Object({ lines: Type.Array(S), offset: O(N), ended: O(B) });\nexport const RunnerScreenSchema = Type.Object({ chunk: S, offset: O(N), ended: O(B) });\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: [\n {\n id: 'runner.log',\n scope: 'session',\n basePath: 'runner',\n path: '/runners/{runId}/log',\n method: 'GET',\n authentication: 'owner',\n description: 'Read a runner log tail or literal substring search.',\n parameters: ['lines', 'grep', 'ignoreCase', 'contextLines'].map((name) => ({\n name,\n in: 'query',\n required: false,\n schema: S,\n })),\n responses: jsonApiResponses(RunnerLogSchema),\n },\n ...(['log', 'screen'] as const).map((kind) => ({\n id: `runner.${kind}.stream`,\n scope: 'session' as const,\n basePath: 'runner',\n path: `/runners/{runId}/${kind}/stream`,\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: `Follow runner ${kind}. SSE data is JSON; ping events carry empty data.`,\n parameters: [{ name: 'from', in: 'query' as const, required: false, schema: N }],\n responses: {\n '200': {\n description: 'Event stream.',\n contentType: 'text/event-stream',\n schema: S,\n events: {\n [kind === 'log' ? 'append' : 'screen']: kind === 'log' ? RunnerAppendSchema : RunnerScreenSchema,\n ping: Type.Literal(''),\n },\n },\n '404': { description: 'Runner unavailable.', schema: Type.Object({ error: S }) },\n },\n })),\n {\n id: 'runner.input',\n scope: 'session',\n basePath: 'runner',\n path: '/runners/{runId}/screen/input',\n method: 'POST',\n authentication: 'owner',\n description: 'Send text to an interactive runner.',\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({ text: Type.String({ minLength: 1 }) }),\n },\n responses: jsonApiResponses(Type.Object({ delivered: Type.Literal(true) })),\n },\n ],\n sockets: (['global', 'workspace'] as const).map((scope) => ({\n id: 'runner.channel',\n scope,\n service: 'po.hub',\n member: 'runner_runs',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Runner channel payload in the hub frame payload property.',\n input: RunnerPayloadSchema,\n })),\n});\nexport default apiContracts;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apiContracts.mjs","names":[],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/po-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst Run = Type.Object({\n id: S,\n name: S,\n pid: N,\n command: S,\n cwd: S,\n interactive: B,\n backend: literals(['rmux', 'tmux', 'native']),\n state: literals(['running', 'completed']),\n promoted: B,\n startedAt: S,\n logPath: S,\n exit: O(\n Type.Object({\n reason: literals(['completed', 'failed', 'signaled', 'stopped', 'timed_out', 'launcher_error', 'backend_lost']),\n code: Type.Union([N, Type.Null()]),\n signal: Type.Union([S, Type.Null()]),\n terminationReason: O(\n literals([\n 'timeout',\n 'user_stop',\n 'request_cancelled',\n 'parent_session_cleanup',\n 'owner_lost',\n 'external_signal',\n ]),\n ),\n stopReason: O(S),\n finishedAt: S,\n }),\n ),\n});\nexport const RunnerPayloadSchema = Type.Object({\n runs: Type.Array(Run),\n sessionDirectory: O(S),\n startFailure: O(Type.Object({ id: S, message: S })),\n});\nexport const RunnerLogSchema = Type.Object({\n runId: S,\n running: B,\n text: S,\n lineCount: N,\n totalLines: N,\n fileSize: N,\n completeBytes: N,\n path: S,\n exists: B,\n lineNumbers: O(Type.Array(N)),\n});\nexport const RunnerAppendSchema = Type.Object({ lines: Type.Array(S), offset: O(N), ended: O(B) });\nexport const RunnerScreenSchema = Type.Object({ chunk: S, offset: O(N), ended: O(B) });\nexport const RunnerOutputSchema = Type.Object({\n chunk: Type.String({ contentEncoding: 'base64' }),\n offset: Type.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER }),\n reset: B,\n generation: O(S),\n exists: B,\n hasMore: B,\n ended: B,\n});\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: [\n {\n id: 'runner.log',\n scope: 'session',\n basePath: 'runner',\n path: '/runners/{runId}/log',\n method: 'GET',\n authentication: 'owner',\n description: 'Read a runner log tail or literal substring search.',\n parameters: ['lines', 'grep', 'ignoreCase', 'contextLines'].map((name) => ({\n name,\n in: 'query',\n required: false,\n schema: S,\n })),\n responses: jsonApiResponses(RunnerLogSchema),\n },\n ...(['log', 'screen'] as const).map((kind) => ({\n id: `runner.${kind}.read`,\n scope: 'session' as const,\n basePath: 'runner',\n path: `/runners/{runId}/${kind}/read`,\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: `Read at most 64 KiB of session-owned runner ${kind} bytes as base64. A completed runner remains readable; screen reads require an owned interactive multiplexer pane.`,\n parameters: [\n {\n name: 'from',\n in: 'query' as const,\n required: false,\n schema: Type.Integer({ minimum: 0, maximum: Number.MAX_SAFE_INTEGER }),\n },\n ...(kind === 'screen' ? [{ name: 'generation', in: 'query' as const, required: false, schema: S }] : []),\n ],\n responses: jsonApiResponses(RunnerOutputSchema),\n })),\n ...(['log', 'screen'] as const).map((kind) => ({\n id: `runner.${kind}.stream`,\n scope: 'session' as const,\n basePath: 'runner',\n path: `/runners/{runId}/${kind}/stream`,\n method: 'GET' as const,\n authentication: 'owner' as const,\n description: `Follow runner ${kind}. SSE data is JSON; ping events carry empty data.`,\n parameters: [{ name: 'from', in: 'query' as const, required: false, schema: N }],\n responses: {\n '200': {\n description: 'Event stream.',\n contentType: 'text/event-stream',\n schema: S,\n events: {\n [kind === 'log' ? 'append' : 'screen']: kind === 'log' ? RunnerAppendSchema : RunnerScreenSchema,\n ping: Type.Literal(''),\n },\n },\n '404': { description: 'Runner unavailable.', schema: Type.Object({ error: S }) },\n },\n })),\n {\n id: 'runner.input',\n scope: 'session',\n basePath: 'runner',\n path: '/runners/{runId}/screen/input',\n method: 'POST',\n authentication: 'owner',\n description: 'Send text to an interactive runner.',\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({ text: Type.String({ minLength: 1 }) }),\n },\n responses: jsonApiResponses(Type.Object({ delivered: Type.Literal(true) })),\n },\n ],\n sockets: (['global', 'workspace'] as const).map((scope) => ({\n id: 'runner.channel',\n scope,\n service: 'po.hub',\n member: 'runner_runs',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Runner channel payload in the hub frame payload property.',\n input: RunnerPayloadSchema,\n })),\n});\nexport default apiContracts;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/po-runner",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.34",
|
|
4
4
|
"description": "Supervised shell execution, background process control, and run logs for Pi coding agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -209,10 +209,10 @@
|
|
|
209
209
|
},
|
|
210
210
|
"dependencies": {
|
|
211
211
|
"@agimon-ai/foundation-process-registry": "0.30.13",
|
|
212
|
-
"@agimon-ai/po-core": "0.0.0-alpha.
|
|
213
|
-
"@agimon-ai/po-ui": "0.0.0-alpha.
|
|
214
|
-
"@agimon-ai/po-web-components": "0.0.0-alpha.
|
|
215
|
-
"@agimon-ai/po-web-security": "0.0.0-alpha.
|
|
212
|
+
"@agimon-ai/po-core": "0.0.0-alpha.34",
|
|
213
|
+
"@agimon-ai/po-ui": "0.0.0-alpha.34",
|
|
214
|
+
"@agimon-ai/po-web-components": "0.0.0-alpha.34",
|
|
215
|
+
"@agimon-ai/po-web-security": "0.0.0-alpha.34",
|
|
216
216
|
"@deepseek-ai/cordis": "4.0.5",
|
|
217
217
|
"@rmux/sdk": "0.6.5",
|
|
218
218
|
"@xterm/headless": "6.0.0",
|
|
@@ -220,8 +220,8 @@
|
|
|
220
220
|
"typebox": "1.3.37"
|
|
221
221
|
},
|
|
222
222
|
"devDependencies": {
|
|
223
|
-
"@agimon-ai/po-build": "0.0.0-alpha.
|
|
224
|
-
"@agimon-ai/po-native-components": "0.0.0-alpha.
|
|
223
|
+
"@agimon-ai/po-build": "0.0.0-alpha.34",
|
|
224
|
+
"@agimon-ai/po-native-components": "0.0.0-alpha.34",
|
|
225
225
|
"@earendil-works/pi-coding-agent": "1.3.0",
|
|
226
226
|
"@tanstack/react-store": "0.11.2",
|
|
227
227
|
"@tanstack/store": "0.11.2",
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"vitest": "5.0.4"
|
|
238
238
|
},
|
|
239
239
|
"peerDependencies": {
|
|
240
|
-
"@agimon-ai/po-native-components": "0.0.0-alpha.
|
|
240
|
+
"@agimon-ai/po-native-components": "0.0.0-alpha.34",
|
|
241
241
|
"@earendil-works/pi-coding-agent": "1.3.0",
|
|
242
242
|
"react-native": "0.86.3",
|
|
243
243
|
"react-native-unistyles": "^3.5.3"
|
|
@@ -257,14 +257,14 @@
|
|
|
257
257
|
}
|
|
258
258
|
},
|
|
259
259
|
"optionalDependencies": {
|
|
260
|
-
"@agimon-ai/po-runner-rmux-darwin-arm64": "0.0.0-alpha.
|
|
261
|
-
"@agimon-ai/po-runner-rmux-darwin-x64": "0.0.0-alpha.
|
|
262
|
-
"@agimon-ai/po-runner-rmux-linux-arm64": "0.0.0-alpha.
|
|
263
|
-
"@agimon-ai/po-runner-rmux-linux-x64": "0.0.0-alpha.
|
|
264
|
-
"@agimon-ai/po-runner-rtk-darwin-arm64": "0.0.0-alpha.
|
|
265
|
-
"@agimon-ai/po-runner-rtk-darwin-x64": "0.0.0-alpha.
|
|
266
|
-
"@agimon-ai/po-runner-rtk-linux-arm64": "0.0.0-alpha.
|
|
267
|
-
"@agimon-ai/po-runner-rtk-linux-x64": "0.0.0-alpha.
|
|
260
|
+
"@agimon-ai/po-runner-rmux-darwin-arm64": "0.0.0-alpha.34",
|
|
261
|
+
"@agimon-ai/po-runner-rmux-darwin-x64": "0.0.0-alpha.34",
|
|
262
|
+
"@agimon-ai/po-runner-rmux-linux-arm64": "0.0.0-alpha.34",
|
|
263
|
+
"@agimon-ai/po-runner-rmux-linux-x64": "0.0.0-alpha.34",
|
|
264
|
+
"@agimon-ai/po-runner-rtk-darwin-arm64": "0.0.0-alpha.34",
|
|
265
|
+
"@agimon-ai/po-runner-rtk-darwin-x64": "0.0.0-alpha.34",
|
|
266
|
+
"@agimon-ai/po-runner-rtk-linux-arm64": "0.0.0-alpha.34",
|
|
267
|
+
"@agimon-ai/po-runner-rtk-linux-x64": "0.0.0-alpha.34"
|
|
268
268
|
},
|
|
269
269
|
"engines": {
|
|
270
270
|
"node": ">=24"
|