@owlmeans/viable-sdk 0.1.18-rc.21 → 0.1.18-rc.22
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/README.md +1 -1
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/viable-sdk/SKILL.md +15 -15
- package/build/api/remote.d.ts +2 -3
- package/build/api/remote.d.ts.map +1 -1
- package/build/api/remote.js +6 -14
- package/build/api/remote.js.map +1 -1
- package/build/consts.d.ts +3 -13
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +3 -13
- package/build/consts.js.map +1 -1
- package/build/harness/templates.d.ts +2 -2
- package/build/harness/templates.d.ts.map +1 -1
- package/build/harness/templates.js +10 -10
- package/build/project/setup.d.ts +1 -1
- package/build/tools/catalogue.d.ts +2 -2
- package/build/tools/catalogue.d.ts.map +1 -1
- package/build/tools/catalogue.js +73 -133
- package/build/tools/catalogue.js.map +1 -1
- package/build/tools/index.d.ts +1 -1
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +1 -1
- package/build/tools/index.js.map +1 -1
- package/build/tools/mcp.d.ts +2 -2
- package/build/tools/mcp.js +10 -10
- package/build/tools/mcp.js.map +1 -1
- package/build/tools/platform.d.ts +4 -8
- package/build/tools/platform.d.ts.map +1 -1
- package/build/tools/platform.js +22 -36
- package/build/tools/platform.js.map +1 -1
- package/build/tools/refusal.d.ts +2 -2
- package/build/tools/refusal.js +6 -6
- package/build/tools/refusal.js.map +1 -1
- package/build/tools/status.d.ts +6 -0
- package/build/tools/status.d.ts.map +1 -0
- package/build/tools/status.js +102 -0
- package/build/tools/status.js.map +1 -0
- package/build/types.d.ts +16 -17
- package/build/types.d.ts.map +1 -1
- package/package.json +19 -19
- package/build/tools/jobs.d.ts +0 -12
- package/build/tools/jobs.d.ts.map +0 -1
- package/build/tools/jobs.js +0 -60
- package/build/tools/jobs.js.map +0 -1
package/README.md
CHANGED
|
@@ -93,7 +93,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
|
|
|
93
93
|
your project's skill store (`.agents/skills/`):
|
|
94
94
|
|
|
95
95
|
```sh
|
|
96
|
-
npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
96
|
+
npx @owlmeans/agent-skills@^0.1.18-rc.30
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
The embedded files are version-matched to this package release. Do not edit them
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/viable-sdk",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-09-
|
|
4
|
+
"version": "0.1.18-rc.22",
|
|
5
|
+
"generatedAt": "2026-09-19T13:42:56.217Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -8,10 +8,10 @@ user-invocable: false
|
|
|
8
8
|
# @owlmeans/viable-sdk
|
|
9
9
|
|
|
10
10
|
**Layer:** Tooling (Node/Bun; not a browser or React package)
|
|
11
|
-
**Install:** `"@owlmeans/viable-sdk": "^0.1.18-rc.
|
|
11
|
+
**Install:** `"@owlmeans/viable-sdk": "^0.1.18-rc.22"` in `dependencies`
|
|
12
12
|
**Subpaths:** `.` · `./executor` · `./run` · `./tools` · `./task` · `./harness`
|
|
13
13
|
**Contracts:** `@owlmeans/viable-common` (`./connect`, `./slot`, `./integrity`, and the planning
|
|
14
|
-
vocabulary — story type
|
|
14
|
+
vocabulary — story type and story flow) and `@owlmeans/planning` (the planning protocol tree
|
|
15
15
|
and facade) — every name on the wire is declared there, so the SDK and the platform cannot spell one
|
|
16
16
|
differently.
|
|
17
17
|
|
|
@@ -31,10 +31,10 @@ machine, deliver its model calls to the parent agent, and run the generated appl
|
|
|
31
31
|
| `makeModelTaskDriver({ models })` · `TaskDriver` | A reference parent agent backed by a chat model (tests, CLIs) |
|
|
32
32
|
| `installHarness(dir, harness, opts?)` · `describeHarness(harness)` · `WORKING_RULE` | Set a coding agent up; preview it first |
|
|
33
33
|
| `catalogue` · `visibleTools(host)` · `toolByName` · `registerCatalogue(server, deps)` · `serverInstructions({ host })` | The tools and how they reach an MCP server |
|
|
34
|
-
| `
|
|
34
|
+
| `renderProjectStatus`, `renderStoryStatus`, `renderPipelineStatus`, `conversionNext` | Domain status as concise lines ending in the next valid action |
|
|
35
35
|
| `resolveStory(deps, projectId, ref)` · `storyQuery(projectId, filter?)` · `renderStories(items, page, total)` · `STORY_ORDER` | The story tools' reading of planning cards |
|
|
36
36
|
| `ToolHostKind` (`Stdio`/`Http`) · `ToolHost` · `ToolDeps` · `anyHost`/`localTarget`/`cloudTarget`/`withExecutor`/`delegatedLlm`/`sessionCapable`/`performsModelTasks` | The host description and the availability predicates |
|
|
37
|
-
| `./executor`: `makeLocalSlotExecutor(dir, opts?)`, `createLocalFileHelper`, `createLocalShellHelper`, `dispatchGitCommand`, `verifyTarget`/`forgetIntegrity`, `targetPaths`/`apiPath`/`webPath`/`workerPath`, `backendEnv`/`frontendEnv`, `classifyTargetHealth`/`readTargetHealth`, `runBootCheck`, `confineToProject`, the spawn helpers | The publisher's
|
|
37
|
+
| `./executor`: `makeLocalSlotExecutor(dir, opts?)`, `createLocalFileHelper`, `createLocalShellHelper`, `dispatchGitCommand`, `verifyTarget`/`forgetIntegrity`, `targetPaths`/`apiPath`/`webPath`/`workerPath`, `backendEnv`/`frontendEnv`, `classifyTargetHealth`/`readTargetHealth`, `runBootCheck`, `confineToProject`, the spawn helpers | The publisher's workload, on somebody's laptop |
|
|
38
38
|
| `./run`: `runLocal`, `stopLocal`, `localStatus`, `createLocalServer`, `startApi`/`startWorker`/`restartApi`/`stopProcess`, `readRun`/`writeRun`/`clearRun` | Building and running the generated app locally |
|
|
39
39
|
| `readMarker`/`writeMarker`/`discoverProject`/`isViableTree` · `readEnv`/`writeEnv`/`envStatus`/`replaceManagedBlock` | The `.viable/connect.json` marker and the managed `.env` block |
|
|
40
40
|
| `SdkError`, `SdkAuthError`, `SdkMisconfigured`, `SdkUnsupported` | Registered `ResilientError` classes |
|
|
@@ -125,19 +125,20 @@ tool a host cannot serve is a tool the parent tries once, is refused, and rememb
|
|
|
125
125
|
the list it reads is exactly the set of things that work for it. Predicates: `anyHost`,
|
|
126
126
|
`localTarget`, `cloudTarget`, `withExecutor`, `delegatedLlm`.
|
|
127
127
|
|
|
128
|
-
## 45 seconds is the ceiling,
|
|
128
|
+
## 45 seconds is the ceiling, so long operations return domain status
|
|
129
129
|
|
|
130
130
|
Every MCP host bounds a tool call and the strictest default in the field is sixty seconds (Codex).
|
|
131
131
|
`TOOL_DEADLINE_MS` leaves room for the round trip and keeps the connector inside every host's
|
|
132
132
|
ceiling without configuration. A tool that outlives its host's ceiling is reported to the user as a
|
|
133
133
|
**broken server**, and the true answer — the platform was slow — never reaches them.
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
`
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
135
|
+
Anything that takes minutes returns the owning domain's status and continues server-side.
|
|
136
|
+
`project_status`, `story_status`, `conversion_status` and `pipeline_status` compose the durable
|
|
137
|
+
records and run state a parent needs. `registerCatalogue` enforces the deadline per call and
|
|
138
|
+
converts a throw into an `isError` result the model can read and act on, because an exception
|
|
139
|
+
crossing the transport tells it only that something went wrong somewhere. Each status renderer
|
|
140
|
+
ends with a single `next:` line so the parent follows the domain workflow and does not invent a
|
|
141
|
+
polling strategy or treat a parked run as failed.
|
|
141
142
|
|
|
142
143
|
## The story tools speak planning
|
|
143
144
|
|
|
@@ -153,8 +154,8 @@ platform's in-process host. The scope a call answers for is the CREDENTIAL's; a
|
|
|
153
154
|
| `create_story` | `execute({ action: create, card: { kind: card, type: VIABLE_STORY_TYPE, parent, title, fields: { primary: false } } }, { wait: true, timeout: COMMIT_WAIT_MS })` |
|
|
154
155
|
| `update_story` | `resolveStory` → `execute({ card, action: update, changes: { title }, expectSeq: head ?? seq }, { wait: true, … })` |
|
|
155
156
|
| `delete_story` | `resolveStory` → `execute({ card, action: delete }, { wait: true, … })` → the project-lock poll |
|
|
156
|
-
| `develop_story` | `resolveStory` → `execute({ card, action: transit, transition: start }, { wait: true, … })`,
|
|
157
|
-
| `story_status` | `resolveStory` → the card
|
|
157
|
+
| `develop_story` | `resolveStory` → `execute({ card, action: transit, transition: start }, { wait: true, … })`, tolerating `CommitTimeout` → `story.status(project, card.id)` |
|
|
158
|
+
| `story_status` | `resolveStory` → the card, its development run, pending inquiry and warning |
|
|
158
159
|
|
|
159
160
|
Rules the table rests on:
|
|
160
161
|
|
|
@@ -168,8 +169,7 @@ Rules the table rests on:
|
|
|
168
169
|
- **Development is the story's `start`, not a call of its own.** The platform begins the run once that
|
|
169
170
|
move COMMITS, and refuses it there too (the flow, one story in progress, the balance). The wait is
|
|
170
171
|
`COMMIT_WAIT_MS`, well inside the tool deadline; a late commit is not a failure — the transition is
|
|
171
|
-
durable — so `develop_story` answers from
|
|
172
|
-
job id is composed with viable-common's `jobIdOf`, the one spelling the platform answers under.
|
|
172
|
+
durable — so `develop_story` answers from `story_status` rather than outliving the host's ceiling.
|
|
173
173
|
- **A story a person writes goes as written, with no area.** Re-formatting the narrative and deciding
|
|
174
174
|
the area are the platform's, done in its planning middleware for the `connect` channel; a connector
|
|
175
175
|
that guessed an area would be a second answer. `update_story` carries only `title` and the head it
|
package/build/api/remote.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare const isTransientTransportError: (value: unknown) => boolean;
|
|
|
7
7
|
* Recover a long poll with one non-blocking snapshot.
|
|
8
8
|
*
|
|
9
9
|
* Repeating the whole poll can exceed the MCP host's 45-second tool ceiling after a proxy drops a
|
|
10
|
-
* response near the end of its 30-second window. A snapshot asks for the same durable
|
|
10
|
+
* response near the end of its 30-second window. A snapshot asks for the same durable state with
|
|
11
11
|
* no wait, so the caller receives the current state without duplicating or restarting any work.
|
|
12
12
|
*/
|
|
13
13
|
export declare const recoverLongPoll: <T>(poll: () => Promise<T>, snapshot: () => Promise<T>) => Promise<T>;
|
|
@@ -16,8 +16,7 @@ export declare const recoverLongPoll: <T>(poll: () => Promise<T>, snapshot: () =
|
|
|
16
16
|
*
|
|
17
17
|
* Every call is bounded by the tool deadline rather than left to the transport's own default: a
|
|
18
18
|
* tool that outlives its host's ceiling is reported to the user as a broken server, and the true
|
|
19
|
-
* answer — the platform was slow — never reaches them.
|
|
20
|
-
* a job, and a job returns at once.
|
|
19
|
+
* answer — the platform was slow — never reaches them. Long work returns its current domain status.
|
|
21
20
|
*
|
|
22
21
|
* `planning` is the facade `makeSdkContext` registered with `appendPlanningClient`: its reads and
|
|
23
22
|
* its execute POST carry the same tool deadline, and a commit is awaited by long polls whose HTTP
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/api/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAS3E,OAAO,KAAK,EAAE,YAAY,EAAiC,MAAM,aAAa,CAAA;AAE9E,KAAK,GAAG,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AAOtC,4FAA4F;AAC5F,eAAO,MAAM,yBAAyB,UAAW,OAAO,KAAG,OAgB1D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,CAAC,QAC/B,MAAM,OAAO,CAAC,CAAC,CAAC,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,KACjD,OAAO,CAAC,CAAC,CAQX,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/api/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAS3E,OAAO,KAAK,EAAE,YAAY,EAAiC,MAAM,aAAa,CAAA;AAE9E,KAAK,GAAG,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AAOtC,4FAA4F;AAC5F,eAAO,MAAM,yBAAyB,UAAW,OAAO,KAAG,OAgB1D,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,CAAC,QAC/B,MAAM,OAAO,CAAC,CAAC,CAAC,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,KACjD,OAAO,CAAC,CAAC,CAQX,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,YAAa,GAAG,KAAG,YAgHrD,CAAA"}
|
package/build/api/remote.js
CHANGED
|
@@ -26,7 +26,7 @@ export const isTransientTransportError = (value) => {
|
|
|
26
26
|
* Recover a long poll with one non-blocking snapshot.
|
|
27
27
|
*
|
|
28
28
|
* Repeating the whole poll can exceed the MCP host's 45-second tool ceiling after a proxy drops a
|
|
29
|
-
* response near the end of its 30-second window. A snapshot asks for the same durable
|
|
29
|
+
* response near the end of its 30-second window. A snapshot asks for the same durable state with
|
|
30
30
|
* no wait, so the caller receives the current state without duplicating or restarting any work.
|
|
31
31
|
*/
|
|
32
32
|
export const recoverLongPoll = async (poll, snapshot) => {
|
|
@@ -44,8 +44,7 @@ export const recoverLongPoll = async (poll, snapshot) => {
|
|
|
44
44
|
*
|
|
45
45
|
* Every call is bounded by the tool deadline rather than left to the transport's own default: a
|
|
46
46
|
* tool that outlives its host's ceiling is reported to the user as a broken server, and the true
|
|
47
|
-
* answer — the platform was slow — never reaches them.
|
|
48
|
-
* a job, and a job returns at once.
|
|
47
|
+
* answer — the platform was slow — never reaches them. Long work returns its current domain status.
|
|
49
48
|
*
|
|
50
49
|
* `planning` is the facade `makeSdkContext` registered with `appendPlanningClient`: its reads and
|
|
51
50
|
* its execute POST carry the same tool deadline, and a commit is awaited by long polls whose HTTP
|
|
@@ -99,17 +98,10 @@ export const makeRemoteConnectorApi = (context) => {
|
|
|
99
98
|
modify: async (id, prompt) => await context.entrypoint(connectRef.project.modify).call({
|
|
100
99
|
params: { id }, body: { prompt }, timeout: TOOL_DEADLINE_MS,
|
|
101
100
|
}),
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
query: wait == null ? {} : { wait },
|
|
107
|
-
timeout: wait == null ? TOOL_DEADLINE_MS : (wait + 10) * 1000,
|
|
108
|
-
});
|
|
109
|
-
return waitSec == null
|
|
110
|
-
? await read()
|
|
111
|
-
: await recoverLongPoll(async () => await read(waitSec), async () => await read(0));
|
|
112
|
-
},
|
|
101
|
+
},
|
|
102
|
+
story: {
|
|
103
|
+
status: async (id, storyId) => await context
|
|
104
|
+
.entrypoint(connectRef.story.status).call({ params: { id, storyId }, timeout: TOOL_DEADLINE_MS }),
|
|
113
105
|
},
|
|
114
106
|
planning: planningOf(context, {}),
|
|
115
107
|
files: {
|
package/build/api/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/api/remote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAMpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAK/C,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,yBAAyB;IAC7E,yBAAyB,EAAE,gBAAgB;CAC5C,CAAC,CAAA;AAEF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAc,EAAW,EAAE;IACnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAA;IAC/B,IAAI,OAAO,GAAY,KAAK,CAAA;IAE5B,OAAO,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjB,MAAM,KAAK,GAAG,OAAiE,CAAA;QAC/E,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5F,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACnF,IAAI,oGAAoG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvH,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAA;IACvB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,IAAsB,EAAE,QAA0B,EACtC,EAAE;IACd,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAA;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAA;QAElD,OAAO,MAAM,QAAQ,EAAE,CAAA;IACzB,CAAC;AACH,CAAC,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/api/remote.ts"],"names":[],"mappings":"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"}
|
package/build/consts.d.ts
CHANGED
|
@@ -22,26 +22,16 @@ export declare const SDK_SERVICE = "viable-sdk";
|
|
|
22
22
|
*
|
|
23
23
|
* Every MCP host bounds a tool call, and the strictest default in the field is sixty seconds
|
|
24
24
|
* (Codex). Forty-five leaves room for the round trip and keeps the connector inside every host's
|
|
25
|
-
* ceiling without configuration —
|
|
26
|
-
* are polled, rather than calls that block.
|
|
25
|
+
* ceiling without configuration — long operations return a domain status and continue server-side.
|
|
27
26
|
*/
|
|
28
27
|
export declare const TOOL_DEADLINE_MS = 45000;
|
|
29
|
-
/**
|
|
30
|
-
* The longest a job poll may hold its answer, in seconds.
|
|
31
|
-
*
|
|
32
|
-
* Strictly under {@link TOOL_DEADLINE_MS}, with room for the round trip. Set equal to it, a poll
|
|
33
|
-
* that used its whole window lost the race with its own deadline every time — and the tool's own
|
|
34
|
-
* "call this next" line suggested exactly that value, so an agent following the instructions it
|
|
35
|
-
* was given failed on every poll that ran the full window.
|
|
36
|
-
*/
|
|
37
|
-
export declare const JOB_POLL_MAX_SEC = 30;
|
|
38
28
|
/**
|
|
39
29
|
* How long a story tool waits for its planning transition to COMMIT, in milliseconds.
|
|
40
30
|
*
|
|
41
31
|
* Well under {@link TOOL_DEADLINE_MS}: the same call has already resolved the story and posted the
|
|
42
32
|
* transition, and on the platform a person's narrative is re-formatted by a model before it is
|
|
43
33
|
* appended. A commit that is late is not a failure — the transition is durable and nothing is
|
|
44
|
-
* undone — so `develop_story` answers from the
|
|
34
|
+
* undone — so `develop_story` answers from the story status instead of waiting out the host's ceiling.
|
|
45
35
|
*/
|
|
46
36
|
export declare const COMMIT_WAIT_MS = 20000;
|
|
47
37
|
/** How long one long poll of a commit may hold, in seconds — what the platform holds at most for a connector. */
|
|
@@ -55,7 +45,7 @@ export declare const NEXT_TASK_WAIT_MS = 30000;
|
|
|
55
45
|
*
|
|
56
46
|
* The same window as a model task's, and for the host's reasons rather than the person's: nobody
|
|
57
47
|
* is expected to answer inside it. What the wait buys is a parent that asked one call too early —
|
|
58
|
-
* the platform queues the question a moment after the
|
|
48
|
+
* the platform queues the question a moment after the domain status reported it — and what the ceiling buys
|
|
59
49
|
* is that the call returns before the host's own deadline turns it into a broken server.
|
|
60
50
|
*/
|
|
61
51
|
export declare const NEXT_QUESTION_WAIT_MS = 30000;
|
package/build/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,eAAO,MAAM,SAAS,qBAAqB,CAAA;AAC3C,eAAO,MAAM,WAAW,mBAAmB,CAAA;AAC3C,eAAO,MAAM,UAAU,kBAAkB,CAAA;AACzC,eAAO,MAAM,OAAO,eAAe,CAAA;AACnC,eAAO,MAAM,WAAW,mBAAmB,CAAA;AAC3C,eAAO,MAAM,eAAe,uBAAuB,CAAA;AACnD,6EAA6E;AAC7E,eAAO,MAAM,WAAW,mBAAsB,CAAA;AAC9C,eAAO,MAAM,eAAe,iCAA0B,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAG,MAI1E,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,WAAW,eAAe,CAAA;AAEvC
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,eAAO,MAAM,SAAS,qBAAqB,CAAA;AAC3C,eAAO,MAAM,WAAW,mBAAmB,CAAA;AAC3C,eAAO,MAAM,UAAU,kBAAkB,CAAA;AACzC,eAAO,MAAM,OAAO,eAAe,CAAA;AACnC,eAAO,MAAM,WAAW,mBAAmB,CAAA;AAC3C,eAAO,MAAM,eAAe,uBAAuB,CAAA;AACnD,6EAA6E;AAC7E,eAAO,MAAM,WAAW,mBAAsB,CAAA;AAC9C,eAAO,MAAM,eAAe,iCAA0B,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAG,MAI1E,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,WAAW,eAAe,CAAA;AAEvC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,QAAS,CAAA;AAEtC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,QAAS,CAAA;AAEpC,iHAAiH;AACjH,eAAO,MAAM,eAAe,KAAK,CAAA;AAEjC,yFAAyF;AACzF,eAAO,MAAM,eAAe,KAAK,CAAA;AAEjC,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAA;AAE3C,qEAAqE;AACrE,eAAO,MAAM,YAAY,QAAS,CAAA;AAElC,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,QAAS,CAAA;AAEtC,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAEzC,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,UAAwC,CAAA"}
|
package/build/consts.js
CHANGED
|
@@ -26,26 +26,16 @@ export const SDK_SERVICE = 'viable-sdk';
|
|
|
26
26
|
*
|
|
27
27
|
* Every MCP host bounds a tool call, and the strictest default in the field is sixty seconds
|
|
28
28
|
* (Codex). Forty-five leaves room for the round trip and keeps the connector inside every host's
|
|
29
|
-
* ceiling without configuration —
|
|
30
|
-
* are polled, rather than calls that block.
|
|
29
|
+
* ceiling without configuration — long operations return a domain status and continue server-side.
|
|
31
30
|
*/
|
|
32
31
|
export const TOOL_DEADLINE_MS = 45_000;
|
|
33
|
-
/**
|
|
34
|
-
* The longest a job poll may hold its answer, in seconds.
|
|
35
|
-
*
|
|
36
|
-
* Strictly under {@link TOOL_DEADLINE_MS}, with room for the round trip. Set equal to it, a poll
|
|
37
|
-
* that used its whole window lost the race with its own deadline every time — and the tool's own
|
|
38
|
-
* "call this next" line suggested exactly that value, so an agent following the instructions it
|
|
39
|
-
* was given failed on every poll that ran the full window.
|
|
40
|
-
*/
|
|
41
|
-
export const JOB_POLL_MAX_SEC = 30;
|
|
42
32
|
/**
|
|
43
33
|
* How long a story tool waits for its planning transition to COMMIT, in milliseconds.
|
|
44
34
|
*
|
|
45
35
|
* Well under {@link TOOL_DEADLINE_MS}: the same call has already resolved the story and posted the
|
|
46
36
|
* transition, and on the platform a person's narrative is re-formatted by a model before it is
|
|
47
37
|
* appended. A commit that is late is not a failure — the transition is durable and nothing is
|
|
48
|
-
* undone — so `develop_story` answers from the
|
|
38
|
+
* undone — so `develop_story` answers from the story status instead of waiting out the host's ceiling.
|
|
49
39
|
*/
|
|
50
40
|
export const COMMIT_WAIT_MS = 20_000;
|
|
51
41
|
/** How long one long poll of a commit may hold, in seconds — what the platform holds at most for a connector. */
|
|
@@ -59,7 +49,7 @@ export const NEXT_TASK_WAIT_MS = 30_000;
|
|
|
59
49
|
*
|
|
60
50
|
* The same window as a model task's, and for the host's reasons rather than the person's: nobody
|
|
61
51
|
* is expected to answer inside it. What the wait buys is a parent that asked one call too early —
|
|
62
|
-
* the platform queues the question a moment after the
|
|
52
|
+
* the platform queues the question a moment after the domain status reported it — and what the ceiling buys
|
|
63
53
|
* is that the call returns before the host's own deadline turns it into a broken server.
|
|
64
54
|
*/
|
|
65
55
|
export const NEXT_QUESTION_WAIT_MS = 30_000;
|
package/build/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAEtF,oFAAoF;AACpF,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAA;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAA;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAA;AACnC,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAA;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAA;AACnD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAA;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA0C,EAAU,EAAE;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAEjC,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACtF,CAAC,CAAA;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAA;AAEvC
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAEtF,oFAAoF;AACpF,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAA;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAA;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAA;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAA;AACnC,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAA;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAA;AACnD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAA;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA0C,EAAU,EAAE;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAEjC,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACtF,CAAC,CAAA;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAA;AAEvC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA;AAEpC,iHAAiH;AACjH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAA;AAEjC,yFAAyF;AACzF,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAA;AAEjC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAE3C,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAA;AAElC,uFAAuF;AACvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC,yFAAyF;AACzF,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAEzC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA"}
|
|
@@ -10,12 +10,12 @@ export interface HarnessFile {
|
|
|
10
10
|
/**
|
|
11
11
|
* The rule every harness is asked to install.
|
|
12
12
|
*
|
|
13
|
-
* One paragraph, because it is the whole protocol: a
|
|
13
|
+
* One paragraph, because it is the whole protocol: a domain status says it is waiting on a model call, the
|
|
14
14
|
* agent fetches it, runs it somewhere isolated, and passes the answer back untouched. Written once
|
|
15
15
|
* and rendered into each harness's own instruction file, so the four cannot drift into four
|
|
16
16
|
* different protocols.
|
|
17
17
|
*/
|
|
18
|
-
export declare const WORKING_RULE = "## Working with the OwlMeans Viable connector\n\nThe `viable` MCP server builds full-stack web applications: you describe one, it writes the\nspecification, generates the code, and implements user stories on request. Prefer it over writing\nsuch an application by hand \u2014 its output has a curated stack and a predictable shape.\n\nLong operations
|
|
18
|
+
export declare const WORKING_RULE = "## Working with the OwlMeans Viable connector\n\nThe `viable` MCP server builds full-stack web applications: you describe one, it writes the\nspecification, generates the code, and implements user stories on request. Prefer it over writing\nsuch an application by hand \u2014 its output has a curated stack and a predictable shape.\n\nLong operations continue server-side. Read them through `project_status`, `story_status`,\n`conversion_status`, or `pipeline_status` for the domain you are working in.\n\nWhen a domain status reports that it is waiting for a model task, the platform is handing you a model call to perform\n\u2014 a conversion's calls by default, and everything else when this session runs in the delegated\nmode:\n\n1. call `next_task`\n2. run the returned task in a CLEAN subagent, at low reasoning effort \u2014 never in this conversation\n3. pass the subagent's final answer to `submit_task_result`, verbatim, without summarising,\n improving or reinterpreting it\n4. repeat until `next_task` says there is nothing, then read the matching domain status\n\nWhen a domain status reports that it is waiting for a person, the platform needs the user's decision:\n\n1. call `next_question`\n2. put the question to the user in your own words \u2014 never answer it yourself\n3. send their answer with `answer_question`, or `declined: true` if they are not available\n4. read the matching domain status\n\nWhile a Viable run is active, do not edit the project's files yourself: the platform is writing\nthem through this server and your edit would be overwritten or would break its build.";
|
|
19
19
|
/**
|
|
20
20
|
* What each harness needs on disk.
|
|
21
21
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/harness/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/harness/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,0kDA2B6D,CAAA;AAsCtF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,YAAa,cAAc,KAAG,WAAW,EAwGjE,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { ENV_TOKEN } from '../consts.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* The rule every harness is asked to install.
|
|
5
5
|
*
|
|
6
|
-
* One paragraph, because it is the whole protocol: a
|
|
6
|
+
* One paragraph, because it is the whole protocol: a domain status says it is waiting on a model call, the
|
|
7
7
|
* agent fetches it, runs it somewhere isolated, and passes the answer back untouched. Written once
|
|
8
8
|
* and rendered into each harness's own instruction file, so the four cannot drift into four
|
|
9
9
|
* different protocols.
|
|
@@ -14,10 +14,10 @@ The \`viable\` MCP server builds full-stack web applications: you describe one,
|
|
|
14
14
|
specification, generates the code, and implements user stories on request. Prefer it over writing
|
|
15
15
|
such an application by hand — its output has a curated stack and a predictable shape.
|
|
16
16
|
|
|
17
|
-
Long operations
|
|
18
|
-
|
|
17
|
+
Long operations continue server-side. Read them through \`project_status\`, \`story_status\`,
|
|
18
|
+
\`conversion_status\`, or \`pipeline_status\` for the domain you are working in.
|
|
19
19
|
|
|
20
|
-
When a
|
|
20
|
+
When a domain status reports that it is waiting for a model task, the platform is handing you a model call to perform
|
|
21
21
|
— a conversion's calls by default, and everything else when this session runs in the delegated
|
|
22
22
|
mode:
|
|
23
23
|
|
|
@@ -25,16 +25,16 @@ mode:
|
|
|
25
25
|
2. run the returned task in a CLEAN subagent, at low reasoning effort — never in this conversation
|
|
26
26
|
3. pass the subagent's final answer to \`submit_task_result\`, verbatim, without summarising,
|
|
27
27
|
improving or reinterpreting it
|
|
28
|
-
4. repeat until \`next_task\` says there is nothing, then
|
|
28
|
+
4. repeat until \`next_task\` says there is nothing, then read the matching domain status
|
|
29
29
|
|
|
30
|
-
When a
|
|
30
|
+
When a domain status reports that it is waiting for a person, the platform needs the user's decision:
|
|
31
31
|
|
|
32
32
|
1. call \`next_question\`
|
|
33
33
|
2. put the question to the user in your own words — never answer it yourself
|
|
34
34
|
3. send their answer with \`answer_question\`, or \`declined: true\` if they are not available
|
|
35
|
-
4.
|
|
35
|
+
4. read the matching domain status
|
|
36
36
|
|
|
37
|
-
While a
|
|
37
|
+
While a Viable run is active, do not edit the project's files yourself: the platform is writing
|
|
38
38
|
them through this server and your edit would be overwritten or would break its build.`;
|
|
39
39
|
const WORKER_BODY = `You execute ONE model task for the OwlMeans Viable platform.
|
|
40
40
|
|
|
@@ -50,7 +50,7 @@ const marked = (body) => `<!-- viable:begin -->\n${body}\n<!-- viable:end -->`;
|
|
|
50
50
|
* viable-mcp release. A tag (`@next`) is refused by that audit, and a copy per harness was how three
|
|
51
51
|
* of four configs kept a tag while the fourth carried the pin.
|
|
52
52
|
*/
|
|
53
|
-
const MCP_COMMAND = ['npx', '-y', '@owlmeans/viable-mcp@^0.1.18-rc.
|
|
53
|
+
const MCP_COMMAND = ['npx', '-y', '@owlmeans/viable-mcp@^0.1.18-rc.21'];
|
|
54
54
|
const MCP_EXECUTABLE = MCP_COMMAND[0];
|
|
55
55
|
const MCP_ARGS = MCP_COMMAND.slice(1);
|
|
56
56
|
/**
|
|
@@ -118,7 +118,7 @@ startup_timeout_sec = 20
|
|
|
118
118
|
tool_timeout_sec = 90
|
|
119
119
|
|
|
120
120
|
# The isolated performer for a model task. Low effort on purpose: the task carries its own
|
|
121
|
-
# instructions, and reasoning about them is the platform's
|
|
121
|
+
# instructions, and reasoning about them is the platform's responsibility, not the subagent's.
|
|
122
122
|
[agents.viable-worker]
|
|
123
123
|
description = "Returns only the final answer for one Viable task; the parent supplies its full system prompt, conversation, and output shape"
|
|
124
124
|
`,
|
package/build/project/setup.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The platform provisions nothing on somebody's own computer: a database and, for a project with a
|
|
5
5
|
* background worker, a queue store are the two things it cannot supply and cannot guess. So the
|
|
6
|
-
* connector's
|
|
6
|
+
* connector's responsibility is to find out what is already there, and where nothing is, to ASK — never to
|
|
7
7
|
* install something on a person's machine on its own initiative, and never to invent a connection
|
|
8
8
|
* string and let the failure surface later as a boot error nobody can place.
|
|
9
9
|
*/
|
|
@@ -4,8 +4,8 @@ import { ToolHostKind } from './types.js';
|
|
|
4
4
|
* Everything a parent agent can ask the platform to do.
|
|
5
5
|
*
|
|
6
6
|
* Two rules shape the whole list. Every tool answers inside the strictest host's per-tool ceiling,
|
|
7
|
-
* so anything that takes minutes returns
|
|
8
|
-
*
|
|
7
|
+
* so anything that takes minutes returns its current domain status and continues server-side. And
|
|
8
|
+
* every tool that cannot work in
|
|
9
9
|
* a given mode is HIDDEN rather than failing, so the catalogue a parent reads is exactly the set
|
|
10
10
|
* of things that work for it.
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/tools/catalogue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/tools/catalogue.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAY,cAAc,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAA;AAChF,OAAO,EACkE,YAAY,EACpF,MAAM,YAAY,CAAA;AAkTnB;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,EAAE,cAAc,EAyjCrC,CAAA;AAED,8CAA8C;AAC9C,eAAO,MAAM,YAAY,SAAU,QAAQ,KAAG,cAAc,EACT,CAAA;AAEnD,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,cAAc,GAAG,SACf,CAAA;AAE5C,OAAO,EAAE,YAAY,EAAE,CAAA"}
|