@plurnk/plurnk-contracts 1.17.0 → 1.19.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.
Files changed (93) hide show
  1. package/.env.defaults +11 -0
  2. package/README.md +10 -43
  3. package/SPEC.md +363 -280
  4. package/dist/conformance/agui-v1.json +3 -50
  5. package/dist/schema/CapabilityDescriptor.json +6 -1
  6. package/dist/schema/CapabilitySelector.json +6 -1
  7. package/dist/schema/ClientStatement.json +0 -10
  8. package/dist/schema/FunctionalityDefinitionState.json +9 -1
  9. package/dist/schema/LoopPolicy.json +32 -3
  10. package/dist/schema/LoopPolicyRequest.json +16 -0
  11. package/dist/schema/McpConfigurationOverlay.json +1 -14
  12. package/dist/schema/McpServerDefinition.json +1 -1
  13. package/dist/schema/PlurnkStatement.json +30 -41
  14. package/dist/schema/ProposalProjection.json +6 -2
  15. package/dist/schema/SkillDefinition.json +3 -3
  16. package/dist/schema/TextLineMarker.json +1 -1
  17. package/dist/src/ApplicationPort.d.ts +38 -10
  18. package/dist/src/ApplicationPort.d.ts.map +1 -1
  19. package/dist/src/LoopLifecycle.d.ts +5 -0
  20. package/dist/src/LoopLifecycle.d.ts.map +1 -1
  21. package/dist/src/LoopLifecycle.js +15 -0
  22. package/dist/src/LoopLifecycle.js.map +1 -1
  23. package/dist/src/MessageResource.d.ts +30 -0
  24. package/dist/src/MessageResource.d.ts.map +1 -0
  25. package/dist/src/MessageResource.js +2 -0
  26. package/dist/src/MessageResource.js.map +1 -0
  27. package/dist/src/PlurnkParseError.d.ts +1 -3
  28. package/dist/src/PlurnkParseError.d.ts.map +1 -1
  29. package/dist/src/PlurnkParseError.js +1 -4
  30. package/dist/src/PlurnkParseError.js.map +1 -1
  31. package/dist/src/Problems.d.ts +1 -0
  32. package/dist/src/Problems.d.ts.map +1 -1
  33. package/dist/src/Problems.js +19 -1
  34. package/dist/src/Problems.js.map +1 -1
  35. package/dist/src/TurnDisposition.d.ts +3 -4
  36. package/dist/src/TurnDisposition.d.ts.map +1 -1
  37. package/dist/src/TurnDisposition.js +5 -21
  38. package/dist/src/TurnDisposition.js.map +1 -1
  39. package/dist/src/Validator.d.ts +3 -3
  40. package/dist/src/Validator.d.ts.map +1 -1
  41. package/dist/src/Validator.js +14 -15
  42. package/dist/src/Validator.js.map +1 -1
  43. package/dist/src/index.d.ts +3 -7
  44. package/dist/src/index.d.ts.map +1 -1
  45. package/dist/src/index.js +4 -7
  46. package/dist/src/index.js.map +1 -1
  47. package/dist/src/types.d.ts +15 -6
  48. package/dist/src/types.d.ts.map +1 -1
  49. package/dist/src/types.generated.d.ts +60 -76
  50. package/dist/src/types.generated.d.ts.map +1 -1
  51. package/dist/src/types.js +19 -12
  52. package/dist/src/types.js.map +1 -1
  53. package/package.json +7 -20
  54. package/plurnk.md +49 -73
  55. package/bin/plurnk-contracts.js +0 -43
  56. package/dist/schema/AcpPlan.json +0 -63
  57. package/dist/schema/Plan.json +0 -65
  58. package/dist/src/AcpPlanValue.d.ts +0 -6
  59. package/dist/src/AcpPlanValue.d.ts.map +0 -1
  60. package/dist/src/AcpPlanValue.js +0 -36
  61. package/dist/src/AcpPlanValue.js.map +0 -1
  62. package/dist/src/AstBuilder.d.ts +0 -21
  63. package/dist/src/AstBuilder.d.ts.map +0 -1
  64. package/dist/src/AstBuilder.js +0 -876
  65. package/dist/src/AstBuilder.js.map +0 -1
  66. package/dist/src/PlanValue.d.ts +0 -9
  67. package/dist/src/PlanValue.d.ts.map +0 -1
  68. package/dist/src/PlanValue.js +0 -63
  69. package/dist/src/PlanValue.js.map +0 -1
  70. package/dist/src/PlurnkErrorStrategy.d.ts +0 -11
  71. package/dist/src/PlurnkErrorStrategy.d.ts.map +0 -1
  72. package/dist/src/PlurnkErrorStrategy.js +0 -253
  73. package/dist/src/PlurnkErrorStrategy.js.map +0 -1
  74. package/dist/src/PlurnkParser.d.ts +0 -15
  75. package/dist/src/PlurnkParser.d.ts.map +0 -1
  76. package/dist/src/PlurnkParser.js +0 -330
  77. package/dist/src/PlurnkParser.js.map +0 -1
  78. package/dist/src/RecordingListener.d.ts +0 -9
  79. package/dist/src/RecordingListener.d.ts.map +0 -1
  80. package/dist/src/RecordingListener.js +0 -37
  81. package/dist/src/RecordingListener.js.map +0 -1
  82. package/dist/src/generated/plurnkLexer.d.ts +0 -162
  83. package/dist/src/generated/plurnkLexer.d.ts.map +0 -1
  84. package/dist/src/generated/plurnkLexer.js +0 -1060
  85. package/dist/src/generated/plurnkLexer.js.map +0 -1
  86. package/dist/src/generated/plurnkParser.d.ts +0 -436
  87. package/dist/src/generated/plurnkParser.d.ts.map +0 -1
  88. package/dist/src/generated/plurnkParser.js +0 -2972
  89. package/dist/src/generated/plurnkParser.js.map +0 -1
  90. package/dist/src/generated/plurnkParserVisitor.d.ts +0 -263
  91. package/dist/src/generated/plurnkParserVisitor.d.ts.map +0 -1
  92. package/dist/src/generated/plurnkParserVisitor.js +0 -227
  93. package/dist/src/generated/plurnkParserVisitor.js.map +0 -1
