sortie-dogs 0.10.6 → 0.10.9
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/LICENSE +21 -21
- package/README.md +5 -5
- package/dist/asset-version.d.ts +1 -1
- package/dist/asset-version.js +1 -1
- package/dist/cli/main.js +6 -6
- package/dist/core/goal-declaration-format.js +32 -32
- package/dist/core/worktree-commit-artifact.js +330 -327
- package/dist/plugin/config.d.ts +6 -4
- package/dist/plugin/config.js +2 -6
- package/dist/plugin/continuation.d.ts +2 -7
- package/dist/plugin/continuation.js +7 -26
- package/dist/plugin/index.js +36 -18
- package/dist/plugin/profiled.d.ts +6 -0
- package/dist/plugin/profiled.js +48 -9
- package/dist/plugin/v2.d.ts +67 -0
- package/dist/plugin/v2.js +346 -0
- package/dist/reflection/managed-block.d.ts +6 -2
- package/dist/reflection/managed-block.js +24 -18
- package/dist/reflection/managed-sync.d.ts +2 -0
- package/dist/reflection/managed-sync.js +13 -6
- package/dist/runtime-assets-v010.js +380 -371
- package/dist/runtime-assets.js +388 -388
- package/package.json +82 -82
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 zufall-upon
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 zufall-upon
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -44,12 +44,12 @@ npm install --save-dev sortie-dogs
|
|
|
44
44
|
npx sortie-dogs init .
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
The beta package defaults to the v0.10 profile. Add the plugin and the required
|
|
47
|
+
The beta package defaults to the v0.10 profile. Add the OpenCode V2 plugin and the required
|
|
48
48
|
two-level subagent depth to `.opencode/opencode.json`, preserving existing values:
|
|
49
49
|
|
|
50
50
|
```json
|
|
51
51
|
{
|
|
52
|
-
"
|
|
52
|
+
"plugins": ["sortie-dogs"],
|
|
53
53
|
"subagent_depth": 2
|
|
54
54
|
}
|
|
55
55
|
```
|
|
@@ -64,7 +64,7 @@ Selecting `dog-operator` directly starts the same workflow. `dog-operator` is th
|
|
|
64
64
|
only user-facing v0.10 authority. `dogs-coordinator` and every `*-v010` role are
|
|
65
65
|
internal children and must not be selected as task entry points.
|
|
66
66
|
|
|
67
|
-
`init` installs runtime assets; the `
|
|
67
|
+
`init` installs runtime assets; the `plugins` entry loads runtime enforcement and
|
|
68
68
|
model routing. Both are required. A new session alone does not reload an updated
|
|
69
69
|
plugin process, so restart OpenCode after installation or upgrade.
|
|
70
70
|
|
|
@@ -206,7 +206,6 @@ Example `.opencode/sortie-dogs-v010.json`:
|
|
|
206
206
|
},
|
|
207
207
|
"continuation": {
|
|
208
208
|
"enabled": true,
|
|
209
|
-
"maxAutoContinues": 10,
|
|
210
209
|
"taskWatchdogMilliseconds": 300000
|
|
211
210
|
}
|
|
212
211
|
}
|
|
@@ -233,7 +232,8 @@ not invent, probe, or translate variant names.
|
|
|
233
232
|
default `1` and `maxArtifactBytes` default/maximum `30720`. Unavailable review
|
|
234
233
|
blocks only when review is required.
|
|
235
234
|
- `continuation.enabled`: default `true`.
|
|
236
|
-
-
|
|
235
|
+
- Automatic continuation has no turn-count ceiling. The legacy positive-integer
|
|
236
|
+
`continuation.maxAutoContinues` setting is accepted but ignored.
|
|
237
237
|
- `continuation.taskWatchdogMilliseconds`: root inactivity while an implementation
|
|
238
238
|
Task is outstanding; default `300000`, valid range `10..1800000`.
|
|
239
239
|
- `continuation.summarizeModel`: optional explicit compaction model; omission
|
package/dist/asset-version.d.ts
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* installed project marker without importing every asset body.
|
|
4
4
|
*/
|
|
5
5
|
export declare const RUNTIME_ASSET_VERSION = "0.3.89-completion-proof-v1";
|
|
6
|
-
export declare const V010_RUNTIME_ASSET_VERSION = "0.10.0-v0912-language4-cost-rpt10-compaction-ref2-proposal1-review-remediation1-surface4-proposal-recovery2-quality1-terminal2-route1-path1-permission2-prerequisite1";
|
|
6
|
+
export declare const V010_RUNTIME_ASSET_VERSION = "0.10.0-v0912-language4-cost-rpt10-compaction-ref2-proposal1-review-remediation1-surface4-proposal-recovery2-quality1-terminal2-route1-path1-permission2-prerequisite1-v2-bridge1-intent1";
|
|
7
7
|
export type RuntimeAssetVersion = typeof RUNTIME_ASSET_VERSION | typeof V010_RUNTIME_ASSET_VERSION;
|
package/dist/asset-version.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* installed project marker without importing every asset body.
|
|
4
4
|
*/
|
|
5
5
|
export const RUNTIME_ASSET_VERSION = "0.3.89-completion-proof-v1";
|
|
6
|
-
export const V010_RUNTIME_ASSET_VERSION = "0.10.0-v0912-language4-cost-rpt10-compaction-ref2-proposal1-review-remediation1-surface4-proposal-recovery2-quality1-terminal2-route1-path1-permission2-prerequisite1";
|
|
6
|
+
export const V010_RUNTIME_ASSET_VERSION = "0.10.0-v0912-language4-cost-rpt10-compaction-ref2-proposal1-review-remediation1-surface4-proposal-recovery2-quality1-terminal2-route1-path1-permission2-prerequisite1-v2-bridge1-intent1";
|
package/dist/cli/main.js
CHANGED
|
@@ -24,13 +24,13 @@ const LIMITS = {
|
|
|
24
24
|
pathCharacters: 512,
|
|
25
25
|
jsonDepth: 32,
|
|
26
26
|
};
|
|
27
|
-
const USAGE = `Usage: sortie-dogs lint <handoff.json> [<handoff.json> ...]
|
|
28
|
-
[--manifest <operation-manifest.json>]
|
|
29
|
-
[--changed-paths-from <file|->]
|
|
30
|
-
[--changed-path <path> ...]
|
|
27
|
+
const USAGE = `Usage: sortie-dogs lint <handoff.json> [<handoff.json> ...]
|
|
28
|
+
[--manifest <operation-manifest.json>]
|
|
29
|
+
[--changed-paths-from <file|->]
|
|
30
|
+
[--changed-path <path> ...]
|
|
31
31
|
[--format text|json] [--quiet] [--strict]`;
|
|
32
|
-
const INIT_USAGE = `Usage: sortie-dogs init [project-root] [--profile stable|v010]
|
|
33
|
-
sortie-dogs init --global [--profile stable|v010]
|
|
32
|
+
const INIT_USAGE = `Usage: sortie-dogs init [project-root] [--profile stable|v010]
|
|
33
|
+
sortie-dogs init --global [--profile stable|v010]
|
|
34
34
|
This beta package defaults to the v010 profile.`;
|
|
35
35
|
class InputFailure extends Error {
|
|
36
36
|
safeMessage;
|
|
@@ -23,38 +23,38 @@ export function goalDeclarationDefaults(object) {
|
|
|
23
23
|
? object.defaults : {};
|
|
24
24
|
return { ...normalizedCriterionFields(object), ...normalizedCriterionFields(defaults) };
|
|
25
25
|
}
|
|
26
|
-
export const GOAL_DECLARATION_FORMAT = `Declare a goal once, then reference it with goal_declaration_path in the Task prompt.
|
|
27
|
-
The referenced JSON may contain shared defaults and a criteria array; the host expands them privately.
|
|
28
|
-
An inline ext["sortie-dogs/goal-declaration"] in the registered handoff is also supported.
|
|
29
|
-
Existing accepted goals need no repeated declaration; budget-only revisions retain their criteria.
|
|
30
|
-
Legacy flat goal_* fields remain supported. No need to rewrite unrelated files or repeat common fields for each criterion.
|
|
31
|
-
delivery_intent must be exactly one of: ${GOAL_DELIVERY_INTENTS.join(" | ")}. Never use prose or a boolean.
|
|
32
|
-
delivery_mode is a separate optional enum: ${GOAL_DELIVERY_MODES.join(" | ")}.
|
|
33
|
-
Use flat key: value lines. Each criterion begins with its own goal_criterion_id: line.
|
|
34
|
-
For legacy flat input each criterion has a goal_criterion_id line. Prefer shared JSON defaults for multiple criteria.
|
|
35
|
-
Replace every placeholder with the accepted task's actual value; preserve its acceptance and validation:
|
|
36
|
-
goal_acceptance_fingerprint: <sha256: followed by exactly 64 lowercase hexadecimal characters>
|
|
37
|
-
delivery_intent: implementation
|
|
38
|
-
delivery_mode: mvp-first
|
|
39
|
-
usable_path_established: false
|
|
40
|
-
controlled_change: false
|
|
41
|
-
goal_budget_units: <accepted positive integer>
|
|
42
|
-
goal_criterion_id: <stable criterion id>
|
|
43
|
-
goal_target: <requested behavior>
|
|
44
|
-
goal_entrypoint: <real entrypoint>
|
|
45
|
-
goal_workload: <requested workload>
|
|
46
|
-
goal_oracle_coverage: ["<actual oracle>"]
|
|
47
|
-
goal_build_boundary: <included | excluded | not-applicable>
|
|
48
|
-
goal_source: <fixed source label>
|
|
49
|
-
goal_candidate: <fixed candidate label>
|
|
50
|
-
goal_source_binding: current-protected
|
|
51
|
-
goal_candidate_binding: current-protected
|
|
52
|
-
goal_fixture: <actual fixture identity>
|
|
53
|
-
goal_proof_scope: requested-full
|
|
54
|
-
goal_expected_outcome: pass
|
|
55
|
-
goal_validation_command: <exact operation manifest validation command>
|
|
56
|
-
The example's implementation/mvp-first selections apply only to an implementation without its usable path;
|
|
57
|
-
select other enum values only from the accepted request. A declaration rejection launches no child.
|
|
26
|
+
export const GOAL_DECLARATION_FORMAT = `Declare a goal once, then reference it with goal_declaration_path in the Task prompt.
|
|
27
|
+
The referenced JSON may contain shared defaults and a criteria array; the host expands them privately.
|
|
28
|
+
An inline ext["sortie-dogs/goal-declaration"] in the registered handoff is also supported.
|
|
29
|
+
Existing accepted goals need no repeated declaration; budget-only revisions retain their criteria.
|
|
30
|
+
Legacy flat goal_* fields remain supported. No need to rewrite unrelated files or repeat common fields for each criterion.
|
|
31
|
+
delivery_intent must be exactly one of: ${GOAL_DELIVERY_INTENTS.join(" | ")}. Never use prose or a boolean.
|
|
32
|
+
delivery_mode is a separate optional enum: ${GOAL_DELIVERY_MODES.join(" | ")}.
|
|
33
|
+
Use flat key: value lines. Each criterion begins with its own goal_criterion_id: line.
|
|
34
|
+
For legacy flat input each criterion has a goal_criterion_id line. Prefer shared JSON defaults for multiple criteria.
|
|
35
|
+
Replace every placeholder with the accepted task's actual value; preserve its acceptance and validation:
|
|
36
|
+
goal_acceptance_fingerprint: <sha256: followed by exactly 64 lowercase hexadecimal characters>
|
|
37
|
+
delivery_intent: implementation
|
|
38
|
+
delivery_mode: mvp-first
|
|
39
|
+
usable_path_established: false
|
|
40
|
+
controlled_change: false
|
|
41
|
+
goal_budget_units: <accepted positive integer>
|
|
42
|
+
goal_criterion_id: <stable criterion id>
|
|
43
|
+
goal_target: <requested behavior>
|
|
44
|
+
goal_entrypoint: <real entrypoint>
|
|
45
|
+
goal_workload: <requested workload>
|
|
46
|
+
goal_oracle_coverage: ["<actual oracle>"]
|
|
47
|
+
goal_build_boundary: <included | excluded | not-applicable>
|
|
48
|
+
goal_source: <fixed source label>
|
|
49
|
+
goal_candidate: <fixed candidate label>
|
|
50
|
+
goal_source_binding: current-protected
|
|
51
|
+
goal_candidate_binding: current-protected
|
|
52
|
+
goal_fixture: <actual fixture identity>
|
|
53
|
+
goal_proof_scope: requested-full
|
|
54
|
+
goal_expected_outcome: pass
|
|
55
|
+
goal_validation_command: <exact operation manifest validation command>
|
|
56
|
+
The example's implementation/mvp-first selections apply only to an implementation without its usable path;
|
|
57
|
+
select other enum values only from the accepted request. A declaration rejection launches no child.
|
|
58
58
|
Repair the Task prompt's named fields, not unrelated files; retry only with the corrected declaration.`;
|
|
59
59
|
/** Normalize a shared declaration without guessing acceptance, coverage, delivery, or validation. */
|
|
60
60
|
export function expandGoalDeclaration(value) {
|