archctx 0.9.1 → 0.9.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archctx",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "Local architecture context CLI for agentic coding workflows.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -5,17 +5,49 @@
5
5
  "type": "object",
6
6
  "additionalProperties": false,
7
7
  "required": ["schemaVersion", "id", "kind", "name", "status", "summary"],
8
+ "allOf": [
9
+ {
10
+ "if": { "properties": { "kind": { "const": "namespace" } }, "required": ["kind"] },
11
+ "then": { "required": ["namespace"] },
12
+ "else": { "not": { "required": ["namespace"] } }
13
+ },
14
+ {
15
+ "if": { "properties": { "kind": { "const": "mount" } }, "required": ["kind"] },
16
+ "then": { "required": ["mount"] },
17
+ "else": { "not": { "required": ["mount"] } }
18
+ }
19
+ ],
8
20
  "properties": {
9
21
  "schemaVersion": { "const": "archcontext.node/v2" },
10
22
  "id": { "type": "string", "pattern": "^([a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)*::)?[a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)+$" },
11
23
  "kind": {
12
24
  "type": "string",
13
- "enum": ["capability", "module", "component", "interface", "event", "datastore", "external-system", "deployment"]
25
+ "enum": ["capability", "module", "component", "interface", "event", "datastore", "external-system", "deployment", "process", "namespace", "mount"]
14
26
  },
15
27
  "name": { "type": "string" },
16
28
  "status": { "type": "string", "enum": ["active", "planned", "deprecated", "removed"] },
17
29
  "parent": { "type": "string", "pattern": "^([a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)*::)?[a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)+$" },
30
+ "layer": { "type": "string", "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" },
18
31
  "summary": { "type": "string" },
32
+ "namespace": {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": ["type"],
36
+ "properties": {
37
+ "type": { "type": "string", "enum": ["host", "container", "pod", "kubernetes", "pid", "mount", "net", "user"] }
38
+ }
39
+ },
40
+ "mount": {
41
+ "type": "object",
42
+ "additionalProperties": false,
43
+ "required": ["target", "mode", "order"],
44
+ "properties": {
45
+ "source": { "type": "string", "minLength": 1 },
46
+ "target": { "type": "string", "pattern": "^/([^/\\u0000]+(/[^/\\u0000]+)*)?$" },
47
+ "mode": { "type": "string", "enum": ["ro", "rw"] },
48
+ "order": { "type": "integer", "minimum": 0 }
49
+ }
50
+ },
19
51
  "responsibilities": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
20
52
  "source": {
21
53
  "type": "object",
@@ -10,7 +10,7 @@
10
10
  "id": { "type": "string", "pattern": "^([a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)*::)?[a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)+$" },
11
11
  "kind": {
12
12
  "type": "string",
13
- "enum": ["depends-on", "calls", "publishes", "subscribes", "reads", "writes", "implements", "deployed-on"]
13
+ "enum": ["depends-on", "calls", "publishes", "subscribes", "reads", "writes", "implements", "deployed-on", "spawns", "runs-in", "mounts"]
14
14
  },
15
15
  "source": { "type": "string", "pattern": "^([a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)*::)?[a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)+$" },
16
16
  "target": { "type": "string", "pattern": "^([a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)*::)?[a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)+$" },
@@ -30,7 +30,7 @@
30
30
  "to": { "type": "string", "minLength": 1 },
31
31
  "imports": { "type": "integer", "minimum": 1 },
32
32
  "calls": { "type": "null" },
33
- "declared": { "type": "boolean", "description": "A relation of a declaring kind (every kind but deployed-on) runs from a node that rolls up to `from` into a node that rolls up to `to`. A cell with from equal to to is always declared and lists no relation ids." },
33
+ "declared": { "type": "boolean", "description": "A relation of a declaring kind (every kind but deployed-on, spawns, runs-in and mounts) runs from a node that rolls up to `from` into a node that rolls up to `to`. A cell with from equal to to is always declared and lists no relation ids." },
34
34
  "relationIds": { "type": "array", "uniqueItems": true, "description": "The declaring relation ids, sorted. Non-empty exactly when a cross-capability cell is declared.", "items": { "type": "string", "minLength": 1 } }
35
35
  },
36
36
  "if": { "properties": { "relationIds": { "minItems": 1 } } },
@@ -266,6 +266,8 @@
266
266
  "diagram-mermaid",
267
267
  "diagram-structurizr",
268
268
  "diagram-likec4",
269
+ "diagram-runtime-topology",
270
+ "runtime-topology-summary",
269
271
  "agent-context"
270
272
  ]
271
273
  },
@@ -330,7 +332,7 @@
330
332
  },
331
333
  "sourceStamps": {
332
334
  "type": "object",
333
- "description": "entity-summary targets only: the content digest of every declared source footprint this target documents, by node id. Each footprint belongs to its node's nearest ancestor-or-self with an entity-summary target, so each node is stamped on exactly one row.",
335
+ "description": "entity-summary and runtime topology targets only: the content digest of every declared source footprint this target documents, by node id. A footprint belongs to its node's nearest ancestor-or-self with an entity-summary target, so it is stamped on exactly one entity-summary row; a runtime topology node's footprint is stamped on every runtime topology row instead, and those rows carry identical stamps (ADR-0049).",
334
336
  "additionalProperties": {
335
337
  "$ref": "#/$defs/digest"
336
338
  }
@@ -358,24 +360,37 @@
358
360
  "properties": {
359
361
  "type": {
360
362
  "not": {
361
- "const": "entity-summary"
363
+ "enum": [
364
+ "entity-summary",
365
+ "diagram-runtime-topology",
366
+ "runtime-topology-summary"
367
+ ]
362
368
  }
363
369
  }
364
370
  }
365
371
  },
366
372
  "then": {
367
373
  "not": {
368
- "anyOf": [
369
- {
370
- "required": [
371
- "sourceStamps"
372
- ]
373
- },
374
- {
375
- "required": [
376
- "scale"
377
- ]
374
+ "required": [
375
+ "sourceStamps"
376
+ ]
377
+ }
378
+ }
379
+ },
380
+ {
381
+ "if": {
382
+ "properties": {
383
+ "type": {
384
+ "not": {
385
+ "const": "entity-summary"
378
386
  }
387
+ }
388
+ }
389
+ },
390
+ "then": {
391
+ "not": {
392
+ "required": [
393
+ "scale"
379
394
  ]
380
395
  }
381
396
  }
@@ -13,7 +13,7 @@
13
13
  "targetId": { "type": "string", "pattern": "^projection_target\\.[a-zA-Z0-9_.-]+$" },
14
14
  "type": {
15
15
  "type": "string",
16
- "enum": ["architecture-index", "entity-summary", "relation-summary", "decision-index", "architecture-changelog", "diagram-mermaid", "diagram-structurizr", "diagram-likec4", "agent-context"]
16
+ "enum": ["architecture-index", "entity-summary", "relation-summary", "decision-index", "architecture-changelog", "diagram-mermaid", "diagram-structurizr", "diagram-likec4", "diagram-runtime-topology", "runtime-topology-summary", "agent-context"]
17
17
  },
18
18
  "scope": {
19
19
  "type": "object",