@@ -91,9 +91,9 @@
91
91
  "id": 1,
92
92
  "worker_id": 7,
93
93
  "origin": "model",
94
- "op": "TASK",
94
+ "op": "NOTE",
95
95
  "coordinate": "1.1.1",
96
- "tx": { "body": { "entries": [{ "content": "Work.", "priority": "medium", "status": "in_progress" }] } }
96
+ "tx": { "body": "Work." }
97
97
  }
98
98
  },
99
99
  {
@@ -461,53 +461,6 @@
461
461
  "status": 409
462
462
  }
463
463
  },
464
- {
465
- "name": "branch-batch",
466
- "events": [
467
- {
468
- "type": "CUSTOM",
469
- "name": "plurnk.branch_batch",
470
- "value": {
471
- "batchId": 4,
472
- "state": "completed",
473
- "completed": 2,
474
- "total": 2
475
- }
476
- },
477
- {
478
- "type": "CUSTOM",
479
- "name": "plurnk.terminated",
480
- "value": {
481
- "workspaceId": 1,
482
- "workerId": 7,
483
- "loopId": 1,
484
- "result": { "status": 200 },
485
- "hitMaxTurns": false,
486
- "turnIds": [1],
487
- "attributions": [],
488
- "usage": {
489
- "accounting": { "requests": [], "usage": { "inputTokens": 0, "outputTokens": 0, "totalTokens": 0, "inputTokenDetails": { "noCacheTokens": 0, "cacheReadTokens": 0, "cacheWriteTokens": 0 }, "outputTokenDetails": { "textTokens": 0, "reasoningTokens": 0 } }, "costUsd": "0" },
490
- "curationWeight": null,
491
- "curationBudget": null,
492
- "contextTokens": null,
493
- "contextCapacity": null,
494
- "meta": {}
495
- }
496
- }
497
- },
498
- {
499
- "type": "RUN_FINISHED",
500
- "threadId": "fixture",
501
- "runId": "branch",
502
- "outcome": { "type": "success" }
503
- }
504
- ],
505
- "expect": {
506
- "completion": "success",
507
- "families": ["workspace/branch-batch", "loop/terminated"],
508
- "status": 200
509
- }
510
- },
511
464
  {
512
465
  "name": "cancelled-run",
513
466
  "events": [
@@ -559,7 +512,7 @@
559
512
  {
560
513
  "type": "CUSTOM",
561
514
  "name": "plurnk.row",
562
- "value": { "id": 1, "worker_id": 7, "origin": "model", "op": "TASK", "tx": { "body": { "entries": [] } } }
515
+ "value": { "id": 1, "worker_id": 7, "origin": "model", "op": "NOTE", "tx": { "body": null } }
563
516
  }
564
517
  ],
565
518
  "expect": {
@@ -8,7 +8,12 @@
8
8
  "additionalProperties": false,
9
9
  "properties": {
10
10
  "operation": {
11
- "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SEND", "EXEC", "BARE", "WORK", "FORK", "KILL"]
11
+ "description": "An operation keyword, or a runtime tag: an execution's operation is its runtime.",
12
+ "anyOf": [
13
+ { "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SEND", "BARE", "WORK", "FORK", "KILL"] },
14
+ { "type": "string", "pattern": "^[a-z][a-z0-9+.-]*$" }
15
+ ],
16
+ "tsType": "\"FIND\" | \"READ\" | \"EDIT\" | \"COPY\" | \"MOVE\" | \"SEND\" | \"BARE\" | \"WORK\" | \"FORK\" | \"KILL\" | Lowercase<string>"
12
17
  },
13
18
  "scheme": { "type": "string", "pattern": "^[a-z][a-z0-9+.-]*$" },
14
19
  "runtime": { "type": "string", "pattern": "^[a-z][a-z0-9+.-]*$" },
@@ -8,7 +8,12 @@
8
8
  "additionalProperties": false,
9
9
  "properties": {
10
10
  "operation": {
11
- "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SEND", "EXEC", "BARE", "WORK", "FORK", "KILL"]
11
+ "description": "An operation keyword, or a runtime tag: an execution's operation is its runtime.",
12
+ "anyOf": [
13
+ { "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SEND", "BARE", "WORK", "FORK", "KILL"] },
14
+ { "type": "string", "pattern": "^[a-z][a-z0-9+.-]*$" }
15
+ ],
16
+ "tsType": "\"FIND\" | \"READ\" | \"EDIT\" | \"COPY\" | \"MOVE\" | \"SEND\" | \"BARE\" | \"WORK\" | \"FORK\" | \"KILL\" | Lowercase<string>"
12
17
  },
