@lazyingart/agintiflow 0.20.296 → 0.20.297

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": "@lazyingart/agintiflow",
3
- "version": "0.20.296",
3
+ "version": "0.20.297",
4
4
  "type": "module",
5
5
  "description": "AgInTiFlow is a project-aware agent workspace for hybrid wet-dry R&D, hardware-aware intelligence, software automation, and industrial workflows.",
6
6
  "license": "Apache-2.0",
@@ -807,6 +807,17 @@ const readinessOnlyContract = deriveScsTaskContract({
807
807
  ].join("\n"),
808
808
  taskProfile: "auto",
809
809
  });
810
+ const releaseProofFilenameContract = deriveScsTaskContract({
811
+ goal: [
812
+ 'AGINTI_EVIDENCE_SCOPE_JSON: {"mode":"task","request":"Create a task-owned plain-text artifact named scoped-path-release-proof.txt, read it back, and finish without external actions."}',
813
+ "The host writes a final task record after the agent finishes.",
814
+ ].join("\n"),
815
+ taskProfile: "auto",
816
+ });
817
+ const explicitPackageReleaseContract = deriveScsTaskContract({
818
+ goal: "Release the package to npm and verify the published version.",
819
+ taskProfile: "auto",
820
+ });
810
821
  assert(
811
822
  readinessOnlyContract.requiredEvidence.some((item) => item.category === "file") &&
812
823
  readinessOnlyContract.requiredEvidence.some((item) => item.category === "command"),
@@ -816,6 +827,15 @@ assert(
816
827
  !readinessOnlyContract.requiredEvidence.some((item) => ["publish", "browser", "visual", "artifact"].includes(item.category)),
817
828
  "read-only readiness contract required a forbidden external action or target artifact"
818
829
  );
830
+ assert(
831
+ releaseProofFilenameContract.requiredEvidence.some((item) => item.category === "file") &&
832
+ !releaseProofFilenameContract.requiredEvidence.some((item) => item.category === "publish"),
833
+ "a release-like artifact filename fabricated an external publication obligation"
834
+ );
835
+ assert(
836
+ explicitPackageReleaseContract.requiredEvidence.some((item) => item.category === "publish"),
837
+ "an explicit package release lost its publication evidence obligation"
838
+ );
819
839
  assert(
820
840
  uploadContract.exactInputPaths.includes("/tmp/reference-a.png") &&
821
841
  uploadContract.exactInputPaths.includes("/tmp/reference-b.png") &&
@@ -1439,7 +1439,17 @@ function inferRequirementCategories(goal = "", taskProfile = "", acceptanceCrite
1439
1439
  ) {
1440
1440
  categories.add("visual");
1441
1441
  }
1442
- if (textHas(text, /\b(publish|deploy|submit|upload to|generate video|external service|npm publish|release)\b/) || /发布|部署|提交|生成视频|外部服务/.test(text)) {
1442
+ const explicitPublishAction =
1443
+ textHas(
1444
+ text,
1445
+ /\b(?:publish|deploy|submit|upload to|generate video|external service|npm publish)\b/
1446
+ ) ||
1447
+ textHas(
1448
+ text,
1449
+ /\b(?:release|ship)\s+(?:(?:the|this|that|a|an)\s+)?(?:package|version|build|app|application|software|library|plugin|extension|product)\b|\b(?:release|ship)\s+(?:to|on|via|through)\b|\bcut\s+(?:a\s+)?release\b/
1450
+ ) ||
1451
+ /发布|部署|提交|生成视频|外部服务/.test(text);
1452
+ if (explicitPublishAction) {
1443
1453
  categories.add("publish");
1444
1454
  }
1445
1455