@oxagen/cli 2.1.4-421 → 2.1.4-423
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/oxagen.mjs +32 -32
- package/package.json +1 -1
package/oxagen.mjs
CHANGED
|
@@ -22995,7 +22995,7 @@ import { readFileSync as readFileSync10 } from "node:fs";
|
|
|
22995
22995
|
import { dirname as dirname7, resolve as resolve2 } from "node:path";
|
|
22996
22996
|
import { fileURLToPath } from "node:url";
|
|
22997
22997
|
function readVersion() {
|
|
22998
|
-
if (true) return "2.1.4-
|
|
22998
|
+
if (true) return "2.1.4-423";
|
|
22999
22999
|
try {
|
|
23000
23000
|
const here = dirname7(fileURLToPath(import.meta.url));
|
|
23001
23001
|
const pkg = JSON.parse(
|
|
@@ -51676,7 +51676,7 @@ var init_package = __esm({
|
|
|
51676
51676
|
"package.json"() {
|
|
51677
51677
|
package_default = {
|
|
51678
51678
|
name: "@oxagen/cli",
|
|
51679
|
-
version: "2.1.4-
|
|
51679
|
+
version: "2.1.4-423",
|
|
51680
51680
|
description: "Oxagen governance CLI \u2014 spend, lineage, grounding, credentials, and audit (agentic coding lives in the stella CLI)",
|
|
51681
51681
|
type: "module",
|
|
51682
51682
|
main: "./dist/index.js",
|
|
@@ -54147,7 +54147,7 @@ async function contextPropose(opts, writer = stdoutWriter) {
|
|
|
54147
54147
|
}
|
|
54148
54148
|
let result2;
|
|
54149
54149
|
try {
|
|
54150
|
-
result2 = await apiPostOrThrow("
|
|
54150
|
+
result2 = await apiPostOrThrow("steering/proposals/create", {
|
|
54151
54151
|
record: {
|
|
54152
54152
|
lineageId: opts.lineage,
|
|
54153
54153
|
kind: opts.kind,
|
|
@@ -54169,7 +54169,7 @@ async function contextPropose(opts, writer = stdoutWriter) {
|
|
|
54169
54169
|
}
|
|
54170
54170
|
writer.write(`${result2.lineageId} \xB7 ${result2.proposalId} \xB7 ${result2.status}`);
|
|
54171
54171
|
writer.write(
|
|
54172
|
-
"open its
|
|
54172
|
+
"open its steering PR from Oxagen \u2192 Steering; merge there publishes it"
|
|
54173
54173
|
);
|
|
54174
54174
|
}
|
|
54175
54175
|
function checkLine(check2) {
|
|
@@ -54188,7 +54188,7 @@ async function contextRevert(proposalId, opts, writer = stdoutWriter) {
|
|
|
54188
54188
|
}
|
|
54189
54189
|
let result2;
|
|
54190
54190
|
try {
|
|
54191
|
-
result2 = await apiPostOrThrow("
|
|
54191
|
+
result2 = await apiPostOrThrow("steering/prs/revert", {
|
|
54192
54192
|
proposalId
|
|
54193
54193
|
});
|
|
54194
54194
|
} catch (err2) {
|
|
@@ -55679,7 +55679,7 @@ var init_policy = __esm({
|
|
|
55679
55679
|
remote: external_exports.string().min(1).optional(),
|
|
55680
55680
|
/**
|
|
55681
55681
|
* The production branch. Omitted or null, the remote's own default
|
|
55682
|
-
* branch is resolved, which is what a
|
|
55682
|
+
* branch is resolved, which is what a steering PR targets.
|
|
55683
55683
|
*/
|
|
55684
55684
|
branch: external_exports.string().min(1).nullable().optional(),
|
|
55685
55685
|
/**
|
|
@@ -57089,7 +57089,7 @@ async function resolveContext(cwd, {
|
|
|
57089
57089
|
// The gates were imported and `defaultBranch` was dropped, so the checker
|
|
57090
57090
|
// fell back to resolving the remote's own default — and a workspace that
|
|
57091
57091
|
// approved `release` while `origin/HEAD` still says `main` was compared
|
|
57092
|
-
// against the wrong branch entirely. A
|
|
57092
|
+
// against the wrong branch entirely. A steering PR merged into `release`
|
|
57093
57093
|
// left an enforced checkout reported as `current`, which is the failure
|
|
57094
57094
|
// this feature exists to prevent, arriving silently.
|
|
57095
57095
|
//
|
|
@@ -57373,13 +57373,13 @@ var init_steering = __esm({
|
|
|
57373
57373
|
}
|
|
57374
57374
|
});
|
|
57375
57375
|
|
|
57376
|
-
// ../../packages/oxagen/src/
|
|
57377
|
-
var
|
|
57378
|
-
var
|
|
57379
|
-
"../../packages/oxagen/src/
|
|
57376
|
+
// ../../packages/oxagen/src/steering-record-label.ts
|
|
57377
|
+
var STEERING_RECORD_LINEAGE, STEERING_RECORD_LABEL_MAX;
|
|
57378
|
+
var init_steering_record_label = __esm({
|
|
57379
|
+
"../../packages/oxagen/src/steering-record-label.ts"() {
|
|
57380
57380
|
"use strict";
|
|
57381
|
-
|
|
57382
|
-
|
|
57381
|
+
STEERING_RECORD_LINEAGE = /^[a-z0-9][a-z0-9.-]*[a-z0-9]$/;
|
|
57382
|
+
STEERING_RECORD_LABEL_MAX = 36;
|
|
57383
57383
|
}
|
|
57384
57384
|
});
|
|
57385
57385
|
|
|
@@ -57597,7 +57597,7 @@ var REQUIRED_CHECK_NAME, STEERING_DEFAULT_BRANCH, STEERING_PR_MAX_FILES, BRANCH_
|
|
|
57597
57597
|
var init_names = __esm({
|
|
57598
57598
|
"../../packages/oxagen/src/steering-repo/names.ts"() {
|
|
57599
57599
|
"use strict";
|
|
57600
|
-
|
|
57600
|
+
init_steering_record_label();
|
|
57601
57601
|
init_workspace_slug();
|
|
57602
57602
|
REQUIRED_CHECK_NAME = "Oxagen steering";
|
|
57603
57603
|
STEERING_DEFAULT_BRANCH = "main";
|
|
@@ -57632,12 +57632,12 @@ var init_common = __esm({
|
|
|
57632
57632
|
"../../packages/oxagen/src/steering-repo/common.ts"() {
|
|
57633
57633
|
"use strict";
|
|
57634
57634
|
init_zod();
|
|
57635
|
-
|
|
57635
|
+
init_steering_record_label();
|
|
57636
57636
|
init_workspace_slug();
|
|
57637
57637
|
init_json_schema();
|
|
57638
57638
|
init_names();
|
|
57639
57639
|
lineageSchema = external_exports.string().regex(
|
|
57640
|
-
|
|
57640
|
+
STEERING_RECORD_LINEAGE,
|
|
57641
57641
|
"a lineage is lowercase letters, digits, dots, and hyphens, and starts and ends with a letter or digit"
|
|
57642
57642
|
);
|
|
57643
57643
|
repoRefSchema = external_exports.string().regex(
|
|
@@ -57788,7 +57788,7 @@ var init_steering_markdown_import_shared = __esm({
|
|
|
57788
57788
|
"../../packages/oxagen/src/contracts/steering.markdown_import.shared.ts"() {
|
|
57789
57789
|
"use strict";
|
|
57790
57790
|
init_zod();
|
|
57791
|
-
|
|
57791
|
+
init_steering_record_label();
|
|
57792
57792
|
init_common();
|
|
57793
57793
|
init_memory();
|
|
57794
57794
|
init_names();
|
|
@@ -57834,7 +57834,7 @@ var init_steering_markdown_import_shared = __esm({
|
|
|
57834
57834
|
"frontmatter for a file that is one steering record already, split for a statement the model split out"
|
|
57835
57835
|
),
|
|
57836
57836
|
lineage: lineageSchema.max(200).describe("The record's lineage, and its file name in the steering repo"),
|
|
57837
|
-
label: external_exports.string().trim().min(1).max(
|
|
57837
|
+
label: external_exports.string().trim().min(1).max(STEERING_RECORD_LABEL_MAX).describe("The record's name, at most 36 characters"),
|
|
57838
57838
|
statement: external_exports.string().trim().min(1).max(MARKDOWN_IMPORT_FILE_CHARS_MAX).describe("What the record tells an agent: the record's body"),
|
|
57839
57839
|
kind: recordKindSchema,
|
|
57840
57840
|
kindReason: external_exports.string().max(300).describe("One line on why the statement is this kind"),
|
|
@@ -57971,7 +57971,7 @@ var init_context_steering_shared = __esm({
|
|
|
57971
57971
|
"../../packages/oxagen/src/contracts/context.steering.shared.ts"() {
|
|
57972
57972
|
"use strict";
|
|
57973
57973
|
init_zod();
|
|
57974
|
-
|
|
57974
|
+
init_steering_record_label();
|
|
57975
57975
|
recordKindSchema2 = external_exports.enum([
|
|
57976
57976
|
"rule",
|
|
57977
57977
|
"constraint",
|
|
@@ -58059,7 +58059,7 @@ var init_context_steering_shared = __esm({
|
|
|
58059
58059
|
completedAt: instant.nullable()
|
|
58060
58060
|
}).strict();
|
|
58061
58061
|
RECORD_LINEAGE_ID = new RegExp(
|
|
58062
|
-
`^(?!${GOVERNANCE_LINEAGE}$)${
|
|
58062
|
+
`^(?!${GOVERNANCE_LINEAGE}$)${STEERING_RECORD_LINEAGE.source.replace(/^\^/, "")}`
|
|
58063
58063
|
);
|
|
58064
58064
|
lineageIdSchema = external_exports.string().min(1).max(200).regex(
|
|
58065
58065
|
RECORD_LINEAGE_ID,
|
|
@@ -58070,7 +58070,7 @@ var init_context_steering_shared = __esm({
|
|
|
58070
58070
|
"The lineage this proposal is about; the file stem under .oxagen/rules/"
|
|
58071
58071
|
),
|
|
58072
58072
|
title: external_exports.string().trim().min(1).max(200).optional(),
|
|
58073
|
-
label: external_exports.string().trim().min(1).max(
|
|
58073
|
+
label: external_exports.string().trim().min(1).max(STEERING_RECORD_LABEL_MAX).optional().describe(
|
|
58074
58074
|
"The record's name, at most 36 characters. Omit it to keep the current label. A rename never creates a version and never changes the lineage."
|
|
58075
58075
|
),
|
|
58076
58076
|
kind: recordKindSchema2,
|
|
@@ -58078,7 +58078,7 @@ var init_context_steering_shared = __esm({
|
|
|
58078
58078
|
/** Required on a constraint, refused on every other kind. */
|
|
58079
58079
|
constraintEffect: constraintEffectSchema.optional(),
|
|
58080
58080
|
sharingScope: publishedSharingScopeSchema.describe(
|
|
58081
|
-
"Decides which repo the
|
|
58081
|
+
"Decides which repo the steering PR targets (spec \xA710.3 step 1)"
|
|
58082
58082
|
),
|
|
58083
58083
|
statement: external_exports.string().min(1).max(2e3).describe("The single-sentence claim")
|
|
58084
58084
|
}).strict().superRefine((r, ctx) => {
|
|
@@ -58143,13 +58143,13 @@ var init_context_steering_shared = __esm({
|
|
|
58143
58143
|
title: external_exports.string(),
|
|
58144
58144
|
label: external_exports.string().optional(),
|
|
58145
58145
|
/**
|
|
58146
|
-
* Every write path has required agent.
|
|
58146
|
+
* Every write path has required agent.steering_records.kind since #3302,
|
|
58147
58147
|
* but the DB-level NOT NULL is a deliberate follow-up migration (see
|
|
58148
58148
|
* `20260920150000`'s comment) rather than shipped with the write
|
|
58149
58149
|
* requirement itself, so a genuinely unclassified row can still exist.
|
|
58150
58150
|
* Nullable here for that reason, and because
|
|
58151
|
-
*
|
|
58152
|
-
*
|
|
58151
|
+
* steering_record_versions.kind still is (a legacy version
|
|
58152
|
+
* merge_steering_pr never wrote): a record's active version can, in
|
|
58153
58153
|
* principle, be one of those on a database this old.
|
|
58154
58154
|
*/
|
|
58155
58155
|
kind: recordKindSchema2.nullable(),
|
|
@@ -58160,9 +58160,9 @@ var init_context_steering_shared = __esm({
|
|
|
58160
58160
|
status: external_exports.enum(["active", "retired", "superseded"]),
|
|
58161
58161
|
version: external_exports.number().int().nullable(),
|
|
58162
58162
|
checksum: external_exports.string().nullable(),
|
|
58163
|
-
/** The merge commit that published it; null when no
|
|
58163
|
+
/** The merge commit that published it; null when no steering PR did. */
|
|
58164
58164
|
commit: external_exports.string().nullable(),
|
|
58165
|
-
/** The file's path in the repository; null when no
|
|
58165
|
+
/** The file's path in the repository; null when no steering PR wrote it. */
|
|
58166
58166
|
path: external_exports.string().nullable(),
|
|
58167
58167
|
publishedAt: instant.nullable(),
|
|
58168
58168
|
updatedAt: instant
|
|
@@ -67779,7 +67779,7 @@ var init_record = __esm({
|
|
|
67779
67779
|
import_yaml = __toESM(require_dist(), 1);
|
|
67780
67780
|
init_zod();
|
|
67781
67781
|
init_src3();
|
|
67782
|
-
|
|
67782
|
+
init_steering_record_label();
|
|
67783
67783
|
init_common();
|
|
67784
67784
|
init_files();
|
|
67785
67785
|
init_json_schema();
|
|
@@ -67818,7 +67818,7 @@ var init_record = __esm({
|
|
|
67818
67818
|
recordShape = external_exports.object({
|
|
67819
67819
|
schema: external_exports.literal("steering-record/v1"),
|
|
67820
67820
|
lineage: lineageSchema,
|
|
67821
|
-
label: external_exports.string().min(1).max(
|
|
67821
|
+
label: external_exports.string().min(1).max(STEERING_RECORD_LABEL_MAX),
|
|
67822
67822
|
description: external_exports.string().max(SKILL_DESCRIPTION_MAX).optional().describe(
|
|
67823
67823
|
"One sentence, the record's line in the index an agent reads. At most 200 characters, or 1,024 for a skill."
|
|
67824
67824
|
),
|
|
@@ -72771,7 +72771,7 @@ async function steeringRestoreBlock(proposalId, path2, opts = {}, writer = stdou
|
|
|
72771
72771
|
let result2;
|
|
72772
72772
|
try {
|
|
72773
72773
|
result2 = await apiPostOrThrow(
|
|
72774
|
-
"
|
|
72774
|
+
"steering/prs/restore-block",
|
|
72775
72775
|
{ proposalId: id, path: file }
|
|
72776
72776
|
);
|
|
72777
72777
|
} catch (err2) {
|
|
@@ -115769,7 +115769,7 @@ function buildProgram() {
|
|
|
115769
115769
|
"Steering: record a proposal on a lineage, or revert a merged one"
|
|
115770
115770
|
);
|
|
115771
115771
|
contextCmd.command("propose").description(
|
|
115772
|
-
"Record a proposal (the record it should become, why); its
|
|
115772
|
+
"Record a proposal (the record it should become, why); its steering PR is opened and merged in Oxagen"
|
|
115773
115773
|
).requiredOption(
|
|
115774
115774
|
"--lineage <id>",
|
|
115775
115775
|
"The lineage id (the file stem under .oxagen/rules/)"
|
|
@@ -115838,7 +115838,7 @@ function buildProgram() {
|
|
|
115838
115838
|
}
|
|
115839
115839
|
);
|
|
115840
115840
|
repoCmd.command("governance").description(
|
|
115841
|
-
"Set the steering governance mode: who may merge a
|
|
115841
|
+
"Set the steering governance mode: who may merge a steering PR in this workspace"
|
|
115842
115842
|
).requiredOption("--mode <mode>", "solo | team | regulated").option(
|
|
115843
115843
|
"--workspace <id>",
|
|
115844
115844
|
"The wrk_\u2026 workspace to change; the scoped workspace when omitted"
|
package/package.json
CHANGED