13
18
  "scheme": { "type": "string", "pattern": "^[a-z][a-z0-9+.-]*$" },
14
19
  "runtime": { "type": "string", "pattern": "^[a-z][a-z0-9+.-]*$" },
@@ -41,16 +41,6 @@
41
41
  }
42
42
  ]
43
43
  },
44
- "LineMarkerOrNull": {
45
- "oneOf": [
46
- {
47
- "$ref": "https://schemas.plurnk.xyz/v0/LineMarker.json"
48
- },
49
- {
50
- "type": "null"
51
- }
52
- ]
53
- },
54
44
  "TextLineMarkerOrNull": {
55
45
  "oneOf": [
56
46
  {
@@ -8,12 +8,20 @@
8
8
  "required": ["alias", "origin", "state"],
9
9
  "properties": {
10
10
  "alias": { "type": "string", "minLength": 1 },
11
- "origin": { "enum": ["service", "workspace"] },
11
+ "origin": {
12
+ "description": "Who owns this definition: the service baseline, the workspace, or one worker. A worker-scoped family (env) owns its definitions per worker, so origin names ownership rather than scope.",
13
+ "enum": ["service", "workspace", "worker"]
14
+ },
12
15
  "state": {
13
16
  "description": "disabled: available, model-invisible. active: enabled and prepared. unavailable: enabled but preparation has an exact Problem. authorization-required: enabled and awaiting a protocol continuation.",
14
17
  "enum": ["disabled", "active", "unavailable", "authorization-required"]
15
18
  },
16
19
  "definition": { "type": "object" },
20
+ "inherited": {
21
+ "description": "The Worker this entry was copied from when this Worker was created (WORK or FORK), preserved across generations until this Worker changes the entry. Absent for an entry this Worker set itself. Worker-scoped families only.",
22
+ "type": "string",
23
+ "minLength": 1
24
+ },
17
25
  "detail": {
18
26
  "description": "Family-owned presentation facts about an active definition (a server's protocol version and tool names, an agent card summary). Never credentials, never authority.",
19
27
  "type": "object"
@@ -2,11 +2,40 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://schemas.plurnk.xyz/v0/LoopPolicy.json",
4
4
  "title": "LoopPolicy",
5
- "description": "The immutable proposal disposition for one loop. Workspace capability admission precedes proposals.",
5
+ "description": "One loop's complete, immutable policy: how its proposals are settled, and whether anyone is attending who could answer. A creator states any part of it as a LoopPolicyRequest and the daemon's panel supplies the rest before the loop is persisted. Workspace capability admission precedes both.",
6
6
  "type": "object",
7
- "required": ["proposals"],
7
+ "required": [
8
+ "proposals",
9
+ "attended"
10
+ ],
8
11
  "additionalProperties": false,
9
12
  "properties": {
10
- "proposals": { "enum": ["review", "accept", "reject"] }
13
+ "proposals": {
14
+ "enum": [
15
+ "review",
16
+ "accept",
17
+ "reject"
18
+ ],
19
+ "description": "review holds a proposal for a client's answer; accept applies it and reject refuses it inside the loop."
20
+ },
21
+ "attended": {
22
+ "type": "boolean",
23
+ "description": "Whether an interactive partner exists who can answer. False declares an unattended loop: no human-in-the-loop surface is offered, and a wait nobody could end becomes a conclusion."
24
+ }
25
+ },
26
+ "not": {
27
+ "description": "An unattended loop cannot hold a proposal for review: nobody is present to answer.",
28
+ "required": [
29
+ "proposals",
30
+ "attended"
31
+ ],
32
+ "properties": {
33
+ "proposals": {
34
+ "const": "review"
35
+ },
36
+ "attended": {
37
+ "const": false
38
+ }
39
+ }
11
40
  }
12
41
  }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.plurnk.xyz/v0/LoopPolicyRequest.json",
4
+ "title": "LoopPolicyRequest",
5
+ "description": "The part of a LoopPolicy a loop's creator chose to state. Every field it leaves out is the daemon's to supply from its panel, so a creator with nothing to say sends an empty object or no policy at all.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "proposals": {
10
+ "$ref": "https://schemas.plurnk.xyz/v0/LoopPolicy.json#/properties/proposals"
11
+ },
12
+ "attended": {
13
+ "$ref": "https://schemas.plurnk.xyz/v0/LoopPolicy.json#/properties/attended"
14
+ }
15
+ }
16
+ }
@@ -4,20 +4,7 @@
4
4
  "title": "McpConfigurationOverlay",
5
5
  "type": "object",
6
6
  "propertyNames": {
7
- "allOf": [
8
- {
9
- "pattern": "^PLURNK_MCP_[A-Za-z0-9_.+-]+$"
10
- },
11
- {
12
- "not": {
13
- "enum": [
14
- "PLURNK_MCP_CONNECT_TIMEOUT",
15
- "PLURNK_MCP_REQUEST_TIMEOUT",
16
- "PLURNK_MCP_ENABLED"
17
- ]
18
- }
19
- }
20
- ]
7
+ "pattern": "^PLURNK_MCP_[A-Za-z0-9_.+-]+$"
21
8
  },
22
9
  "additionalProperties": {
23
10
  "type": "string"
@@ -7,7 +7,7 @@
7
7
  "required": ["name", "transport"],
8
8
  "properties": {
9
9
  "name": {
10
- "description": "Server alias used as its EXEC selector and resource scheme.",
10
+ "description": "Server alias: the runtime tag whose fence invokes it, and its resource scheme.",
11
11
  "type": "string",
12
12
  "pattern": "^[a-z][a-z0-9-]*$"
13
13
  },
@@ -39,6 +39,9 @@
39
39
  },
40
40
  {
41
41
  "$ref": "#/$defs/DispositionStatement"
42
+ },
43
+ {
44
+ "$ref": "#/$defs/NoteStatement"
42
45
  }
43
46
  ],
44
47
  "$defs": {
@@ -62,34 +65,6 @@
62
65
  }
63
66
  ]
