@skill-map/cli 0.66.0 → 0.67.0

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/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // cli/entry.ts
2
2
 
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4ec5542f-63ef-5e2c-ab32-58a6c8be5dec")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8b8b0da7-bdb9-55ed-8dcd-0f983f8be006")}catch(e){}}();
4
4
  import { existsSync as existsSync34 } from "fs";
5
5
  import { Builtins, Cli as Cli2 } from "clipanion";
6
6
 
@@ -250,7 +250,7 @@ function bucketByKind(kind, instance, bag) {
250
250
  // package.json
251
251
  var package_default = {
252
252
  name: "@skill-map/cli",
253
- version: "0.66.0",
253
+ version: "0.67.0",
254
254
  description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
255
255
  license: "MIT",
256
256
  type: "module",
@@ -1008,12 +1008,16 @@ var slashCommandExtractor = {
1008
1008
  kind: "extractor",
1009
1009
  description: "Turns `/command` invocations in a node's body into arrows that point at the resolved slash command or skill, using Claude Code routing rules. Example: `/deploy` in the body draws an arrow to the `deploy` command.",
1010
1010
  scope: "body",
1011
- // Also authorised under the codex lens so a Codex agent's prompt body
1012
- // (the TOML `developer_instructions` field) has its `/command` tokens parsed for
1013
- // pipeline parity with the claude body. codex declares no `invokes`
1014
- // resolution today, so these signals stay unresolved (no spurious edges)
1015
- // until Codex slash commands land in Phase 6b.
1016
- precondition: { provider: ["claude", "codex"] },
1011
+ // Also authorised under the codex and antigravity lenses, which share the
1012
+ // `/command` grammar. Under codex a sub-agent's prompt body (the TOML
1013
+ // `developer_instructions` field) has its `/command` tokens parsed for
1014
+ // pipeline parity; codex resolves them to its open-standard skills
1015
+ // (`invokes: ['skill']`). Under antigravity a workflow / skill / AGENTS.md
1016
+ // body's `/name` tokens resolve to BOTH skills and workflows
1017
+ // (`invokes: ['skill', 'workflow']`), since Antigravity invokes either by
1018
+ // the same slash. A lens that declares no `invokes` resolution leaves the
1019
+ // signals unresolved (no spurious edges).
1020
+ precondition: { provider: ["claude", "codex", "antigravity"] },
1017
1021
  extract(ctx) {
1018
1022
  const seen = /* @__PURE__ */ new Set();
1019
1023
  const body = stripCodeAndHtml(ctx.body);
@@ -1093,6 +1097,27 @@ function buildTooltip(names) {
1093
1097
  return `${joined.slice(0, TOOLTIP_MAX - 1)}\u2026`;
1094
1098
  }
1095
1099
 
1100
+ // plugins/antigravity/providers/antigravity/schemas/workflow.schema.json
1101
+ var workflow_schema_default = {
1102
+ $schema: "https://json-schema.org/draft/2020-12/schema",
1103
+ $id: "https://skill-map.ai/providers/antigravity/v1/frontmatter/workflow.schema.json",
1104
+ title: "FrontmatterAntigravityWorkflow",
1105
+ description: "Frontmatter shape for nodes classified as `workflow` by the Google Antigravity Provider. Workflows are standalone Markdown files under `.agent/workflows/<name>.md` (note the SINGULAR `.agent`, distinct from the open-standard `.agents/skills/` plural that Antigravity adopted for skills). A workflow file is YAML frontmatter followed by a numbered list of markdown steps; the agent runs it when invoked as the slash command `/<name>`, where the handle is ALWAYS the filename stem. Per the documented Antigravity workflow contract (https://antigravity.google/docs/rules-workflows) `description` is the ONLY frontmatter field: workflows have NO `name` field (unlike skills, where `name` is an optional override), so this schema requires `description` and declares no other property. The step body may carry execution-control comments, the shipped runtime documents `// turbo` (per-step) and `// turbo-all` (file-wide); those are body markup, not frontmatter, so they are not modelled here. `additionalProperties: true` lets any future frontmatter key flow through unchanged.",
1106
+ allOf: [
1107
+ { $ref: "https://skill-map.ai/spec/v0/frontmatter/base.schema.json" }
1108
+ ],
1109
+ type: "object",
1110
+ additionalProperties: true,
1111
+ required: ["description"],
1112
+ properties: {
1113
+ description: {
1114
+ type: "string",
1115
+ maxLength: 1024,
1116
+ description: "What the workflow does and when to run it. Antigravity surfaces it in the slash-command picker and uses it for smart detection; skill-map mirrors it on the node card. Required by the Antigravity workflow contract (the only documented workflow frontmatter field). Max 1024 chars, non-empty (minLength from the spec base)."
1117
+ }
1118
+ }
1119
+ };
1120
+
1096
1121
  // plugins/agent-skills/providers/agent-skills/schemas/skill.schema.json
1097
1122
  var skill_schema_default2 = {
1098
1123
  $schema: "https://json-schema.org/draft/2020-12/schema",
@@ -1239,11 +1264,43 @@ var agentSkillsProvider = {
1239
1264
  };
1240
1265
 
1241
1266
  // plugins/antigravity/providers/antigravity/index.ts
1267
+ var ANTIGRAVITY_RESERVED_SLASH_VERBS = [
1268
+ // Inherited open-standard base (universal cross-agent slash commands).
1269
+ ...COMMONS_RESERVED_NAMES["skill"] ?? [],
1270
+ // Antigravity-specific verbs (not part of the open-standard base).
1271
+ "artifact",
1272
+ "branch",
1273
+ "btw",
1274
+ "changelog",
1275
+ "context",
1276
+ "conversation",
1277
+ "copy",
1278
+ "credits",
1279
+ "diff",
1280
+ "fast",
1281
+ "fork",
1282
+ "goal",
1283
+ "grill-me",
1284
+ "keybindings",
1285
+ "new",
1286
+ "open",
1287
+ "planning",
1288
+ "quota",
1289
+ "rename",
1290
+ "rewind",
1291
+ "schedule",
1292
+ "settings",
1293
+ "skills",
1294
+ "switch",
1295
+ "tasks",
1296
+ "title",
1297
+ "undo"
1298
+ ];
1242
1299
  var antigravityProvider = {
1243
1300
  id: "antigravity",
1244
1301
  pluginId: ANTIGRAVITY_PLUGIN_ID,
1245
1302
  kind: "provider",
1246
- description: "Declares the Google Antigravity runtime and its reserved built-in names.",
1303
+ description: "Classifies `.agent/workflows/*.md` as Antigravity workflows and `.agents/skills/*/SKILL.md` as skills (open standard); declares the Antigravity runtime identity and its reserved built-in names.",
1247
1304
  // Provider identity for the active-lens dropdown, the topbar lens chip,
1248
1305
  // and the per-node provider chip. Antigravity violet, distinct from the
1249
1306
  // other vendor palettes.
@@ -1252,92 +1309,71 @@ var antigravityProvider = {
1252
1309
  color: "#7c3aed",
1253
1310
  colorDark: "#a78bfa"
1254
1311
  },
1255
- // No `detect` block: Antigravity has no vendor-specific workspace marker
1256
- // (it adopted the open-standard `.agents/`, owned by `agent-skills`), so
1257
- // it is never auto-suggested. The lens is set manually via
1258
- // `sm config set activeProvider antigravity`.
1259
- // Vendor provider: marked gated for the day Antigravity grows its own
1260
- // on-disk kind beyond the open standard. Today `kinds: {}` and
1261
- // `classify` returns `null` for every path, so the flag is inert; the
1262
- // declaration anticipates the migration moment so we don't have to
1263
- // remember to flip it then.
1312
+ // Auto-detect marker: Antigravity's workflows live under `.agent/workflows/`
1313
+ // (SINGULAR `.agent`), its one vendor-specific on-disk territory. Skills
1314
+ // live under the shared open-standard `.agents/` (owned by `agent-skills`),
1315
+ // so they are deliberately NOT a marker here. Now that antigravity ships
1316
+ // `beta` (enabled by default), this marker is live: a `.agent/workflows/`
1317
+ // project auto-detects the antigravity lens.
1318
+ detect: { markers: [".agent/workflows"] },
1319
+ // Vendor provider: Antigravity declares its own `workflow` kind
1320
+ // (`.agent/workflows/*.md`) on top of the open-standard skills it adopts.
1321
+ // Gating the classifier behind the active lens keeps the walker from
1322
+ // claiming Antigravity workflows under another lens, where the Antigravity
1323
+ // runtime would never resolve them anyway.
1264
1324
  gatedByActiveLens: true,
1265
- // Not yet ready for end users: ships disabled by default (the operator
1266
- // opts in via `sm plugins enable` / Settings / the tutorial's
1267
- // `--experimental` flow). Replaces the retired `comingSoon` flag.
1268
- stability: "experimental",
1269
- // Adopt the open-standard `.agents/skills/` layout by REUSING the
1270
- // `agent-skills` classifier + kind + read config (composition at the
1271
- // manifest level, not a kernel rule). Under the antigravity lens the
1272
- // walker classifies `.agents/skills/<name>/SKILL.md` as
1273
- // `{ provider: 'antigravity', kind: 'skill' }`, so the reservedNames
1274
- // below apply via SELF scope. `agent-skills` itself is gated to its own
1275
- // lens, so it never competes here (under the antigravity lens it does
1276
- // not participate). This is why there is no cross-provider lens-scope
1277
- // rule in the kernel any more.
1325
+ // Beta: ships ENABLED by default (auto-detects `.agent/workflows/`,
1326
+ // selectable as the active lens) with a maturity badge, the same posture
1327
+ // as codex, since the workflow kind + slash wiring are freshly landed.
1328
+ // Promote to `stable` (drop the field) once it has real-world mileage.
1329
+ stability: "beta",
1330
+ // `.md` + YAML frontmatter covers BOTH families (skills and workflows);
1331
+ // a single read rule suffices because the parser/extension are identical,
1332
+ // `classify()` below routes each path to its kind. (Codex needs a
1333
+ // multi-rule `read` only because it mixes `.toml` + `.md`.)
1278
1334
  read: COMMONS_READ,
1279
- kinds: COMMONS_KINDS,
1280
- resolution: COMMONS_RESOLUTION,
1281
- classify: classifyCommonsPath,
1282
- // Built-in slash-command catalog, captured verbatim from `agy /help`
1283
- // (Antigravity CLI v1.0.3). The universal cross-agent verbs (`help`,
1284
- // `config`, `mcp`, `model`, `clear`, `exit`, ...) come from the
1285
- // open-standard base catalog (`COMMONS_RESERVED_NAMES`, owned by
1286
- // `agent-skills` and inherited here by composition); this block adds ONLY
1287
- // Antigravity's OWN runtime-specific verbs on top, so the neutral
1288
- // standard never carries `agy`-specific commands. The earlier provisional
1289
- // list mirrored Gemini CLI; `agy` dropped Gemini-only verbs (`vim`,
1290
- // `theme`, `terminal-setup`, `setup-github`, `bashes`, `shells`,
1291
- // `policies`, `extensions`, `?`, `dir`, ...) and added agent-first ones.
1292
- // Both the primary verbs and the 8 documented aliases (`new`, `settings`,
1293
- // `quit`, `branch`, `switch`, `conversation`, `undo`, `quota`) are
1294
- // reserved: a user skill named after either is silently shadowed by the
1295
- // built-in once the catalog activates.
1296
- //
1297
- // Declared under the `skill` kind (NOT `command`): Antigravity has no
1298
- // vendor-specific command directory, its user slash-commands are skills
1299
- // (`.agents/skills/<name>/SKILL.md`). Because the antigravity lens now
1300
- // classifies those files itself (inherited classifier above), a user
1301
- // `.agents/skills/goal/SKILL.md` is flagged by SELF scope because `/goal`
1302
- // is built-in.
1303
- //
1304
- // **Reconciliation marker**: re-capture from `agy /help` on each major
1305
- // Antigravity CLI release, bump the cited version above, and move any
1306
- // verb that becomes universal across agents down into
1307
- // `COMMONS_RESERVED_NAMES`.
1335
+ // Two kinds: the open-standard `skill` (inherited from `agent-skills` by
1336
+ // manifest composition, so under the antigravity lens
1337
+ // `.agents/skills/<name>/SKILL.md` classifies as
1338
+ // `{ provider: 'antigravity', kind: 'skill' }` and the reservedNames below
1339
+ // apply via SELF scope) and the OWN `workflow` (`.agent/workflows/*.md`).
1340
+ // `agent-skills` itself is gated to its own lens, so it never competes here.
1341
+ kinds: {
1342
+ ...COMMONS_KINDS,
1343
+ workflow: {
1344
+ schema: "./schemas/workflow.schema.json",
1345
+ schemaJson: workflow_schema_default,
1346
+ ui: {
1347
+ label: "Workflows",
1348
+ // Antigravity violet, so a workflow node reads as Antigravity's own
1349
+ // (skills keep the normalised cross-provider green of COMMONS_KINDS).
1350
+ color: "#7c3aed",
1351
+ colorDark: "#a78bfa",
1352
+ icon: { kind: "pi", id: "pi-sitemap" }
1353
+ },
1354
+ // The handle is ALWAYS the filename stem (`/<name>`): Antigravity
1355
+ // workflows have no `name` frontmatter field (unlike skills), so there
1356
+ // is no override source, only `filename-basename`.
1357
+ identifiers: ["filename-basename"]
1358
+ }
1359
+ },
1360
+ // `/<name>` slash invocations resolve to BOTH skills and workflows: under
1361
+ // the antigravity lens a `/deploy` links to either `.agents/skills/deploy`
1362
+ // or `.agent/workflows/deploy.md`. Overrides the open-standard default
1363
+ // (`invokes: ['skill']`) to add the own `workflow` kind.
1364
+ resolution: { invokes: ["skill", "workflow"] },
1365
+ classify(path) {
1366
+ if (/^\.agent\/workflows\/[^/]+\.md$/.test(path.toLowerCase())) return "workflow";
1367
+ return classifyCommonsPath(path);
1368
+ },
1369
+ // Reserved-name catalog (`ANTIGRAVITY_RESERVED_SLASH_VERBS`, defined above).
1370
+ // Applied to BOTH `skill` and `workflow`: Antigravity invokes either kind
1371
+ // by the same `/<name>` slash, so a user file of either kind named after a
1372
+ // built-in is silently shadowed. `core/name-reserved` tests each node
1373
+ // against `reservedNames[node.kind]`, so both keys must carry the catalog.
1308
1374
  reservedNames: {
1309
- skill: [
1310
- // Inherited open-standard base (universal cross-agent slash commands).
1311
- ...COMMONS_RESERVED_NAMES["skill"] ?? [],
1312
- // Antigravity-specific verbs (not part of the open-standard base).
1313
- "artifact",
1314
- "branch",
1315
- "btw",
1316
- "changelog",
1317
- "context",
1318
- "conversation",
1319
- "copy",
1320
- "credits",
1321
- "diff",
1322
- "fast",
1323
- "fork",
1324
- "goal",
1325
- "grill-me",
1326
- "keybindings",
1327
- "new",
1328
- "open",
1329
- "planning",
1330
- "quota",
1331
- "rename",
1332
- "rewind",
1333
- "schedule",
1334
- "settings",
1335
- "skills",
1336
- "switch",
1337
- "tasks",
1338
- "title",
1339
- "undo"
1340
- ]
1375
+ skill: ANTIGRAVITY_RESERVED_SLASH_VERBS,
1376
+ workflow: ANTIGRAVITY_RESERVED_SLASH_VERBS
1341
1377
  }
1342
1378
  };
1343
1379
 
@@ -4520,7 +4556,7 @@ var builtInPlugins = [
4520
4556
  },
4521
4557
  {
4522
4558
  id: "antigravity",
4523
- description: "Google Antigravity CLI platform integration (replaces the retired Gemini CLI). Antigravity adopted the open-standard `.agents/` layout, so skills are classified by the neutral `agent-skills` provider; this plugin contributes the Antigravity runtime identity and a seed list of reserved built-in names.",
4559
+ description: "Google Antigravity CLI platform integration (replaces the retired Gemini CLI). Classifies Antigravity workflows under `.agent/workflows/*.md` (its own kind) and adopts the open-standard `.agents/skills/` layout for skills; contributes the Antigravity runtime identity and reserved built-in names.",
4524
4560
  extensions: [
4525
4561
  antigravityProvider2
4526
4562
  ]
@@ -32339,4 +32375,4 @@ function resolveBareDefault() {
32339
32375
  process.exit(ExitCode.Error);
32340
32376
  }
32341
32377
  //# sourceMappingURL=cli.js.map
32342
- //# debugId=4ec5542f-63ef-5e2c-ab32-58a6c8be5dec
32378
+ //# debugId=8b8b0da7-bdb9-55ed-8dcd-0f983f8be006
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // kernel/i18n/registry.texts.ts
2
2
 
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="27ef1dc5-0da7-5a76-9fa8-d447025bd0d4")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ec5c0003-fa2d-5645-81a6-7cf4b47aa37d")}catch(e){}}();
4
4
  var REGISTRY_TEXTS = {
5
5
  duplicateExtension: "Extension already registered: {{kind}}:{{qualifiedId}}",
6
6
  unknownKind: "Unknown extension kind: {{kind}}",
@@ -102,7 +102,7 @@ import { Tiktoken as Tiktoken2 } from "js-tiktoken/lite";
102
102
  // package.json
103
103
  var package_default = {
104
104
  name: "@skill-map/cli",
105
- version: "0.66.0",
105
+ version: "0.67.0",
106
106
  description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
107
107
  license: "MIT",
108
108
  type: "module",
@@ -4150,4 +4150,4 @@ export {
4150
4150
  runScanWithRenames
4151
4151
  };
4152
4152
  //# sourceMappingURL=index.js.map
4153
- //# debugId=27ef1dc5-0da7-5a76-9fa8-d447025bd0d4
4153
+ //# debugId=ec5c0003-fa2d-5645-81a6-7cf4b47aa37d
@@ -1,6 +1,6 @@
1
1
  // kernel/i18n/registry.texts.ts
2
2
 
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ffec428d-8810-5e29-bc67-ad4ec917ce6f")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0868917e-6f4c-5f2d-82a5-4ab3030a9e49")}catch(e){}}();
4
4
  var REGISTRY_TEXTS = {
5
5
  duplicateExtension: "Extension already registered: {{kind}}:{{qualifiedId}}",
6
6
  unknownKind: "Unknown extension kind: {{kind}}",
@@ -102,7 +102,7 @@ import { Tiktoken as Tiktoken2 } from "js-tiktoken/lite";
102
102
  // package.json
103
103
  var package_default = {
104
104
  name: "@skill-map/cli",
105
- version: "0.66.0",
105
+ version: "0.67.0",
106
106
  description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
107
107
  license: "MIT",
108
108
  type: "module",
@@ -4150,4 +4150,4 @@ export {
4150
4150
  runScanWithRenames
4151
4151
  };
4152
4152
  //# sourceMappingURL=index.js.map
4153
- //# debugId=ffec428d-8810-5e29-bc67-ad4ec917ce6f
4153
+ //# debugId=0868917e-6f4c-5f2d-82a5-4ab3030a9e49