@sjawhar/pi-legion-envoy 0.35.0 → 0.36.1
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 +12 -6
- package/dist/envoy.js +51 -1
- package/dist/legion.js +51 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -65,12 +65,18 @@ what the installed package already ships.
|
|
|
65
65
|
Released installs come from npm as `@sjawhar/pi-legion-envoy`. The tarball is
|
|
66
66
|
self-contained: it ships `dist/envoy.js` and `dist/legion.js` — bundling every
|
|
67
67
|
dependency except the OMP host package — and the repo `skills/` tree staged beside it
|
|
68
|
-
at `dist/skills
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
at `dist/skills`. The manifest declares `omp.skills: ["dist/skills"]` alongside
|
|
69
|
+
`omp.extensions`: OMP's own plugin discovery only reads `skill://`-resolvable skills from
|
|
70
|
+
`<plugin root>/skills` or from directories a manifest's `omp.skills` array names, and this
|
|
71
|
+
package ships skills at `dist/skills` (not the plugin root itself), so the field is required
|
|
72
|
+
for every session — including a headless Legion controller — to see the Legion skills at all.
|
|
73
|
+
`resources_discover` additionally serves the same directory as a secondary, extension-owned
|
|
74
|
+
discovery path. The published manifest exposes `dist/envoy.js` and `dist/legion.js` for
|
|
75
|
+
`omp.extensions` (only `omp.skills` ships as committed, since `dist/skills` is its path in both
|
|
76
|
+
a repo checkout post-`prepack.sh` and the published tarball), while the committed manifest keeps
|
|
77
|
+
the TypeScript entries for repo checkouts. The Legion daemon spawns every session against this
|
|
78
|
+
one installed package instead of also loading a repo checkout with OMP's `--extension` flag, so
|
|
79
|
+
a daemon session ends up with exactly one instance of each extension.
|
|
74
80
|
|
|
75
81
|
`.github/workflows/release.yaml` performs that manifest rewrite around `bun pm pack`
|
|
76
82
|
and restores the committed file before tagging. Packing with the committed source
|
package/dist/envoy.js
CHANGED
|
@@ -30077,9 +30077,59 @@ var controllerIssue = strictObject({
|
|
|
30077
30077
|
secret: nonEmptyString,
|
|
30078
30078
|
issue: nonEmptyString
|
|
30079
30079
|
});
|
|
30080
|
+
var TREE_STATUSES = ["queued", "active", "lingering", "dead", "launch-failed", "closed"];
|
|
30081
|
+
var stateWindowLocator = strictObject({
|
|
30082
|
+
tmuxSession: nonEmptyString,
|
|
30083
|
+
tmuxWindowId: nonEmptyString,
|
|
30084
|
+
tmuxPaneId: nonEmptyString.optional()
|
|
30085
|
+
});
|
|
30086
|
+
var stateTreeLocator = stateWindowLocator.extend({ ompSessionFile: nonEmptyString.optional() });
|
|
30087
|
+
var stateIssue = strictObject({
|
|
30088
|
+
key: nonEmptyString,
|
|
30089
|
+
title: string2(),
|
|
30090
|
+
status: _enum2(LIFECYCLE_STATUSES).optional(),
|
|
30091
|
+
children: array(nonEmptyString),
|
|
30092
|
+
parent: nonEmptyString.optional(),
|
|
30093
|
+
lastAppliedSeq: number2().int().nonnegative().optional()
|
|
30094
|
+
});
|
|
30095
|
+
var stateTree = strictObject({
|
|
30096
|
+
status: _enum2(TREE_STATUSES),
|
|
30097
|
+
generation: number2().int().nonnegative(),
|
|
30098
|
+
launchFailures: number2().int().nonnegative(),
|
|
30099
|
+
readyConfirmedAt: number2().optional(),
|
|
30100
|
+
locator: stateTreeLocator.optional()
|
|
30101
|
+
});
|
|
30102
|
+
var stateGate = strictObject({
|
|
30103
|
+
designAskId: nonEmptyString.optional(),
|
|
30104
|
+
designApproved: nonEmptyString.optional()
|
|
30105
|
+
});
|
|
30106
|
+
var stateRole = strictObject({
|
|
30107
|
+
role: nonEmptyString,
|
|
30108
|
+
issue: nonEmptyString.optional(),
|
|
30109
|
+
generation: number2().int().nonnegative().optional(),
|
|
30110
|
+
sessionId: nonEmptyString.optional(),
|
|
30111
|
+
readyConfirmedAt: number2().optional(),
|
|
30112
|
+
launchFailures: number2().int().nonnegative().optional(),
|
|
30113
|
+
locator: stateWindowLocator.optional()
|
|
30114
|
+
});
|
|
30080
30115
|
var LegionDaemonApi = {
|
|
30081
30116
|
State: {
|
|
30082
|
-
response:
|
|
30117
|
+
response: strictObject({
|
|
30118
|
+
project: nonEmptyString,
|
|
30119
|
+
version: number2().int(),
|
|
30120
|
+
issues: record(string2(), stateIssue),
|
|
30121
|
+
trees: record(string2(), stateTree),
|
|
30122
|
+
admission: strictObject({
|
|
30123
|
+
cap: number2().int().nonnegative(),
|
|
30124
|
+
active: array(nonEmptyString),
|
|
30125
|
+
queue: array(nonEmptyString)
|
|
30126
|
+
}),
|
|
30127
|
+
gates: record(string2(), stateGate),
|
|
30128
|
+
controllerLocator: stateWindowLocator.optional(),
|
|
30129
|
+
roles: record(string2(), stateRole),
|
|
30130
|
+
controllerPendingNotices: number2().int().nonnegative(),
|
|
30131
|
+
pendingStatusWrites: array(nonEmptyString)
|
|
30132
|
+
})
|
|
30083
30133
|
},
|
|
30084
30134
|
ControllerReady: {
|
|
30085
30135
|
request: strictObject({ secret: nonEmptyString, sessionId: nonEmptyString }),
|
package/dist/legion.js
CHANGED
|
@@ -30075,9 +30075,59 @@ var controllerIssue = strictObject({
|
|
|
30075
30075
|
secret: nonEmptyString,
|
|
30076
30076
|
issue: nonEmptyString
|
|
30077
30077
|
});
|
|
30078
|
+
var TREE_STATUSES = ["queued", "active", "lingering", "dead", "launch-failed", "closed"];
|
|
30079
|
+
var stateWindowLocator = strictObject({
|
|
30080
|
+
tmuxSession: nonEmptyString,
|
|
30081
|
+
tmuxWindowId: nonEmptyString,
|
|
30082
|
+
tmuxPaneId: nonEmptyString.optional()
|
|
30083
|
+
});
|
|
30084
|
+
var stateTreeLocator = stateWindowLocator.extend({ ompSessionFile: nonEmptyString.optional() });
|
|
30085
|
+
var stateIssue = strictObject({
|
|
30086
|
+
key: nonEmptyString,
|
|
30087
|
+
title: string2(),
|
|
30088
|
+
status: _enum2(LIFECYCLE_STATUSES).optional(),
|
|
30089
|
+
children: array(nonEmptyString),
|
|
30090
|
+
parent: nonEmptyString.optional(),
|
|
30091
|
+
lastAppliedSeq: number2().int().nonnegative().optional()
|
|
30092
|
+
});
|
|
30093
|
+
var stateTree = strictObject({
|
|
30094
|
+
status: _enum2(TREE_STATUSES),
|
|
30095
|
+
generation: number2().int().nonnegative(),
|
|
30096
|
+
launchFailures: number2().int().nonnegative(),
|
|
30097
|
+
readyConfirmedAt: number2().optional(),
|
|
30098
|
+
locator: stateTreeLocator.optional()
|
|
30099
|
+
});
|
|
30100
|
+
var stateGate = strictObject({
|
|
30101
|
+
designAskId: nonEmptyString.optional(),
|
|
30102
|
+
designApproved: nonEmptyString.optional()
|
|
30103
|
+
});
|
|
30104
|
+
var stateRole = strictObject({
|
|
30105
|
+
role: nonEmptyString,
|
|
30106
|
+
issue: nonEmptyString.optional(),
|
|
30107
|
+
generation: number2().int().nonnegative().optional(),
|
|
30108
|
+
sessionId: nonEmptyString.optional(),
|
|
30109
|
+
readyConfirmedAt: number2().optional(),
|
|
30110
|
+
launchFailures: number2().int().nonnegative().optional(),
|
|
30111
|
+
locator: stateWindowLocator.optional()
|
|
30112
|
+
});
|
|
30078
30113
|
var LegionDaemonApi = {
|
|
30079
30114
|
State: {
|
|
30080
|
-
response:
|
|
30115
|
+
response: strictObject({
|
|
30116
|
+
project: nonEmptyString,
|
|
30117
|
+
version: number2().int(),
|
|
30118
|
+
issues: record(string2(), stateIssue),
|
|
30119
|
+
trees: record(string2(), stateTree),
|
|
30120
|
+
admission: strictObject({
|
|
30121
|
+
cap: number2().int().nonnegative(),
|
|
30122
|
+
active: array(nonEmptyString),
|
|
30123
|
+
queue: array(nonEmptyString)
|
|
30124
|
+
}),
|
|
30125
|
+
gates: record(string2(), stateGate),
|
|
30126
|
+
controllerLocator: stateWindowLocator.optional(),
|
|
30127
|
+
roles: record(string2(), stateRole),
|
|
30128
|
+
controllerPendingNotices: number2().int().nonnegative(),
|
|
30129
|
+
pendingStatusWrites: array(nonEmptyString)
|
|
30130
|
+
})
|
|
30081
30131
|
},
|
|
30082
30132
|
ControllerReady: {
|
|
30083
30133
|
request: strictObject({ secret: nonEmptyString, sessionId: nonEmptyString }),
|
package/package.json
CHANGED