64
67
  },
65
- "AppliedTagSignal": {
66
- "oneOf": [
67
- {
68
- "type": "array",
69
- "items": {
70
- "type": "string",
71
- "pattern": "^\\+?[^+\\-\\[\\],\\s\\u0000-\\u001F\\u007F-\\u009F][^\\[\\],\\s\\u0000-\\u001F\\u007F-\\u009F]*$"
72
- }
73
- },
74
- {
75
- "type": "null"
76
- }
77
- ]
78
- },
79
- "CurationTagSignal": {
80
- "oneOf": [
81
- {
82
- "type": "array",
83
- "items": {
84
- "type": "string",
85
- "pattern": "^[+-]?[^+\\-\\[\\],\\s\\u0000-\\u001F\\u007F-\\u009F][^\\[\\],\\s\\u0000-\\u001F\\u007F-\\u009F]*$"
86
- }
87
- },
88
- {
89
- "type": "null"
90
- }
91
- ]
92
- },
93
68
  "PathOrNull": {
94
69
  "oneOf": [
95
70
  {
@@ -365,10 +340,9 @@
365
340
  "ExecStatement": {
366
341
  "type": "object",
367
342
  "required": [
368
- "op",
343
+ "runtime",
369
344
  "aside",
370
345
  "metadata",
371
- "executor",
372
346
  "target",
373
347
  "lineMarker",
374
348
  "body",
@@ -376,8 +350,16 @@
376
350
  ],
377
351
  "additionalProperties": false,
378
352
  "properties": {
353
+ "runtime": {
354
+ "description": "The runtime tag the fence names, in its registered lowercase spelling. An execution has no operation keyword: the fence name is the runtime, and the log row's op shows it as written.",
355
+ "type": "string",
356
+ "pattern": "^[a-z][a-z0-9+.-]*$",
357
+ "tsType": "Lowercase<string>"
358
+ },
379
359
  "op": {
380
- "const": "EXEC"
360
+ "description": "Never present: an execution is named by its runtime.",
361
+ "not": {},
362
+ "tsType": "never"
381
363
  },
382
364
  "aside": {
383
365
  "$ref": "#/$defs/AsideOrNull"
@@ -385,13 +367,6 @@
385
367
  "metadata": {
386
368
  "$ref": "#/$defs/SchemeMetadataOrNull"
387
369
  },
388
- "executor": {
389
- "description": "The registered executor selected by the fence name; null is the default shell for native EXEC.",
390
- "type": [
391
- "string",
392
- "null"
393
- ]
394
- },
395
370
  "target": {
396
371
  "$ref": "#/$defs/PathOrNull"
397
372
  },
@@ -574,7 +549,7 @@
574
549
  "additionalProperties": false,
575
550
  "properties": {
576
551
  "op": {
577
- "const": "TASK"
552
+ "enum": ["WAIT"]
578
553
  },
579
554
  "aside": {
580
555
  "$ref": "#/$defs/AsideOrNull"
@@ -583,18 +558,32 @@
583
558
  "type": "null"
584
559
  },
585
560
  "target": {
586
- "type": "null"
561
+ "$ref": "#/$defs/PathOrNull"
587
562
  },
588
563
  "lineMarker": {
589
564
  "$ref": "#/$defs/LineMarkerOrNull"
590
565
  },
591
566
  "body": {
592
- "$ref": "https://schemas.plurnk.xyz/v0/Plan.json"
567
+ "type": ["string", "null"]
593
568
  },
594
569
  "position": {
595
570
  "$ref": "#/$defs/PositionRef"
596
571
  }
597
572
  }
573
+ },
574
+ "NoteStatement": {
575
+ "type": "object",
576
+ "required": ["op", "aside", "metadata", "target", "lineMarker", "body", "position"],
577
+ "additionalProperties": false,
578
+ "properties": {
579
+ "op": { "const": "NOTE" },
580
+ "aside": { "$ref": "#/$defs/AsideOrNull" },
581
+ "metadata": { "type": "null" },
582
+ "target": { "type": "null" },
583
+ "lineMarker": { "type": "null" },
584
+ "body": { "type": ["string", "null"] },
585
+ "position": { "$ref": "#/$defs/PositionRef" }
586
+ }
598
587
  }
599
588
  }
600
589
  }
@@ -23,8 +23,12 @@
23
23
  "loopId": { "type": "integer", "minimum": 1 },
24
24
  "turnId": { "type": "integer", "minimum": 1 },
25
25
  "op": {
26
- "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SEND", "EXEC", "BARE", "WORK", "FORK", "KILL",
27
- "TASK"]
26
+ "description": "An operation keyword, or a runtime tag: an execution's operation is its runtime.",
27
+ "anyOf": [
28
+ { "enum": ["FIND", "READ", "EDIT", "COPY", "MOVE", "SEND", "BARE", "WORK", "FORK", "KILL", "NOTE", "WAIT"] },
29
+ { "type": "string", "pattern": "^[a-z][a-z0-9+.-]*$" }
30
+ ],
31
+ "tsType": "\"FIND\" | \"READ\" | \"EDIT\" | \"COPY\" | \"MOVE\" | \"SEND\" | \"BARE\" | \"WORK\" | \"FORK\" | \"KILL\" | \"NOTE\" | \"WAIT\" | Lowercase<string>"
28
32
  },
29
33
  "target": {
30
34
  "type": "object",
@@ -2,15 +2,15 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://schemas.plurnk.xyz/v0/SkillDefinition.json",
4
4
  "title": "SkillDefinition",
5
- "description": "One standard Agent Skill: its name, source scope, and — for a Worker-installed skill — the standard installer package reference.",
5
+ "description": "One standard Agent Skill: its name, source scope, and — for a workspace-installed skill — the standard installer package reference.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
8
  "required": ["name", "scope"],
9
9
  "properties": {
10
10
  "name": {
11
- "description": "The standard Agent Skills name: lowercase words joined by single hyphens, equal to the skill's directory name.",
11
+ "description": "The standard Agent Skills name: Unicode lowercase or uncased letters and numbers joined by single hyphens, equal to the skill's directory name.",
12
12
  "type": "string",
13
- "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
13
+ "pattern": "^(?!.*[\\p{Uppercase}\\p{Lt}])[\\p{L}\\p{N}]+(?:-[\\p{L}\\p{N}]+)*$",
14
14
  "maxLength": 64
15
15
  },
16
16
  "scope": {
@@ -12,7 +12,7 @@
12
12
  "items": {
13
13
  "oneOf": [
14
14
  { "type": "number" },
15
- { "type": "string", "pattern": "^@[0-9A-Za-z]{5}$" }
15
+ { "type": "string", "pattern": "^@[0-9A-Za-z]{5}([+-][0-9]+)?$" }
16
16
  ]
17
17
  },
18
18
  "minItems": 1
@@ -1,5 +1,7 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
1
2
  import type { LoopLifecycle } from "./LoopLifecycle.ts";
2
- import type { CapabilityPolicy, CapabilityProjection, ClientDisplayCapabilities, ClientInteractionProjection, ClientInteractionResolution, EntryReadResult, JsonSchema, LoopPolicy, ModelCatalogPage, ModelCatalogQuery, ModelRoute, OperationResult, PlurnkStatement, ProposalProjection, ReasoningPolicy } from "./types.ts";
3
+ import type { ApplicationMessage, MessageResource } from "./MessageResource.ts";
4
+ import type { CapabilityPolicy, CapabilityProjection, ClientDisplayCapabilities, ClientInteractionProjection, ClientInteractionResolution, EntryReadResult, JsonSchema, LoopPolicyRequest, ModelCatalogPage, ModelCatalogQuery, ModelRoute, OperationResult, PlurnkStatement, ProposalProjection, ReasoningPolicy } from "./types.ts";
3
5
  export type ProposalDecision = "accept" | "reject" | "cancel";
4
6
  export interface ProposalResolution {
5
7
  readonly decision: ProposalDecision;
@@ -61,22 +63,35 @@ export interface ApplicationLoopProjection {
61
63
  readonly promptSource: string | null;
62
64
  readonly terminatedAt: string | null;
63
65
  readonly terminalResult: OperationResult | null;
64
- /** Scheduled tasks only; the selected due slot and optional recurring cadence. */
65
- readonly scheduledAt?: string;
66
- readonly intervalMinutes?: number;
67
- readonly recurrenceId?: number;
68
66
  /** Exact count of durable packet-bearing turns; retries and administrative turns do not contribute. */
69
67
  readonly packetCount: number;
70
68
  }
71
- export interface ApplicationLoopPacket extends Pick<ApplicationLoopProjection, "scheduledAt" | "intervalMinutes" | "recurrenceId"> {
69
+ export interface ApplicationLoopPacket {
72
70
  readonly workerId: number;
73
71
  readonly loopId: number;
74
72
  readonly packetCount: number;
75
73
  }
76
74
  export type LogEntryWire = Readonly<Record<string, unknown>>;
77
75
  export type ApplicationEventHandler = (workspaceId: number | null, method: string, params: unknown) => void;
78
- /** The transport-neutral application contract consumed by exterior adapters. */
79
- export interface ApplicationPort {
76
+ /** {§http-host} One request on the daemon's listener, handed to the adapter that mounted its prefix. */
77
+ export type HttpRouteHandler = (req: IncomingMessage, res: ServerResponse) => void | Promise<void>;
78
+ /**
79
+ * {§http-host} The daemon's one HTTP listener, offered to exterior adapters. A daemon is one trust
80
+ * domain on one address: core binds `PLURNK_HOST:PLURNK_PORT` before it admits durable state,
81
+ * answers 503 until a root is mounted, and hands each request to the longest mounted prefix.
82
+ * Adapters mount at `start()`; none opens a socket of its own. This is the one place the
83
+ * application port names a transport, by ruling (#641): the standards address by URL, never by
84
+ * port, so every exterior interface shares the address.
85
+ */
86
+ export interface HttpHost {
87
+ registerHttpRoute(prefix: string, handler: HttpRouteHandler): void;
88
+ httpAddress(): {
89
+ readonly host: string;
90
+ readonly port: number;
91
+ };
92
+ }
93
+ /** {§application-port} The transport-neutral application contract consumed by exterior adapters. */
94
+ export interface ApplicationPort extends HttpHost {
80
95
  listClientDisplayCapabilities(): Promise<ClientDisplayCapabilities>;
81
96
  listModuleActions(): ApplicationActionDescriptor[];
82
97
  invokeModuleAction(name: string, params: Readonly<Record<string, unknown>>, context: ApplicationActionContext): Promise<unknown>;
@@ -84,15 +99,27 @@ export interface ApplicationPort {
84
99
  pendingProposals(workspaceId: number): Promise<ProposalProjection[]>;
85
100
  resolveProposal(logEntryId: number, resolution: ProposalResolution): void;
86
101
  pendingClientInteractions(workspaceId: number): Promise<ClientInteractionProjection[]>;
87
- resolveClientInteraction(interactionId: number, resolution: ClientInteractionResolution): Promise<void>;
102
+ resolveClientInteraction(interactionId: number, resolution: ClientInteractionResolution, message?: {
103
+ readonly body: string;
104
+ readonly source: string;
105
+ readonly envelope: Readonly<Record<string, unknown>>;
106
+ }): Promise<void>;
107
+ readMessages(args: {
108
+ readonly workspaceId: number;
109
+ readonly workerId: number;
110
+ readonly loopId?: number;
111
+ }): Promise<ApplicationMessage[]>;
88
112
  ensureModelWorker(workspaceId: number): Promise<number>;
89
113
  runLoop(args: {
90
114
  readonly workspaceId: number;
91
115
  readonly workerId: number;
92
116
  readonly prompt: string;
93
117
  readonly source?: string;
118
+ readonly messageAddress?: string;
119
+ readonly attachments?: readonly MessageResource[];
120
+ readonly envelope?: Readonly<Record<string, unknown>>;
94
121
  readonly maxTurns?: number;
95
- readonly policy?: Partial<LoopPolicy>;
122
+ readonly policy?: LoopPolicyRequest;
96
123
  readonly openPaths?: string[];
97
124
  readonly selector?: string;
98
125
  readonly childSelector?: string | null;
@@ -180,6 +207,7 @@ export interface ApplicationPort {
180
207
  readonly workspaceId: number;
181
208
  readonly workerId: number;
182
209
  readonly statement: PlurnkStatement;
210
+ readonly perspectiveWorkerId?: number;
183
211
  }): Promise<OperationResult>;
184
212
  readEntry(args: {
185
213
  readonly workspaceId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationPort.d.ts","sourceRoot":"","sources":["../../src/ApplicationPort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApplicationPort.d.ts","sourceRoot":"","sources":["../../src/ApplicationPort.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  export type LoopLifecycle = "idle" | "queued" | "running" | "parked" | "completed" | "failed";
2
2
  export declare const lifecycleOfLoopStatus: (status: number | null | undefined) => LoopLifecycle;
3
+ export declare const selectWorkerLoop: <T extends {
4
+ status: number;
5
+ sequence: number;
6
+ terminatedAt: string | null;
7
+ }>(loops: readonly T[]) => T | null;
3
8
  //# sourceMappingURL=LoopLifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoopLifecycle.d.ts","sourceRoot":"","sources":["../../src/LoopLifecycle.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9F,eAAO,MAAM,qBAAqB,WAAY,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,aAOzE,CAAC"}
1
+ {"version":3,"file":"LoopLifecycle.d.ts","sourceRoot":"","sources":["../../src/LoopLifecycle.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9F,eAAO,MAAM,qBAAqB,WAAY,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,aAOzE,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,SAAS,SAAS,CAAC,EAAE,KAAG,CAAC,GAAG,IAUvI,CAAC"}
@@ -11,4 +11,19 @@ export const lifecycleOfLoopStatus = (status) => {
11
11
  return "failed";
12
12
  return "running";
13
13
  };
14
+ // {§application-worker-observation}: observation must not mistake queue creation order for activity.
15
+ export const selectWorkerLoop = (loops) => {
16
+ const rank = (loop) => loop.status === 102 ? 0 : loop.status === 202 ? 1 : loop.status === 100 ? 2 : 3;
17
+ return loops.reduce((selected, loop) => {
18
+ if (selected === null)
19
+ return loop;
20
+ const delta = rank(loop) - rank(selected);
21
+ if (delta !== 0)
22
+ return delta < 0 ? loop : selected;
23
+ if (rank(loop) < 3)
24
+ return loop.sequence < selected.sequence ? loop : selected;
25
+ const settled = (loop.terminatedAt ?? "").localeCompare(selected.terminatedAt ?? "");
26
+ return settled > 0 || (settled === 0 && loop.sequence > selected.sequence) ? loop : selected;
27
+ }, null);
28
+ };
14
29
  //# sourceMappingURL=LoopLifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoopLifecycle.js","sourceRoot":"","sources":["../../src/LoopLifecycle.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAiC,EAAiB,EAAE;IACtF,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC3D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IACnC,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC"}
1
+ {"version":3,"file":"LoopLifecycle.js","sourceRoot":"","sources":["../../src/LoopLifecycle.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAiC,EAAiB,EAAE;IACtF,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC3D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IACnC,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,qGAAqG;AACrG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAA8E,KAAmB,EAAY,EAAE;IAC3I,MAAM,IAAI,GAAG,CAAC,IAAO,EAAU,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClH,OAAO,KAAK,CAAC,MAAM,CAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC7C,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACrF,OAAO,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjG,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ /** Transport-neutral bytes selected for explicit message delivery. */
2
+ export interface MessageResource {
3
+ readonly name: string;
4
+ readonly mediaType: string;
5
+ readonly bytes: Uint8Array;
6
+ readonly target?: string;
7
+ }
8
+ /** Durable receipt descriptor; payloads remain in the immutable content store. */
9
+ export interface MessageResourceReceipt {
10
+ readonly name: string;
11
+ readonly mediaType: string;
12
+ readonly contentHash: string;
13
+ readonly target?: string;
14
+ }
15
+ export interface MessageEvidence {
16
+ readonly envelope?: Readonly<Record<string, unknown>>;
17
+ readonly attachments?: readonly MessageResourceReceipt[];
18
+ }
19
+ export interface ApplicationMessage {
20
+ readonly id: number;
21
+ readonly loopId: number;
22
+ readonly direction: "inbound" | "outbound";
23
+ readonly source: string | null;
24
+ /** Message addresses answered by an outbound reply; empty for incoming messages. */
25
+ readonly answers: readonly string[];
26
+ readonly body: string;
27
+ readonly envelope?: Readonly<Record<string, unknown>>;
28
+ readonly attachments: readonly MessageResource[];
29
+ }
30
+ //# sourceMappingURL=MessageResource.d.ts.map